summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--context/config/texexec.rme115
-rw-r--r--context/data/cont-cz.tws3878
-rw-r--r--context/data/cont-de.tws3878
-rw-r--r--context/data/cont-en.tws3878
-rw-r--r--context/data/cont-nl.tws3878
-rw-r--r--context/perltk/cont_mis.pm69
-rw-r--r--context/perltk/cont_set.pm649
-rw-r--r--context/perltk/texexec.pl1408
-rw-r--r--context/perltk/texexec.rme115
-rw-r--r--context/perltk/texshow.pl90
-rw-r--r--context/perltk/texutil.pl2432
-rw-r--r--doc/context/base/context.rme60
-rw-r--r--doc/context/base/minstall.pdfbin86492 -> 0 bytes
-rw-r--r--doc/context/base/mreadme.pdfbin73809 -> 0 bytes
-rw-r--r--dvips/config/context.map8
-rw-r--r--fonts/tfm/hoekwater/context/contnav.tfmbin1032 -> 0 bytes
-rw-r--r--fonts/type1/hoekwater/context/contnav.pfbbin6695 -> 0 bytes
-rw-r--r--metapost/context/mp-chart.mp1168
-rw-r--r--metapost/context/mp-page.mp151
-rw-r--r--metapost/context/mp-tool.mp377
-rw-r--r--tex/context/base/colo-ini.tex8
-rw-r--r--tex/context/base/colo-rgb.tex2
-rw-r--r--tex/context/base/cont-cz.tex35
-rw-r--r--tex/context/base/cont-fil.tex48
-rw-r--r--tex/context/base/cont-new.tex915
-rw-r--r--tex/context/base/cont-old.tex61
-rw-r--r--tex/context/base/cont-usr.ori20
-rw-r--r--tex/context/base/context.tex38
-rw-r--r--tex/context/base/core-01d.tex2331
-rw-r--r--tex/context/base/core-02a.tex198
-rw-r--r--tex/context/base/core-02b.tex171
-rw-r--r--tex/context/base/core-02d.tex49
-rw-r--r--tex/context/base/core-buf.tex871
-rw-r--r--tex/context/base/core-con.tex59
-rw-r--r--tex/context/base/core-des.tex860
-rw-r--r--tex/context/base/core-fig.tex249
-rw-r--r--tex/context/base/core-fil.tex33
-rw-r--r--tex/context/base/core-fld.tex36
-rw-r--r--tex/context/base/core-fnt.tex91
-rw-r--r--tex/context/base/core-gen.tex8
-rw-r--r--tex/context/base/core-grd.tex30
-rw-r--r--tex/context/base/core-int.tex1978
-rw-r--r--tex/context/base/core-itm.tex583
-rw-r--r--tex/context/base/core-lst.tex889
-rw-r--r--tex/context/base/core-mar.tex126
-rw-r--r--tex/context/base/core-mps.tex64
-rw-r--r--tex/context/base/core-mul.tex125
-rw-r--r--tex/context/base/core-nav.tex5
-rw-r--r--tex/context/base/core-new.tex19
-rw-r--r--tex/context/base/core-not.tex12
-rw-r--r--tex/context/base/core-num.tex133
-rw-r--r--tex/context/base/core-pag.tex32
-rw-r--r--tex/context/base/core-par.tex (renamed from tex/context/base/core-01e.tex)136
-rw-r--r--tex/context/base/core-ref.tex229
-rw-r--r--tex/context/base/core-reg.tex48
-rw-r--r--tex/context/base/core-rul.tex157
-rw-r--r--tex/context/base/core-sec.tex1491
-rw-r--r--tex/context/base/core-syn.tex395
-rw-r--r--tex/context/base/core-tab.tex74
-rw-r--r--tex/context/base/core-tbl.tex407
-rw-r--r--tex/context/base/core-uti.tex368
-rw-r--r--tex/context/base/core-var.tex16
-rw-r--r--tex/context/base/core-ver.tex8
-rw-r--r--tex/context/base/core-vis.tex6
-rw-r--r--tex/context/base/enco-ans.tex2
-rw-r--r--tex/context/base/enco-chi.tex92
-rw-r--r--tex/context/base/enco-ec.tex4
-rw-r--r--tex/context/base/enco-ibm.tex2
-rw-r--r--tex/context/base/enco-il2.tex3
-rw-r--r--tex/context/base/enco-ini.tex18
-rw-r--r--tex/context/base/enco-lat.tex4
-rw-r--r--tex/context/base/enco-pdf.tex2
-rw-r--r--tex/context/base/enco-vis.tex4
-rw-r--r--tex/context/base/enco-win.tex50
-rw-r--r--tex/context/base/font-ber.tex67
-rw-r--r--tex/context/base/font-chi.tex107
-rw-r--r--tex/context/base/font-cmr.tex6
-rw-r--r--tex/context/base/font-fil.tex175
-rw-r--r--tex/context/base/font-ini.tex134
-rw-r--r--tex/context/base/font-map.tex2
-rw-r--r--tex/context/base/font-ppl.tex26
-rw-r--r--tex/context/base/font-uni.tex16
-rw-r--r--tex/context/base/java-ini.tex4
-rw-r--r--tex/context/base/lang-alt.tex34
-rw-r--r--tex/context/base/lang-chi.tex57
-rw-r--r--tex/context/base/lang-ger.tex2
-rw-r--r--tex/context/base/lang-ini.tex21
-rw-r--r--tex/context/base/lang-sla.tex2
-rw-r--r--tex/context/base/m-chart.tex94
-rw-r--r--tex/context/base/m-chemic.tex6
-rw-r--r--tex/context/base/m-pictex.tex68
-rw-r--r--tex/context/base/main-001.tex (renamed from tex/context/base/core-01a.tex)7412
-rw-r--r--tex/context/base/main-002.tex (renamed from tex/context/base/core-01b.tex)347
-rw-r--r--tex/context/base/main-003.tex (renamed from tex/context/base/core-01c.tex)114
-rw-r--r--tex/context/base/mult-com.tex145
-rw-r--r--tex/context/base/mult-con.tex252
-rw-r--r--tex/context/base/mult-ini.tex23
-rw-r--r--tex/context/base/mult-sys.tex9
-rw-r--r--tex/context/base/ppchtex.tex4
-rw-r--r--tex/context/base/s-abr-01.tex2
-rw-r--r--tex/context/base/s-chi-00.tex47
-rw-r--r--tex/context/base/s-faq-01.tex20
-rw-r--r--tex/context/base/s-map-01.tex5
-rw-r--r--tex/context/base/s-pre-00.tex10
-rw-r--r--tex/context/base/s-pre-05.tex15
-rw-r--r--tex/context/base/spec-dvi.tex40
-rw-r--r--tex/context/base/spec-fdf.tex100
-rw-r--r--tex/context/base/spec-ini.tex204
-rw-r--r--tex/context/base/spec-pdf.tex11
-rw-r--r--tex/context/base/spec-tpd.tex68
-rw-r--r--tex/context/base/supp-box.tex319
-rw-r--r--tex/context/base/supp-eps.tex13
-rw-r--r--tex/context/base/supp-fil.tex4
-rw-r--r--tex/context/base/supp-fun.tex99
-rw-r--r--tex/context/base/supp-lan.tex113
-rw-r--r--tex/context/base/supp-mis.tex12
-rw-r--r--tex/context/base/supp-mpe.tex342
-rw-r--r--tex/context/base/supp-mps.tex99
-rw-r--r--tex/context/base/supp-pdf.tex131
-rw-r--r--tex/context/base/symb-ini.tex11
-rw-r--r--tex/context/base/syst-ext.tex221
-rw-r--r--tex/context/base/syst-gen.tex113
-rw-r--r--tex/context/base/syst-tex.tex2
-rw-r--r--tex/context/base/verb-ini.tex12
-rw-r--r--tex/context/config/cont-cz.ini2
-rw-r--r--tex/context/config/cont-de.ini2
-rw-r--r--tex/context/config/cont-en.ini2
-rw-r--r--tex/context/config/cont-nl.ini2
-rw-r--r--tex/context/config/cont-uk.ini2
-rw-r--r--tex/context/config/cont-usr.tex20
-rw-r--r--tex/context/config/context.ini2
-rw-r--r--tex/generic/context/m-ch-de.tex10
-rw-r--r--tex/generic/context/m-ch-en.tex10
-rw-r--r--tex/generic/context/m-ch-nl.tex10
-rw-r--r--tex/generic/context/m-metapo.tex89
-rw-r--r--tex/generic/context/ppchtex.noc205
-rw-r--r--tex/latex/context/m-ch-de.sty1
-rw-r--r--tex/latex/context/m-ch-en.sty1
-rw-r--r--tex/latex/context/m-ch-nl.sty1
-rw-r--r--tex/latex/context/m-metapo.sty1
-rw-r--r--tex/latex/context/m-pictex.sty1
141 files changed, 12340 insertions, 34910 deletions
diff --git a/context/config/texexec.rme b/context/config/texexec.rme
deleted file mode 100644
index a1dd2c3ab..000000000
--- a/context/config/texexec.rme
+++ /dev/null
@@ -1,115 +0,0 @@
-% == introduction ==
-%
-% This is 'texexec.ini', the file used by texexec to determine where
-% to find files, what TeX to use, what flags to pass, etc. Although
-% TeXexec tries to locate things itself, a little help is sometimes
-% needed. One can influence texexec by setting some variables. These
-% are only needed when the automatic determined settings fail.
-%
-% == interfacing ==
-%
-% UsedInterfaces nl,en the formats generated with --make
-% UserInterface nl the default format used
-%
-% == binaries ==
-%
-% TeXExecutable pdfetex the TeX binary to use
-% MpExecutable mpost the MetaPost binary to use
-% MpToTeXExecutable mpto the MetaPost to TeX converter
-% DviToMpExecutable dvitomp the DVI to MetaPost converter
-%
-% == flags ==
-%
-% TeXFormatFlag & the format introducer
-% TeXVirginFlag -ini the format generation switch
-%
-% == paths ==
-%
-% TeXFormatPath texmf/... fmt files
-% ConTeXtPath texmf/tex/context/base sources
-% SetupPath texmf/tex/base/user cont-sys/usr file
-% TeXScriptsPath texmf/context/perltk scripts
-%
-% == the main shell setting ==
-%
-% As shown below, one can define his/her own sections. We default to
-% the teTeX/fpTeX web2c based settings.
-
-set TeXShell to tetex
-%set TeXShell to fptex
-%set TeXShell to miktex
-%set TeXShell to private
-
-% == setting up the variables ==
-%
-% Here are some general defaults. They can be overruled later.
-
-set UsedInterfaces to en,nl,de,uk
-set UserInterface to en
-set TeXExecutable to tex
-set MpExecutable to mpost
-set MpToTeXExecutable to mpto
-set DviToMpExecutable to dvitomp
-
-% For teTeX the next settings will do.
-
-for tetex set UsedInterfaces to en,nl,de,uk
-for tetex set UserInterface to en
-for tetex set TeXExecutable to pdfetex
-
-% These also apply to fpTeX.
-
-for fptex set UsedInterfaces to en,nl,de,uk
-for fptex set UserInterface to en
-for fptex set TeXExecutable to pdfetex
-
-% MikTeX users probably have to set up some paths too.
-
-for miktex set UsedInterfaces to en,nl,de,uk
-for miktex set UserInterface to en
-for miktex set TeXExecutable to pdftex
-for miktex set TeXFormatFlag to &
-for miktex set TeXVirginFlag to --initialize
-
-% These are the settings used on some machines at PRAGMA ADE that
-% don't use the texmf tree. They can serve as an example for local
-% settings. Local settings should either be added to the previous
-% one, or go without the 'for' directives. Consider these
-% settings as an example.
-
-for private set UsedInterfaces to en,nl
-for private set UserInterface to nl
-for private set TeXExecutable to pdfetex
-for private set TeXFormatFlag to &
-for private set TeXVirginFlag to -ini
-for private set TeXFormatPath to t:/tex/web2c/fmt/
-for private set ConTeXtPath to t:/pragma/sources/
-for private set SetupPath to t:/pragma/perl/
-for private set TeXScriptsPath to t:/pragma/perl/
-
-% == read this too ==
-%
-% If this file is called 'texexec.rme', copy it to 'texexec.ini',
-% check the settings above, change them according to your TeX
-% distribution, and say:
-%
-% texexec --verbose
-%
-% When set up properly, you should see your local settings fly by.
-% When these settings are ok, the next call should work:
-%
-% texexec --make
-%
-% and you should be able to process a file by saying
-%
-% texexec filename
-%
-% See 'mtexexec.pdf' for more information on the flags you can use with
-% 'texexec'. Also make sure you have the 'texutil' script installed in
-% the same path as 'texexec'.
-
-% Experimental
-%
-% set TcXPath to d:/tex/texmf/web2c
-% set FmtLanguage to pl
-% set FmtBodyFont to plr
diff --git a/context/data/cont-cz.tws b/context/data/cont-cz.tws
deleted file mode 100644
index f3c0d5f36..000000000
--- a/context/data/cont-cz.tws
+++ /dev/null
@@ -1,3878 +0,0 @@
-startsetup
-com:jazykinstalace:
-typ:val/vars/:
-val:*name::
-var:mezerovani:zhustene,siroky::
-var:lefthyphenmin:*dimension::
-var:righthyphenmin:*dimension::
-var:status:start,stop::
-var:vetavlevo:*command::
-var:vetavpravo:*command::
-var:podvetavlevo:*command::
-var:podvetavpravo:*command::
-var:citovatvlevo:*command::
-var:citovatvpravo:*command::
-var:citacevlevo:*command::
-var:citacevpravo:*command::
-var:implicitni:*name::
-stopsetup
-
-startsetup
-com:nastavjazyk:
-typ:val/vars/:
-ivr:jazykinstalace::
-stopsetup
-
-startsetup
-com:jazyk:
-typ:val/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-stopsetup
-
-startsetup
-com:hlavnijazyk:
-typ:val/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-stopsetup
-
-startsetup
-com:prelozit:
-typ:vars/:
-var:*name:*text::
-stopsetup
-
-startsetup
-com:uzijkodovani:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:uzijspeciality:
-typ:vals/:
-val:reset,*name::
-stopsetup
-
-startsetup
-com:definujvystup:
-typ:val/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:nastavvystup:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:definujzakladnifont:
-typ:val/vars/:
-val:5pt,...,12pt,default::
-var:text:*dimension::
-var:script:*dimension::
-var:scriptscript:*dimension::
-var:x:*dimension::
-var:xx:*dimension::
-var:male:*dimension::
-var:velky:*dimension::
-stopsetup
-
-startsetup
-com:nastavprostredizakladnihofont:
-typ:val/vars/:
-ivl:nastavzakladnifont::
-ivr:nastavzakladnifont::
-stopsetup
-
-startsetup
-com:ukazpostredizakladnihofont:
-typ:vals/:
-ivl:nastavzakladnifont::
-stopsetup
-
-startsetup
-com:definujzakladnifont:
-typ:vals/val/vars/:
-val:5pt,...,12pt,default::
-val:rm,ss,tt,mm,hw,cg::
-var:tf:*file::
-var:bf:*file::
-var:sl:*file::
-var:it:*file::
-var:bs:*file::
-var:bi:*file::
-var:sc:*file::
-var:ex:*file::
-var:mi:*file::
-var:sy:*file::
-var:ma:*file::
-var:mb:*file::
-var:mc:*file::
-stopsetup
-
-startsetup
-com:ukazzakladnifont:
-typ:vals/:
-ivl:nastavzakladnifont::
-stopsetup
-
-startsetup
-com:nastavzakladnifont:
-typ:vals/:
-val:*name, serif,radne,antikva, sans,podpora,bezserifu, mono,type,dalnopis, rukopisne,krasopisne, 5pt,...,12pt:sau,ibm,12pt,serif:
-stopsetup
-
-startsetup
-com:prepninazakladnifont:
-typ:vals/:
-val:5pt,...,12pt,male,velky,globalni::
-stopsetup
-
-startsetup
-com:definujfont:
-typ:val/val/:
-val:*name::
-val:*file::
-stopsetup
-
-startsetup
-com:nastavbarvu:
-typ:val/:
-val:*name:rgb:
-stopsetup
-
-startsetup
-com:nastavbarvy:
-typ:vars/:
-var:status:start,stop,globalni,lokalni::
-var:konverze:ano,ne,vzdy::
-var:redukce:ano,ne::
-var:rgb:ano,ne::
-var:cmyk:ano,ne::
-stopsetup
-
-startsetup
-com:definujbarvu:
-typ:val/vars/:
-val:*name::
-var:r:*text::
-var:g:*text::
-var:b:*text::
-var:c:*text::
-var:m:*text::
-var:y:*text::
-var:k:*text::
-var:s:*text::
-stopsetup
-
-startsetup
-com:startbarva:
-typ:val/stp/:
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:barva:
-typ:val/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:sedabarva:
-typ:val/:
-val:*text::
-stopsetup
-
-startsetup
-com:ukazbarvu:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:definujpaletu:
-typ:val/vars/:
-val:*name::
-var:*name:*name::
-stopsetup
-
-startsetup
-com:nastavpaletu:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:definujskupinubarev:
-typ:val/val/vals/:
-val:*name::
-val:rgb,cmyk,seda,s:rgb:
-val:trips/::
-stopsetup
-
-startsetup
-com:ukazpaletu:
-typ:val/vals/:
-val:*name::
-val:horizontalni,vertikalne,jmeno,hodnota::
-stopsetup
-
-startsetup
-com:ukazskupinubarev:
-typ:val/vals/:
-val:*name::
-val:horizontalni,vertikalne,jmeno,hodnota,cislo::
-stopsetup
-
-startsetup
-com:porovnejpaletu:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:porovnejskupinubarev:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:ukazupravu:
-typ::
-stopsetup
-
-startsetup
-com:nastavtype:
-typ:var/:
-var:mezera:na,pryc::
-var:volba:sklonene,normalni,zadny::
-var:barva:*name::
-stopsetup
-
-startsetup
-com:type:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:typ:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:tex:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:arg:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:definujopis:
-typ:val/vars/:
-val:soubor,typing,*name::
-ivr:nastavopis::
-stopsetup
-
-startsetup
-com:nastavopis:
-typ:val/vars/:
-val:soubor,typing,*name::
-var:mezera:na,pryc::
-var:strana:ano,ne::
-var:volba:sklonene,normalni,prikazy,barva,zadny::
-var:text:ano,ne::
-var:icommando:*command::
-var:vcommando:*command::
-var:ccommando:*command::
-var:pred:*command::
-var:po:*command::
-var:marginalie:*dimension,standardni::
-var:sudamarginalie:*dimension::
-var:lichyokraj:*dimension::
-var:prazdny:*dimension,male,stredni,velky,standardni,pulradku,radek::
-var:escape:*::
-var:odsadpristi:ano,ne::
-var:paleta:*name::
-var:barva:*name::
-stopsetup
-
-startsetup
-com:starttyping:
-typ:stp/:
-stopsetup
-
-startsetup
-com:typesoubor:
-typ:arg/:
-val:*file::
-stopsetup
-
-startsetup
-com:nastavpoznamkypodcarou:
-typ:vars/:
-var:konverze:cisla,pismena,Pismena,rimskecislice,Rimskecislice::
-var:zpusob:skrztext,skrz*section::
-var:misto:strana,text,sloupce,vysoko::
-var:linka:na,pryc::
-var:pred:*command::
-var:po:*command::
-var:sirka:*dimension::
-var:vyska:*dimension::
-var:zakladnifont:5pt,...,12pt,male,velky::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:vzdalenost:*dimension::
-var:vzdalenostsloupcu:*dimension::
-var:vzdalenostokraje:*dimension::
-var:n:*number::
-var:ciselnyprikaz:*\command#1::
-ivr:oramovani::
-stopsetup
-
-startsetup
-com:nastavdefinicipoznamekpodcarou:
-typ:vars/:
-ivr:definujpopis::
-stopsetup
-
-startsetup
-com:poznamkapodcarou:
-typ:ref/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:poznamka:
-typ:ref/:
-stopsetup
-
-startsetup
-com:startlokalnipoznamkypodcarou:
-typ:stp/:
-ivr:nastavpoznamkypodcarou::
-stopsetup
-
-startsetup
-com:umistilokalnipoznamkypodcarou:
-typ:vars/:
-ivr:nastavpoznamkypodcarou::
-stopsetup
-
-startsetup
-com:umistipoznamkypodcarou:
-typ:vars/:
-ivr:nastavpoznamkypodcarou::
-stopsetup
-
-startsetup
-com:nastavpodtrzeni:
-typ:vars/:
-var:alternativa:a,b,c::
-var:tloustkalinky:*dimension::
-stopsetup
-
-startsetup
-com:podtrzeno:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:podtrzeni:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:nadtrzeno:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:nadtrzeni:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:preskrtnuto:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:preskrtnuti:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:rimskecislice:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:Rimskecislice:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:cisla:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:znak:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:Znak:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:znaky:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:Znaky:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:stredoveky:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:mesic:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:MESIC:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:vsedniden:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:VSEDNIDEN:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:nastavverzalky:
-typ:vars/:
-var:titul:ano,ne::
-var:sc:ano,ne::
-stopsetup
-
-startsetup
-com:kap:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:nokap:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:KAP:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:Kap:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:Kaps:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:SLOVO:
-typ:wrd/:
-val:*text::
-stopsetup
-
-startsetup
-com:SLOVA:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:Slovo:
-typ:wrd/:
-val:*text::
-stopsetup
-
-startsetup
-com:Slova:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:roztazene:
-typ:wrd/:
-val:*text::
-stopsetup
-
-startsetup
-com:definujsymbol:
-typ:val/val/:
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:definujobrazeksymbol:
-typ:val/val/vars/:
-val:*name::
-val:*text::
-ivr:externiobraz::
-stopsetup
-
-startsetup
-com:symbol:
-typ:val/val/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:startsadasymbolu:
-typ:val/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:nastavsadusymbolu:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:uzijsymbol:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:ukazsadusymbolu:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:definujkonverzi:
-typ:val/val/:
-val:*name::
-val:*command,*text::
-stopsetup
-
-startsetup
-com:konvertujcislo:
-typ:arg/arg/:
-val:*name::
-val:*number::
-stopsetup
-
-startsetup
-com:nastavtexthlavicky:
-typ:val/var/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-var:*name:*text::
-stopsetup
-
-startsetup
-com:nastavtextpopisku:
-typ:val/var/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-var:*name:*text::
-stopsetup
-
-startsetup
-com:texthlavicky:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:textpopisku:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:nastavmarginalnilinky:
-typ:var/:
-var:uroven:*number::
-var:tloustka:*dimension::
-stopsetup
-
-startsetup
-com:startmarginalnilinka:
-typ:val/stp/:
-val:*number::
-stopsetup
-
-startsetup
-com:marginalnilinka:
-typ:val/arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:nastavsirkucary:
-typ:val/:
-val:*dimension::
-stopsetup
-
-startsetup
-com:nastavoramovani:
-typ:vars/:
-var:vyska:prizpusobivy,siroky,*dimension::
-var:sirka:prizpusobivy,siroky,*dimension::
-var:offset:zadny,prekryv,*dimension::
-var:misto:nizko,hloubka::
-var:volba:zadny,prazdne::
-var:strut:ano,ne::
-var:zarovnani:ne,vlevo,vpravo,stredni,normalni::
-var:spodek:*command::
-var:vrsek:*command::
-var:ramecek:na,pryc,prekryv::
-var:vrchniramecek:na,pryc::
-var:ramecekspodku:na,pryc::
-var:ramecekvlevo:na,pryc::
-var:ramecekvpravo:na,pryc::
-var:offsetramecku:*dimension::
-var:hloubkaramecku:*dimension::
-var:rohramecku:kolo,pravouhly::
-var:polomerramecku:*dimension::
-var:barvaramecku:*name::
-var:pozadi:rastr,barva,zadny,voorgrond,*name::
-var:rastrpozadi:*number::
-var:barvapozadi:*name::
-var:offsetpozadi:*dimension::
-var:hloubkapozadi:*dimension::
-var:rohpozadi:kolo,pravouhly::
-var:polomerpozadi:*dimension::
-var:hloubka:*dimension::
-var:roh:kolo,pravouhly::
-var:polomer:*dimension::
-var:prazdne:ano,ne::
-val:*text::
-stopsetup
-
-startsetup
-com:oramovani:
-typ:vars/arg/:
-ivr:nastavoramovani::
-val:*text::
-stopsetup
-
-startsetup
-com:zaramovani:
-typ:vars/arg/:
-ivr:nastavoramovani::
-val:*text::
-stopsetup
-
-startsetup
-com:tenkelinky:
-typ:var/:
-ivr:nastavtenkelinky::
-stopsetup
-
-startsetup
-com:nastavtenkelinky:
-typ:var/:
-var:vzdalenost:male,stredni,velky::
-var:n:*number::
-var:pred:*command::
-var:po:*command::
-var:vyska:*dimension::
-var:hloubka:*dimension::
-stopsetup
-
-startsetup
-com:vlasovalinka:
-typ::
-stopsetup
-
-startsetup
-com:tenkalinka:
-typ::
-stopsetup
-
-startsetup
-com:definujoramovanytext:
-typ:val/vars/:
-val:*name::
-ivr:nastavoramovanetexty::
-stopsetup
-
-startsetup
-com:definujoramovani:
-typ:val/vars/:
-val:*name::
-ivr:nastavoramovanetexty::
-stopsetup
-
-startsetup
-com:nastavoramovanetexty:
-typ:vars/:
-var:zakladnifont:5pt,...,12pt,male,velky::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,male...,*command::
-var:vlevo:*command::
-var:vpravo:*command::
-var:pred:*command::
-var:po:*command::
-var:vnitrni:*command::
-var:marginalie:standardni,ano,ne::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:start<<oramovanytext>>:
-typ:val/vars/stp/:
-val:vlevo,vpravo,stredni::
-ivr:nastavoramovanetexty::
-stopsetup
-
-startsetup
-com:<<oramovanytext>>:
-typ:vars/:
-ivr:nastavoramovanetexty::
-stopsetup
-
-startsetup
-com:startpozadi:
-typ:stp/:
-stopsetup
-
-startsetup
-com:pozadi:
-typ::
-stopsetup
-
-startsetup
-com:nastavpozadi:
-typ:vars/:
-var:levyoffset:*dimension::
-var:pravyoffset:*dimension::
-var:offsetvrsku:*dimension::
-var:offsetspodku:*dimension::
-var:status:start,stop::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:vyplnovelinky:
-typ:vars/arg/arg/:
-ivr:nastavvyplnovelinky::
-stopsetup
-
-startsetup
-com:vyplnenytext:
-typ:vars/arg/arg/par/:
-ivr:nastavvyplnovelinky::
-stopsetup
-
-startsetup
-com:nastavvyplnovelinky:
-typ:vars/:
-var:sirka:prizpusobivy,*dimension::
-var:vzdalenost:*dimension::
-var:pred:*command::
-var:po:*command::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:n:*number::
-var:oddelovac:*text::
-stopsetup
-
-startsetup
-com:vyplnovyradek:
-typ:vars/nop/par/:
-ivr:nastavvyplnoveradky::
-stopsetup
-
-startsetup
-com:nastavvyplnoveradky:
-typ:vars/:
-var:sirka:*dimension::
-var:marginalie:*dimension::
-var:vzdalenost:*dimension::
-var:pred:*command::
-var:po:*command::
-stopsetup
-
-startsetup
-com:nastavtextovelinky:
-typ:vars/:
-var:misto:vlevo,naokraji::
-var:pred:*command::
-var:po:*command::
-var:mezi:*command::
-var:sirka:*dimension::
-var:vzdalenost:*dimension::
-var:zakladnifont:5pt,...,12pt,male,velky::
-var:barva:*name::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:barvalinky:*name::
-stopsetup
-
-startsetup
-com:textovalinka:
-typ:val/arg/:
-val:vrsek,spodek::
-val:*text::
-stopsetup
-
-startsetup
-com:starttextovalinka:
-typ:val/arg/stp/:
-val:vrsek,spodek::
-val:*text::
-stopsetup
-
-startsetup
-com:cernalinka:
-typ:vars/:
-ivr:nastavcernelinky::
-stopsetup
-
-startsetup
-com:cernelinky:
-typ:vars/:
-ivr:nastavcernelinky::
-stopsetup
-
-startsetup
-com:nastavcernelinky:
-typ:vars/:
-var:sirka:*dimension,max::
-var:vyska:*dimension,max::
-var:hloubka:*dimension,max::
-var:alternativa:a,b::
-var:vzdalenost:*dimension::
-var:n:*number::
-stopsetup
-
-startsetup
-com:definujprekryv:
-typ:vals/val/:
-val:*name::
-val:*command::
-stopsetup
-
-startsetup
-com:uzijmodul:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:reset:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:zadnytest:
-typ::
-stopsetup
-
-startsetup
-com:startlokalnihoprostredi:
-typ:stp/:
-stopsetup
-
-startsetup
-com:nastavsystem:
-typ:vars/:
-var:rozliseni:*number::
-var:willekeur:normalni,male,stredni,velky,*number::
-stopsetup
-
-startsetup
-com:uzijcestu:
-typ:vals/:
-val:*name,reset:.:
-stopsetup
-
-startsetup
-com:nizky:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:vysoky:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:nivy:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:ukazramecek:
-typ:val/:
-val:text,marginalie,hrana::
-stopsetup
-
-startsetup
-com:ukazstrukturu:
-typ::
-stopsetup
-
-startsetup
-com:zarovnanovlevo:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:zarovnanovpravo:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:zarovnanonastred:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:slovovpravo:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:naokraj:
-typ:val/ref/arg/:
-val:+,-,nizko::
-val:*text::
-stopsetup
-
-startsetup
-com:nadruhyokraj:
-typ:val/ref/arg/:
-val:+,-,nizko::
-val:*text::
-stopsetup
-
-startsetup
-com:vlevo:
-typ:val/ref/arg/:
-val:+,-,nizko::
-val:*text::
-stopsetup
-
-startsetup
-com:vpravo:
-typ:val/ref/arg/:
-val:+,-,nizko::
-val:*text::
-stopsetup
-
-startsetup
-com:sloupec:
-typ::
-stopsetup
-
-startsetup
-com:ukazpodpery:
-typ::
-stopsetup
-
-startsetup
-com:ukaznastaveni:
-typ::
-stopsetup
-
-startsetup
-com:ukazvzhled:
-typ::
-stopsetup
-
-startsetup
-com:marginalnitext:
-typ:val/ref/arg/:
-val:+,-,nizko::
-val:*text::
-stopsetup
-
-startsetup
-com:nastavmarginalniblok:
-typ:vars/:
-var:misto:naokraji,vlevo,stredni,vpravo::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:sirka:*dimension::
-var:zarovnani:vlevo,stredni,vpravo,ne::
-var:vrsek:*command::
-var:mezi:*command::
-var:spodek:*command::
-var:vlevo:*command::
-var:vpravo:*command::
-var:pred:*command::
-var:po:*command::
-stopsetup
-
-startsetup
-com:startmarginalniblok:
-typ:stp/:
-stopsetup
-
-startsetup
-com:cast:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:titul:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:kapitola:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:sekce:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:podsekce:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:podpodsekce:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:tema:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:podtema:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:podpodtema:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:dodatek:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:v:
-typ:arg/arg/ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:v:
-typ:arg/arg/ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:o:
-typ:arg/ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:nekde:
-typ:arg/arg/ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:nastrane:
-typ:ref/:
-stopsetup
-
-startsetup
-com:odkaz:
-typ:val/ref/:
-val:t,p,r,s,e::
-val:*text::
-stopsetup
-
-startsetup
-com:odkaznatext:
-typ:ref/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:odkaznastranu:
-typ:ref/:
-stopsetup
-
-startsetup
-com:odkaz:
-typ:ref/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:uzijodkazy:
-typ:vals/:
-val:*file::
-stopsetup
-
-startsetup
-com:definujodkaz:
-typ:val/refs/:
-val:*name::
-stopsetup
-
-startsetup
-com:hl:
-typ:val/:
-val:*number::
-stopsetup
-
-startsetup
-com:vl:
-typ:val/:
-val:*number::
-stopsetup
-
-startsetup
-com:jdidolu:
-typ:val/:
-val:*dimension::
-stopsetup
-
-startsetup
-com:bilemisto:
-typ::
-stopsetup
-
-startsetup
-com:zadnebilemisto:
-typ::
-stopsetup
-
-startsetup
-com:crlf:
-typ::
-stopsetup
-
-startsetup
-com:mezera:
-typ::
-stopsetup
-
-startsetup
-com:tvrdemezery:
-typ::
-stopsetup
-
-startsetup
-com:zadnamezera:
-typ::
-stopsetup
-
-startsetup
-com:zhustene:
-typ::
-stopsetup
-
-startsetup
-com:opakovat:
-typ:val/:
-val:repeat/*text::
-stopsetup
-
-startsetup
-com:nastavpopisy:
-typ:vals/vars/:
-val:*name::
-var:stylhlavy:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:barva:*name::
-var:sirka:prizpusobivy,siroky,*dimension::
-var:vzdalenost:*dimension::
-var:vzor:*text::
-var:text:*text::
-var:zarovnani:vlevo,stredni,vpravo::
-var:marginalie:standardni,ano,ne,*dimension::
-var:misto:vlevo,vpravo,vrsek,semknuto, naokraji,vlevo,vpravo,visici::
-var:viset:prizpusobivy,siroky,*number::
-var:pred:*command::
-var:mezi:*command::
-var:po:*command::
-var:odsadpristi:ano,ne::
-stopsetup
-
-startsetup
-com:nastavvycty:
-typ:vals/vars/:
-val:*name::
-ivr:definujpopis::
-var:misto:vlevo,vpravo,vrsek,semknuto, naokraji,vlevo,vpravo,visici::
-var:text:*text::
-var:urovne:*number::
-var:konverze:cisla,pismena,Pismena,rimskecislice,Rimskecislice::
-var:zpusob:skrztext,skrz*section::
-var:dobloku:ano,ne::
-var:cislooddilu:ano,ne::
-var:oddelovac:*text::
-var:predel:*text::
-var:propojeni:*name::
-var:zpusobpropojeni:globalni,lokalni::
-var:cislo:ne,*name::
-var:zarovnejtitul:ne,ano::
-stopsetup
-
-startsetup
-com:definujvycet:
-typ:vals/val/vars/:
-val:*name::
-val:*name::
-ivr:nastavvycty::
-stopsetup
-
-startsetup
-com:<<vycet>>:
-typ:nop/par/:
-val:*text::
-stopsetup
-
-startsetup
-com:start<<vycet>>:
-typ:stp/:
-stopsetup
-
-startsetup
-com:definujpopis:
-typ:val/vars/:
-val:*name::
-ivr:nastavpopisy::
-stopsetup
-
-startsetup
-com:<<popis>>:
-typ:arg/nop/par/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:start<<popis>>:
-typ:arg/stp/:
-val:*text::
-stopsetup
-
-startsetup
-com:nastavodsazovani:
-typ:vals/vars/:
-val:*name::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylhlavy:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:sirka:prizpusobivy,*dimension::
-var:text:*text::
-var:vzor:*text::
-var:pred:*command::
-var:po:*command::
-var:oddelovac:*text::
-stopsetup
-
-startsetup
-com:definujodsazovani:
-typ:val/vars/:
-val:*name::
-ivr:nastavodsazovani::
-stopsetup
-
-startsetup
-com:<<odsazovani>>:
-typ:nop/par/:
-val:*text::
-stopsetup
-
-startsetup
-com:definujpopisek:
-typ:val/vars/:
-val:*name::
-var:text:*text::
-var:misto:naokraji,dotextu::
-var:zpusob:skrztext,skrz*section::
-var:dobloku:ano,ne::
-var:stylhlavy:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:barvahlavy:*name::
-var:pred:*command::
-var:po:*command::
-stopsetup
-
-startsetup
-com:<<oznacovani>>:
-typ::
-stopsetup
-
-startsetup
-com:nastavsloupce:
-typ:vars/:
-var:n:*number::
-var:linka:na,pryc::
-var:vyska:*dimension::
-var:tolerance:velmistriktni,striktni,tolerantni,velmitolerantni,rek::
-var:vzdalenost:*dimension::
-var:rovnovaha:ano,ne::
-var:zarovnani:ano,ne,text::
-var:prazdny:fixne,pulradku,radek,prizpusobivy,velky,stredni,male::
-var:volba:pozadi::
-var:richting:vlevo,vpravo::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:startsloupce:
-typ:vars/stp/:
-ivr:nastavsloupce::
-stopsetup
-
-startsetup
-com:definujtext:
-typ:val/val/val/val/val/:
-val:*name::
-val:zahlavi,upati::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:nastavzahlavi:
-typ:val/vars/:
-val:text,marginalie,hrana:text:
-var:status:normalni,stop,start,prazdne,vysoko,zadny, zadneznaceni,*name::
-var:strut:ano,ne::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylvlevo:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylvpravo:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:sirkavlevo:*dimension::
-var:sirkavpravo:*dimension::
-var:pred:*command::
-var:po:*command::
-stopsetup
-
-startsetup
-com:nastavupati:
-typ:val/vars/:
-ivl:nastavzahlavi::
-ivr:nastavzahlavi::
-stopsetup
-
-startsetup
-com:nastavtext:
-typ:val/vars/:
-ivl:nastavzahlavi::
-ivr:nastavzahlavi::
-stopsetup
-
-startsetup
-com:nastavhorejsek:
-typ:val/vars/:
-ivl:nastavzahlavi::
-ivr:nastavzahlavi::
-stopsetup
-
-startsetup
-com:nastavspodek:
-typ:val/vars/:
-ivl:nastavzahlavi::
-ivr:nastavzahlavi::
-stopsetup
-
-startsetup
-com:zadnezahlaviaupati:
-typ::
-stopsetup
-
-startsetup
-com:zadnehorniadolniradky:
-typ::
-stopsetup
-
-startsetup
-com:nastavtextyzahlavi:
-typ:val/val/val/:
-val:text,marginalie,hrana:text:
-val:*text,*section,datum,*mark,cislostrany::
-val:*text,*section,datum,*mark,cislostrany::
-stopsetup
-
-startsetup
-com:nastavtextyupati:
-typ:val/val/val/:
-val:text,marginalie,hrana:text:
-val:*text,*section,datum,*mark,cislostrany::
-val:*text,*section,datum,*mark,cislostrany::
-stopsetup
-
-startsetup
-com:nastavtexttexty:
-typ:val/val/val/:
-val:text,marginalie,hrana:text:
-val:*text,*section,datum,*mark,cislostrany::
-val:*text,*section,datum,*mark,cislostrany::
-stopsetup
-
-startsetup
-com:nastavhornitexty:
-typ:val/val/val/:
-val:text,marginalie,hrana:text:
-val:*text,*section,datum,*mark,cislostrany::
-val:*text,*section,datum,*mark,cislostrany::
-stopsetup
-
-startsetup
-com:nastavdolnitexty:
-typ:val/val/val/:
-val:text,marginalie,hrana:text:
-val:*text,*section,datum,*mark,cislostrany::
-val:*text,*section,datum,*mark,cislostrany::
-stopsetup
-
-startsetup
-com:definujznaceni:
-typ:val/val/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:propojeneznaceni:
-typ:val/val/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:rozpojeneznaceni:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:resetznaceni:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:nastavznaceni:
-typ:val/var/:
-val:*name::
-var:status:start,stop::
-var:oddelovac:*command::
-var:expanzen:ano,ne::
-stopsetup
-
-startsetup
-com:znaceni:
-typ:val/arg/:
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:ziskejznaceni:
-typ:val/val/:
-val:*name::
-val:prvni,posledni,predchozi,obe,vse::
-stopsetup
-
-startsetup
-com:zadneznaceni:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:nastavvzhled:
-typ:vars/:
-var:sirka:*dimension,prizpusobivy,stredni::
-var:vyska:*dimension,prizpusobivy,stredni::
-var:zpetnamezera:*dimension::
-var:svrchnimezera:*dimension::
-var:marginalie:*dimension::
-var:levyokraj:*dimension::
-var:pravyokraj:*dimension::
-var:zahlavi:*dimension::
-var:upati:*dimension::
-var:vrsek:*dimension::
-var:spodek:*dimension::
-var:levahrana:*dimension::
-var:pravahrana:*dimension::
-var:vzdalenostzahlavi:*dimension::
-var:vzdalenostupati:*dimension::
-var:vzdalenostvrsku:*dimension::
-var:vzdalenostspodku:*dimension::
-var:vzdalenostlevehookraje:*dimension::
-var:vzdalenostpravehookraje:*dimension::
-var:vzdalenostlevehrany:*dimension::
-var:vzdalenostpravehrany:*dimension::
-var:horoffset:*dimension::
-var:offsethlavy:*dimension::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:znaceni:na,pryc,barva::
-var:misto:vlevo,stredni,vpravo,spodek,vrsek, jednostranny,dvoustranny::
-var:meritko:*dimension::
-var:nx:*number::
-var:ny:*number::
-var:dx:*dimension::
-var:dy:*dimension::
-var:radky:*number::
-var:mrizka:ano,ne::
-stopsetup
-
-startsetup
-com:prizpusobvzhled:
-typ:vals/vars/:
-val:*number::
-var:vyska:*dimension,max::
-var:radky:*number::
-stopsetup
-
-startsetup
-com:ukazmrizku:
-typ::
-stopsetup
-
-startsetup
-com:umistinamrizku:
-typ:val/arg/:
-ivl:premistinamrizku::
-stopsetup
-
-startsetup
-com:premistinamrizku:
-typ:val/:
-val:vrsek,obe,spodek:obe:
-stopsetup
-
-startsetup
-com:startprojekt:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:startprostredi:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:startprodukt:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:startkomponenta:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:zadnedalsisoubory:
-typ::
-stopsetup
-
-startsetup
-com:nastavmeziradkovoumezeru:
-typ:val/vars/:
-val:reset,male,stredni,velky,na,pryc:male:
-var:vyska:*number::
-var:hloubka:*number::
-var:radek:*dimension::
-var:vrsek:*number::
-var:spodek:*number::
-stopsetup
-
-startsetup
-com:nastavcislovanistran:
-typ:vars/:
-var:alternativa:jednostranny,dvoustranny::
-var:misto:zahlavi,upati, vlevo,vpravo,stredni, marginalie,textovahrana,vlevo,vpravo::
-var:konverze:cisla,pismena,Pismena,rimskecislice,Rimskecislice::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:vlevo:*text::
-var:vpravo:*text::
-var:zpusob:skrztext,skrz*section::
-var:text:*text::
-var:oddelovaccisla:*text::
-var:oddelovactextu:*text::
-var:*sectionnummer:ano,ne::
-var:oddelovac:*text::
-var:status:start,stop::
-var:prikaz:*\command#1::
-stopsetup
-
-startsetup
-com:nastavzuzeni:
-typ:vars/:
-var:vlevo:*dimension::
-var:vpravo:*dimension::
-var:stredni:*dimension::
-stopsetup
-
-startsetup
-com:definuj:
-typ:val/cmd/arg/:
-val:*number:0:
-stopsetup
-
-startsetup
-com:uzijprikazy:
-typ:arg/:
-stopsetup
-
-startsetup
-com:definujstartstop:
-typ:val/vars/:
-var:pred:*command::
-var:po:*command::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:prikazy:*command::
-stopsetup
-
-startsetup
-com:nastavnadpisy:
-typ:vars/:
-var:cislooddilu:ano,ne::
-var:alternativa:normalni,naokraji,stredni,text::
-var:oddelovac:*text::
-var:prikaz:*\command#1#2::
-stopsetup
-
-startsetup
-com:nastavpopisky:
-typ:vars/:
-var:misto:vrsek,spodek,zadny,vysoko,nizko,stredni::
-var:sirka:prizpusobivy,max,*dimension::
-var:stylhlavy:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:cislo:ano,ne::
-var:mezi:*command::
-var:zarovnani:vlevo,stredni,vpravo,ne::
-var:konverze:cisla,pismena,Pismena,rimskecislice,Rimskecislice::
-var:zpusob:skrztext,skrz*section::
-stopsetup
-
-startsetup
-com:nastavpopisek:
-typ:val/vars/:
-ivr:nastavpopisky::
-stopsetup
-
-startsetup
-com:nastavplvouciobjekty:
-typ:vars/:
-var:misto:vlevo,vpravo,stredni::
-var:sirka:prizpusobivy,*dimension::
-var:pred:*command::
-var:po:*command::
-var:marginalie:*dimension::
-var:mezerapred:repeat/male,repeat/stredni,repeat/velky,zadny::
-var:mezeraza:repeat/male,repeat/stredni,repeat/velky,zadny::
-var:bocnimezerapred:repeat/male,repeat/stredni,repeat/velky,zadny::
-var:bocnimezeraza:repeat/male,repeat/stredni,repeat/velky,zadny::
-var:nvrsek:*number::
-var:nspodek:*number::
-var:nradky:*number::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:nastavdeleniplvoucichobjektu:
-typ:vars/:
-var:konverze:cisla,pismena,Pismena,rimskecislice,Rimskecislice::
-var:radky:*number::
-stopsetup
-
-startsetup
-com:rozdelplvouciobjekt:
-typ:vars/arg/arg/:
-ivr:nastavdeleniplvoucichobjektu::
-stopsetup
-
-startsetup
-com:nastavumisteniprotejsku:
-typ:var/:
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:startprotejsek:
-typ:stp/:
-stopsetup
-
-startsetup
-com:nastavdelitko:
-typ:var/:
-var:znak:--,---,-,\normalpenalty 10000\ ,),(,=,/::
-stopsetup
-
-startsetup
-com:nastavumistovani:
-typ:vars/:
-var:status:start,prekryv::
-var:jednotka:cm,pt,em,mm,ex,sp,in::
-var:faktor:*number::
-var:meritko:*number::
-var:offset:ano,ne::
-var:xkrok:absolutni,relativni::
-var:ykrok:absolutni,relativni::
-stopsetup
-
-startsetup
-com:startumistovani:
-typ:stp/:
-stopsetup
-
-startsetup
-com:mrizka:
-typ:vars/:
-var:x:*number::
-var:y:*number::
-var:nx:*number::
-var:ny:*number::
-var:dx:*number::
-var:dy:*number::
-var:xkrok:*number::
-var:ykrok:*number::
-var:offset:ano,ne::
-var:faktor:*number::
-var:meritko:*number::
-var:jednotka:cm,pt,em,mm,ex,sp,in::
-var:misto:vlevo,stredni::
-stopsetup
-
-startsetup
-com:strana:
-typ:vals/:
-val:ano,zlom,ne,nastaveni,velkaprednost, vlevo,vpravo,zablokovat,posledni,ctyrnasobny, sude,liche,prazdny,prazdne,reset:ano:
-stopsetup
-
-startsetup
-com:nastavodkazovani:
-typ:var/:
-var:status:start,stop::
-var:*sectionnummer:ano,ne::
-var:prefix:+,-,*text::
-var:interakce:popisek,text,vse,symbol::
-var:sirka:*dimension::
-var:vlevo:*command::
-var:vpravo:*command::
-var:converteerfile:ano,ne::
-stopsetup
-
-startsetup
-com:nastavurl:
-typ:vars/:
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:urlalternativa:zadny,obe,pred,po::
-var:prostorurl:ano,ne::
-stopsetup
-
-startsetup
-com:zapisdoseznamuodkazu:
-typ:val/arg/arg/:
-val:*name::
-stopsetup
-
-startsetup
-com:umistiseznamodkazu:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:definujseznamodkazu:
-typ:val/vars/:
-val:*name::
-ivr:nastavseznamodkazu::
-stopsetup
-
-startsetup
-com:nastavseznamodkazu:
-typ:vals/vars/:
-val:*name::
-var:status:start,stop::
-var:kriterium:*section,lokalni,predchozi,vse::
-var:prikaz:*command::
-var:pred:*command::
-var:po:*command::
-stopsetup
-
-startsetup
-com:zapisdoseznamu:
-typ:val/arg/arg/:
-val:*section,*name::
-stopsetup
-
-startsetup
-com:zapismeziseznam:
-typ:val/arg/:
-val:*section,*name::
-stopsetup
-
-startsetup
-com:zadnyseznam:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:umistiseznam:
-typ:vals/vars/:
-val:*name::
-ivr:nastavseznam::
-stopsetup
-
-startsetup
-com:stanovcharakteristickuseznamu:
-typ:vals/vars/:
-val:*name::
-ivr:nastavseznam::
-stopsetup
-
-startsetup
-com:definujseznam:
-typ:val/val/vars/:
-val:*name::
-val:*name::
-ivr:nastavseznam::
-stopsetup
-
-startsetup
-com:nastavseznam:
-typ:vals/vars/:
-val:*name::
-var:status:start,stop::
-var:alternativa:a,b,c,...,zadny,prikaz::
-var:propojeni:na,pryc::
-var:kriterium:*section,lokalni,predchozi,vse::
-var:hranicestrany:*list::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylcisla:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:styltextu:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylstrany:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:barva:*name::
-var:prikaz:*\command#1#2#3::
-var:ciselnyprikaz:*\command#1::
-var:textovyprikaz:*\command#1::
-var:strankovyprikaz:*\command#1::
-var:interakce:cislooddilu,text,cislostrany,vse::
-var:pred:*command::
-var:po:*command::
-var:mezi:*command::
-var:vlevo:*text::
-var:vpravo:*text::
-var:popisek:ano,ne::
-var:prefix:ano,ne::
-var:cislostrany:ano,ne::
-var:*sectionnummer:ano,ne::
-var:zarovnejtitul:ano,ne::
-var:marginalie:*dimension::
-var:sirka:*dimension,prizpusobivy::
-var:vyska:*dimension,prizpusobivy,siroky::
-var:hloubka:*dimension,prizpusobivy,siroky::
-var:vzdalenost:*dimension::
-var:oddelovac:*text::
-var:symbol:zadny,1,2,3,...::
-var:expanzen:ano,ne,prikaz::
-var:maxsirka:*dimension::
-ivr:oramovani::
-stopsetup
-
-startsetup
-com:definujkombinovanyseznam:
-typ:val/vals/vars/:
-val:*name::
-val:*list::
-ivr:nastavkombinovanyseznam::
-stopsetup
-
-startsetup
-com:nastavkombinovanyseznam:
-typ:val/vars/:
-val:*name::
-var:uroven:1,2,3,4,*section,aktualni::
-ivr:nastavseznam::
-stopsetup
-
-startsetup
-com:misto<<kombinovanyseznam>>:
-typ:val/vars/:
-val:*name::
-ivr:nastavkombinovanyseznam::
-stopsetup
-
-startsetup
-com:uplny<<kombinovanyseznam>>:
-typ:val/vars/:
-val:*name::
-ivr:nastavkombinovanyseznam::
-stopsetup
-
-startsetup
-com:nastavcislovani:
-typ:vars/:
-var:zpusob:skrztext,skrz*section::
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:nastavrovnice:
-typ:vars/:
-var:misto:vlevo,vpravo::
-var:vlevo:*text::
-var:vpravo:*text::
-stopsetup
-
-startsetup
-com:publikace:
-typ:ref/:
-stopsetup
-
-startsetup
-com:nastavpublikace:
-typ:vars/:
-var:alternativa:apa,normalni::
-ivr:nastavvycty::
-stopsetup
-
-startsetup
-com:nastavradky:
-typ:vars/:
-var:pred:*command::
-var:po:*command::
-var:mezi:*command::
-var:odsazovani:ano,ne,sude,liche::
-stopsetup
-
-startsetup
-com:startradky:
-typ:stp/:
-stopsetup
-
-startsetup
-com:nastavcislovaniradku:
-typ:vars/:
-var:konverze:cisla,pismena,Pismena,rimskecislice,Rimskecislice, text::
-var:start:*number::
-var:krok:*number::
-var:sirka:*dimension::
-var:misto:dotextu,naokraji::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:prefix:*text::
-var:odkazujici:na,pryc::
-stopsetup
-
-startsetup
-com:startcislovaniradku:
-typ:val/stp/:
-val:pokracovat::
-stopsetup
-
-startsetup
-com:startradek:
-typ:ref/stp/:
-stopsetup
-
-startsetup
-com:nejakyradek:
-typ:ref/:
-stopsetup
-
-startsetup
-com:vradku:
-typ:ref/:
-stopsetup
-
-startsetup
-com:nastavmarginalie:
-typ:val/vars/:
-val:vlevo,vpravo,*number::
-var:misto:vlevo,vpravo,obe::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:pred:*command::
-var:po:*command::
-var:zarovnani:vnitrni,vnejsi,vlevo,vpravo,stredni,normalni,ne,ano::
-var:radek:*number::
-var:vzdalenost:*dimension::
-var:oddelovac:*text::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:nastavcislostrany:
-typ:vars/:
-var:cislo:*number::
-var:status:start,stop,drzet::
-stopsetup
-
-startsetup
-com:nastavpodcislostrany:
-typ:vars/:
-var:zpusob:skrztext,skrz*section::
-var:status:start,stop,zadny::
-stopsetup
-
-startsetup
-com:nastavbilemisto:
-typ:val/:
-val:normalni,standardni,radek,*dimension, velky,stredni,male, fixne,prizpusobivy:normalni:
-stopsetup
-
-startsetup
-com:definujbilemisto:
-typ:val/val/:
-val:*name::
-ivl:nastavbilemisto::
-stopsetup
-
-startsetup
-com:definujvelikostpapiru:
-typ:val/vars/:
-val:*name::
-var:sirka:*dimension::
-var:vyska:*dimension::
-var:offset:*dimension::
-var:meritko:*number::
-stopsetup
-
-startsetup
-com:nastavvelikostpapiru:
-typ:vals/vals/:
-val:A3,A4,A5,A6,letter,...,CD,*name, nasirku,zrcadleno,otoceno,90,180,270:A4:
-val:A3,A4,A5,A6,letter,...,*name, nasirku,zrcadleno,otoceno,negativ,90,180,270:A4:
-stopsetup
-
-startsetup
-com:nastavusporadani:
-typ:vals/:
-val:zablokovat, 2*16,2*8,2*4,2*2,2UP,2DOWN, zrcadleno,otoceno,dvoustranny,negativ,90,180,270::
-stopsetup
-
-startsetup
-com:ukazvytisk:
-typ:vals/vals/vars/:
-ivr:nastavvelikostpapiru::
-ivr:nastavvelikostpapiru::
-ivr:nastavvzhled::
-stopsetup
-
-startsetup
-com:definujlogo:
-typ:val/val/val/vars/:
-val:*name::
-val:vrsek,zahlavi,upati,spodek::
-val:zadny,strana, levahrana,levyokraj, vlevo,stredni,vpravo, pravyokraj,pravahrana::
-var:prikaz:*command,*text::
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:umistiloga:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:nastavbilamista:
-typ:val/:
-val:zadny,male,stredni,velky,radek,fixne,fixuj,*dimension:zadny:
-stopsetup
-
-startsetup
-com:nastavodsazovani:
-typ:vals/:
-val:zadny,male,stredni,velky,dalsi,prvni,*dimension:zadny:
-stopsetup
-
-startsetup
-com:definujbloksekce:
-typ:val/vars/:
-val:*name::
-ivr:nastavbloksekce::
-stopsetup
-
-startsetup
-com:nastavbloksekce:
-typ:val/vars/:
-val:*name::
-var:cislo:ano,ne::
-var:strana:ano,vpravo::
-var:pred:*command::
-var:po:*command::
-stopsetup
-
-startsetup
-com:definujsekci:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:nastavsekci:
-typ:val/vars/:
-val:*name::
-var:konverze:cisla,pismena,Pismena,rimskecislice,Rimskecislice::
-var:predchozicislo:ano,ne::
-stopsetup
-
-startsetup
-com:nastavnadpis:
-typ:val/vars/:
-val:*section::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:styltextu:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylcisla:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:cislo:ano,ne::
-var:vlastnicislo:ano,ne::
-var:strana:vlevo,vpravo,ano::
-var:pokracovat:ano,ne::
-var:zahlavi:zadny,prazdne,vysoko,zadneznaceni::
-var:pred:*command::
-var:mezi:*command::
-var:po:*command::
-var:alternativa:normalni,naokraji,stredni,text::
-var:prikaz:*\command#1#2::
-var:ciselnyprikaz:*\command#1::
-var:textovyprikaz:*\command#1::
-var:prefix:+,-,*text::
-var:hlavamista:ano,ne::
-var:zvysujicicislo:ano,ne,*file::
-var:zarovnani:vlevo,vpravo,normalni,siroky::
-var:tolerance:velmistriktni,striktni,tolerantni,velmitolerantni,rek::
-var:odsadpristi:ano,ne::
-var:soubor:*name::
-var:expanzen:ano,prikaz,ne::
-stopsetup
-
-startsetup
-com:nastavcislonadpisu:
-typ:val/val/:
-val:*section::
-val:*number,+*number,-*number::
-stopsetup
-
-startsetup
-com:cislonadpisu:
-typ:val/:
-val:*section::
-stopsetup
-
-startsetup
-com:stanovcislonadpisu:
-typ:val/:
-val:*section::
-stopsetup
-
-startsetup
-com:aktualnicislonadpisu:
-typ::
-stopsetup
-
-startsetup
-com:dalsi<<oddil>>:
-typ::
-stopsetup
-
-startsetup
-com:definujnadpis:
-typ:val/val/:
-val:*name::
-val:*section::
-stopsetup
-
-startsetup
-com:nastavvycet:
-typ:val/vals/vars/:
-val:*number,kazdy::
-val:standardni,repeat/siroky,repeat/semknuto,zhustene, vanelkaar,predel,spojeno,naokraji,naokraji, autouvod,uvolnene:standardni:
-var:marginalie:ne,standardni,*dimension::
-var:sirka:*dimension::
-var:vzdalenost:*dimension::
-var:faktor:*number::
-var:polozky:*number::
-var:pred:*command::
-var:mezi:*command::
-var:po:*command::
-var:predhlavou:*command::
-var:pohlave:*command::
-var:stylhlavy:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylsnacky:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylsymboly:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:predel:*text::
-var:n:*number::
-var:symbol:*number::
-var:zarovnani:vlevo,vpravo,normalni::
-var:odsadpristi:ano,ne::
-stopsetup
-
-startsetup
-com:startvycet:
-typ:vals/vars/stp/:
-val:a,A,KA,n,N,m,r,R,KR,*number,pokracovat, standardni,repeat/siroky,repeat/semknuto,zhustene, predel,spojeno,naokraji,naokraji,uvod,sloupce:standardni:
-ivr:nastavvycet::
-stopsetup
-
-startsetup
-com:polozka:
-typ:refs/:
-stopsetup
-
-startsetup
-com:spodek:
-typ:ref/:
-stopsetup
-
-startsetup
-com:pol:
-typ:refs/:
-stopsetup
-
-startsetup
-com:ran:
-typ:arg/:
-stopsetup
-
-startsetup
-com:nadpis:
-typ:refs/:
-stopsetup
-
-startsetup
-com:okr:
-typ:refs/arg/:
-stopsetup
-
-startsetup
-com:pod:
-typ:refs/:
-stopsetup
-
-startsetup
-com:sym:
-typ:arg/:
-stopsetup
-
-startsetup
-com:nop:
-typ::
-stopsetup
-
-startsetup
-com:definujrejstrik:
-typ:val/val/:
-val:*singular name::
-val:*plural name::
-stopsetup
-
-startsetup
-com:nastavrejstrik:
-typ:val/val/vars/:
-val:*singular name::
-val:*name::
-var:n:*number::
-var:rovnovaha:ano,ne::
-var:zarovnani:ano,ne::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylstrany:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:styltextu:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:indikator:ano,ne::
-var:propojeni:ano,ne::
-var:*sectionnummer:ano,ne::
-var:kriterium:*section,lokalni,vse::
-var:vzdalenost:*dimension::
-var:symbol:1,2,...,n,a,...,zadny::
-var:interakce:cislostrany,text::
-var:expanzen:ano,prikaz,ne::
-var:odkazujici:na,pryc::
-var:prikaz:*\command#1::
-var:misto:vlevo,stredni,vpravo::
-var:maxsirka:*dimension::
-var:neznamyodkaz:prazdne,zadny::
-stopsetup
-
-startsetup
-com:<<rejstrik>>:
-typ:val/idxs/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:start<<rejstrik>>:
-typ:val/idxs/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:zapisdorejstriku:
-typ:val/val/idxs/:
-val:*singular name::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:propojeny<<rejstrik>>:
-typ:val/idx/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:propojenyrejstrik:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:viz<<rejstrik>>:
-typ:val/arg/idxs/:
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:uplny<<rejstrik>>:
-typ:vars/:
-ivr:nastavrejstrik::
-stopsetup
-
-startsetup
-com:misto<<rejstrik>>:
-typ:vars/:
-ivr:nastavrejstrik::
-stopsetup
-
-startsetup
-com:definujsynonyma:
-typ:val/val/val/val/:
-val:*singular name::
-val:*plural name::
-val:*command::
-val:*command::
-stopsetup
-
-startsetup
-com:nastavsynonyma:
-typ:val/vars/:
-val:*name::
-var:styltextu:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:stylsynonyma:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:misto:vlevo,vpravo,vrsek,semknuto, naokraji,vlevo,vpravo::
-var:sirka:*dimension::
-var:status:start,stop::
-var:kriterium:vse,uzito::
-var:konverze:ano,ne::
-var:expanzen:ano,prikaz,ne::
-var:prikaz:*\command#1#2#3::
-stopsetup
-
-startsetup
-com:<<synonymum>>:
-typ:val/arg/arg/:
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:uplnyseznam<<synonyma>>:
-typ::
-stopsetup
-
-startsetup
-com:mistoseznam<<synonyma>>:
-typ::
-stopsetup
-
-startsetup
-com:nacist<<synonyma>>:
-typ::
-stopsetup
-
-startsetup
-com:definujtrideni:
-typ:val/val/val/:
-val:*singular name::
-val:*plural name::
-val:*command::
-stopsetup
-
-startsetup
-com:nastavtrideni:
-typ:val/vars/:
-val:*name::
-var:pred:*command::
-var:po:*command::
-var:prikaz:*\command#1::
-var:status:start,stop::
-var:kriterium:vse,uzito::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:expanzen:ano,prikaz,ne::
-stopsetup
-
-startsetup
-com:<<trid>>:
-typ:val/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:uplnyseznam<<tridit>>:
-typ::
-stopsetup
-
-startsetup
-com:mistoseznam<<tridit>>:
-typ::
-stopsetup
-
-startsetup
-com:nacist<<tridit>>:
-typ::
-stopsetup
-
-startsetup
-com:definujupravu:
-typ:val/vars/:
-val:*name::
-ivr:nastavupravu::
-stopsetup
-
-startsetup
-com:startuprava:
-typ:val/vars/stp/:
-val:*name::
-ivr:nastavupravu::
-stopsetup
-
-startsetup
-com:nastavupravu:
-typ:val/vars/:
-val:*name::
-var:sirka:*dimension::
-var:vyska:*dimension::
-var:voffset:*dimension::
-var:hoffset:*dimension::
-var:strana:vlevo,ano,vpravo::
-var:prikazy:*command::
-var:dvoustranny:ano,ne,prazdne::
-var:statuszahlavi:normalni,stop,start,prazdne,zadny,zadneznaceni::
-var:statusupati:normalni,stop,start,prazdne,zadny,zadneznaceni::
-var:statustextu:normalni,stop,start,prazdne,zadny,zadneznaceni::
-var:statusvrsku:stop,start::
-var:statusspodku:stop,start::
-stopsetup
-
-startsetup
-com:start<<jmeno>>zlom:
-typ:stp/:
-stopsetup
-
-startsetup
-com:verze:
-typ:val/:
-val:finalni,koncept,docasny:finalni:
-stopsetup
-
-startsetup
-com:aktualnidatum:
-typ:vals/:
-val:den,mesic,MESIC,vsedniden,VSEDNIDEN,rok, dd,mm,jj,yy,d,m,j,y,znacka:den,mesic,rok:
-stopsetup
-
-startsetup
-com:datum:
-typ:vars/vals/:
-var:d:*number::
-var:m:*number::
-var:y:*number::
-ivl:aktualnidatum::
-stopsetup
-
-startsetup
-com:odkaznadatum:
-typ::
-stopsetup
-
-startsetup
-com:odsazovani:
-typ:vals/:
-val:nikdy,ne,ne,ano,vzdy,prvni,dalsi:nikdy:
-stopsetup
-
-startsetup
-com:zadneodsazovani:
-typ::
-stopsetup
-
-startsetup
-com:bilemisto:
-typ:vals/:
-val:repeat/male,repeat/stredni,repeat/velky, zadnabila,zpet,bily,zablokovat,sila,reset, radek,pulradku,rovnice,fixne,prizpusobivy:velky:
-stopsetup
-
-startsetup
-com:startzhustene:
-typ:val/stp/:
-val:prazdny::
-stopsetup
-
-startsetup
-com:startnezhustene:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startkorekceradku:
-typ:stp/:
-stopsetup
-
-startsetup
-com:korekcebilehomista:
-typ:arg/:
-stopsetup
-
-startsetup
-com:startodlozit:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startlokalni:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startzuzeni:
-typ:vals/stp/:
-val:repeat/vlevo,repeat/stredni,repeat/vpravo:stredni:
-stopsetup
-
-startsetup
-com:startskryt:
-typ:stp/:
-stopsetup
-
-startsetup
-com:nastavzarovnani:
-typ:val/:
-val:sirka,vlevo,vpravo,stredni,vnitrni,vnejsi, siroky,siroky,vyska,spodek,radek,reset::
-stopsetup
-
-startsetup
-com:startzarovnavani:
-typ:stp/val/:
-ivr:nastavzarovnani::
-stopsetup
-
-startsetup
-com:nastavradkovani:
-typ:val/:
-val:siroky,zhustene::
-stopsetup
-
-startsetup
-com:nastavtoleranci:
-typ:vals/:
-val:horizontalni,vertikalne, rek,velmistriktni,striktni,tolerantni,velmitolerantni:velmistriktni:
-stopsetup
-
-startsetup
-com:typstrany:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:zpracujstranu:
-typ:vals/val/:
-val:*name::
-val:ano,ne:ano:
-stopsetup
-
-startsetup
-com:parovastrana:
-typ:vals/vars/:
-val:*name::
-var:volba:dvoustranny::
-var:pred:*command::
-var:po:*command::
-stopsetup
-
-startsetup
-com:pozice:
-typ:poss/arg/:
-val:*number::
-val:*number::
-val:*text::
-stopsetup
-
-startsetup
-com:nastavrastr:
-typ:vars/:
-var:metoda:tecka,linka,externi::
-var:rozliseni:*number::
-var:faktor:*number::
-var:rastr:*number::
-stopsetup
-
-startsetup
-com:nastavpozadi:
-typ:val/vals/vars/:
-val:vrsek,zahlavi,text,upati,spodek, strana,levastrana,pravastrana::
-val:levahrana,levyokraj,text,pravyokraj,pravahrana::
-var:status:start,stop,opakovat::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:startbuffer:
-typ:val/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:ziskejbuffer:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:typebuffer:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:definujbuffer:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:nastavbuffer:
-typ:val/vars/:
-val:*name::
-var:pred:*command::
-var:po:*command::
-stopsetup
-
-startsetup
-com:definujblok:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:zadnedalsibloky:
-typ::
-stopsetup
-
-startsetup
-com:schovejbloky:
-typ:vals/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:zachovejbloky:
-typ:vals/vals/:
-val:*name::
-val:vse,*name::
-stopsetup
-
-startsetup
-com:uzijbloky:
-typ:vals/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:zpracujbloky:
-typ:vals/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:vyberbloky:
-typ:vals/vals/var/:
-val:*name::
-val:*name::
-var:kriterium:vse,*section::
-stopsetup
-
-startsetup
-com:nastavblok:
-typ:vals/vars/:
-val:*name::
-var:pred:*command::
-var:po:*command::
-var:vnitrni:*command::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:soubor:*file::
-stopsetup
-
-startsetup
-com:startrovnice:
-typ:stp/:
-val:*formula::
-stopsetup
-
-startsetup
-com:matematika:
-typ:arg/:
-val:*formula::
-stopsetup
-
-startsetup
-com:umistirovnici:
-typ:refs/arg/dis/:
-val:*text::
-val:*formula::
-stopsetup
-
-startsetup
-com:umistipodrovnici:
-typ:refs/arg/dis/:
-val:*text::
-val:*formula::
-stopsetup
-
-startsetup
-com:misto<<blok>>:
-typ:val/refs/arg/arg/:
-val:vlevo,vpravo,zde,vrsek,spodek, vlevo,vpravo,naokraji,marginalie, strana,opacny,vzdy,sila,vysoky:zde:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:rezervovat<<blok>>:
-typ:vars/val/refs/arg/:
-var:vyska:*dimension::
-var:sirka:*dimension::
-var:ramecek:na,pryc::
-val:vlevo,vpravo,zde,vrsek,spodek, vlevo,vpravo,naokraji,marginalie, strana,opacny,vzdy,sila:zde:
-val:*text::
-stopsetup
-
-startsetup
-com:definujplvouciobjekt:
-typ:val/val/:
-val:*singular name::
-val:*plural name::
-stopsetup
-
-startsetup
-com:nastavplvouciobjekt:
-typ:val/vars/:
-val:*name::
-var:vyska:*dimension::
-var:sirka:*dimension::
-var:hranicestrany:*list::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:start<<blok>>text:
-typ:val/ref/arg/arg/stp/:
-val:vlevo,vpravo,vysoko,stredni,nizko,offset,vysoky::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:mistoseznam<<bloky>>:
-typ::
-stopsetup
-
-startsetup
-com:uplnyseznam<<bloky>>:
-typ::
-stopsetup
-
-startsetup
-com:poppisek:
-typ:val/arg/arg/arg/arg/arg/arg/:
-val:uzky,siroky:siroky:
-val:*text::
-val:*text::
-val:*text::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:odkaz:
-typ:vars/:
-var:bet:*text::
-var:ken:*text::
-var:dat:*text::
-var:z:*text::
-var:na:*text::
-var:ref:*text::
-stopsetup
-
-startsetup
-com:vyberpapir:
-typ:vars/:
-var:rodina:1,2::
-stopsetup
-
-startsetup
-com:dvoustrannypapir:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:chem:
-typ:arg/arg/arg/:
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:zlomek:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:tecky:
-typ:val/:
-val:*number::
-stopsetup
-
-startsetup
-com:bydliste:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:polozky:
-typ:vars/args/:
-ivr:nastavpolozky::
-stopsetup
-
-startsetup
-com:nastavpolozky:
-typ:vars/:
-var:misto:vlevo,vpravo,naokraji,vrsek,spodek::
-var:symbol:1,2,...,n,a,...,*text,zadny::
-var:sirka:*dimension::
-var:n:*number,neznamy::
-var:pred:*command::
-var:mezi:*command::
-var:zarovnani:vlevo,vpravo,stredni,marginalie::
-var:po:*command::
-stopsetup
-
-startsetup
-com:startcitace:
-typ:vals/stp/:
-val:repeat/vlevo,repeat/stredni,repeat/vpravo:stredni:
-stopsetup
-
-startsetup
-com:citace:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:citovat:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:nastavcitaci:
-typ:vars/:
-var:pred:*command::
-var:po:*command::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-stopsetup
-
-startsetup
-com:scitani:
-typ:val/:
-val:male,stredni,velky:stredni:
-stopsetup
-
-startsetup
-com:definujodstavce:
-typ:val/vars/:
-val:*name::
-var:n:*number::
-var:linka:na,pryc::
-var:vyska:prizpusobivy,*dimension::
-var:pred:*command::
-var:po:*command::
-var:vnitrni:*command::
-var:vzdalenost:*dimension::
-var:tolerance:velmistriktni,striktni,tolerantni,velmitolerantni,rek::
-var:zarovnani:vlevo,vpravo,stredni::
-stopsetup
-
-startsetup
-com:<<odstavce>>:
-typ::
-stopsetup
-
-startsetup
-com:start<<odstavce>>:
-typ:stp/:
-stopsetup
-
-startsetup
-com:nastavodstavce:
-typ:val/val/vars/:
-val:*name::
-val:*number,kazdy::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:sirka:*dimension::
-var:vyska:*dimension::
-var:zarovnani:vlevo,vpravo,stredni,sirka::
-var:tolerance:velmistriktni,striktni,tolerantni,velmitolerantni,rek::
-var:vzdalenost:*dimension::
-var:pred:*command::
-var:po:*command::
-var:vnitrni:*command::
-var:prikaz:*command::
-var:linka:na,pryc::
-stopsetup
-
-startsetup
-com:nastavtab:
-typ:vars/:
-var:vzor:*text::
-var:sirka:*dimension::
-var:stylhlavy:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:misto:vlevo,vpravo::
-stopsetup
-
-startsetup
-com:tab:
-typ:arg/nop/par/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:startdokument:
-typ:val/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:dopisy:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:popisky:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:nastavkorespondenci:
-typ:vals/:
-val:formeel,informeel,rekening,ls, vysoko,stredni,nizko:formeel,nizko:
-stopsetup
-
-startsetup
-com:nastavlisty:
-typ:vars/:
-var:alternativa:*number::
-var:text:*text::
-var:velikost:male,stredni,velky::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:cislo:*number,spojeno::
-stopsetup
-
-startsetup
-com:list:
-typ:val/:
-val:*text::
-stopsetup
-
-startsetup
-com:nastavetikety:
-typ:vars/:
-var:alternativa:a::
-var:n:*number,vse::
-var:misto:marginalie,vlevo,vpravo,stredni::
-stopsetup
-
-startsetup
-com:definujtabelaci:
-typ:val/val/val/:
-val:*name::
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:starttabelator:
-typ:val/vars/stp/:
-val:*text::
-ivr:uzijexterniobraz::
-stopsetup
-
-startsetup
-com:nastavtabelaci:
-typ:val/vars/:
-val:*name::
-var:jednotka:*dimension::
-var:odsazovani:ano,ne::
-var:pred:*command::
-var:po:*command::
-var:vnitrni:*command::
-var:EQ:*text::
-var:barvalinky:*name::
-var:zarovnani:vlevo,stredni,vpravo,normalni::
-var:tloustkalinky:*dimension::
-var:vzdalenost:prazdny,hloubka,*dimension,male,stredni,velky,zadny::
-stopsetup
-
-startsetup
-com:nastavtabulky:
-typ:vars/:
-var:vzdalenost:male,stredni,velky::
-var:zakladnifont:5pt,...,12pt,male,velky::
-var:HL:*number,male,stredni,velky,zadny::
-var:VL:*number,male,stredni,velky,zadny::
-var:hloubka:*number,strut::
-var:vyska:*number,strut::
-var:tloustkalinky:*dimension::
-var:barvalinky:*name::
-var:zarovnani:vpravo,stredni,vlevo,normalni::
-var:prikazy:*command::
-var:zarovnani:vlevo,stredni,vpravo,normalni::
-var:pozadi:rastr,barva,zadny::
-var:rastrpozadi:*number::
-var:barvapozadi:*name::
-stopsetup
-
-startsetup
-com:starttabulka:
-typ:val/stp/:
-val:*text,*name::
-stopsetup
-
-startsetup
-com:starttabulky:
-typ:val/stp/:
-val:*text,*name::
-stopsetup
-
-startsetup
-com:definujsablonutabulky:
-typ:val/val/val/val/:
-val:*name::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:uzijexternisoubory:
-typ:val/vars/:
-val:*name::
-var:zakladnifont:5pt,...,12pt,male,velky::
-var:soubor:*file::
-stopsetup
-
-startsetup
-com:uzijexternisoubor:
-typ:val/val/val/vars/:
-val:*name::
-val:*name::
-val:*file::
-var:zakladnifont:5pt,...,12pt,male,velky::
-stopsetup
-
-startsetup
-com:uzijexterniobraz:
-typ:val/val/vars/:
-val:*name::
-val:*file::
-var:meritko:*number::
-var:faktor:max,prizpusobivy,siroky::
-var:sfaktor:*number,max,siroky,prizpusobivy::
-var:vfaktor:*number,max,siroky,prizpusobivy::
-var:sirka:*dimension::
-var:vyska:*dimension::
-var:ramecek:na,pryc::
-var:prednastaveni:ano,ne::
-var:obrazovka:*file::
-var:nahled:ano,ne::
-var:opakovat:ano,ne::
-var:objekt:ano,ne::
-var:type:eps,mps,pdf,tif,png,jpg,mov,tex::
-var:metoda:eps,mps,pdf,tif,png,jpg,mov,tex::
-stopsetup
-
-startsetup
-com:externiobraz:
-typ:val/vars/:
-val:*file::
-ivr:uzijexterniobraz::
-stopsetup
-
-startsetup
-com:nastavexterniobrazy:
-typ:var/:
-var:volba:ramecek,prazdne,test::
-var:objekt:ano,ne::
-var:ramecky:na,pryc::
-var:ymax:*number::
-var:xmax:*number::
-var:adresar:*text::
-var:misto:lokalni,globalni::
-stopsetup
-
-startsetup
-com:ukazexterniobrazy:
-typ:vars/:
-var:alternativa:a,b,c::
-stopsetup
-
-startsetup
-com:jmeno:
-typ:arg/:
-val:*name::
-stopsetup
-
-startsetup
-com:startlegenda:
-typ:val/tex/{leg}nop/sep/nop/sep/nop/sep/tex/{leg}stp/:
-val:dve::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:startfakt:
-typ:tex/{geg}nop/sep/nop/sep/nop/sep/tex/{geg}stp/:
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:otocit:
-typ:vars/arg/:
-ivr:nastavotoceni::
-stopsetup
-
-startsetup
-com:nastavotoceni:
-typ:vars/:
-var:rotace:*number::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:zrcadlit:
-typ:arg/:
-stopsetup
-
-startsetup
-com:meritko:
-typ:vars/arg/:
-var:sx:*number::
-var:sy:*number::
-stopsetup
-
-startsetup
-com:nastavspojeni:
-typ:vars/:
-var:pred:commando::
-var:mezi:commando::
-var:po:commando::
-var:vzdalenost:*dimension::
-var:vyska:*dimension,prizpusobivy::
-var:sirka:*dimension,prizpusobivy::
-stopsetup
-
-startsetup
-com:startspojeni:
-typ:val/stp/:
-val:*n*m::
-stopsetup
-
-startsetup
-com:umistivedlesebe:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:umistinadsebe:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:startprekryv:
-typ:arg/arg/stp/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:startprehled:
-typ:vals/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:nastavinterakcniobrazovku:
-typ:vars/:
-var:sirka:*dimension,prizpusobivy,max::
-var:vyska:*dimension,prizpusobivy,max::
-var:zpetnamezera:*dimension::
-var:svrchnimezera:*dimension::
-var:horoffset:*dimension::
-var:offsethlavy:*dimension::
-var:volba:max,bookmark::
-var:wachttijd:*number,zadny::
-stopsetup
-
-startsetup
-com:obrazovka:
-typ::
-stopsetup
-
-startsetup
-com:nastavprechodstrany:
-typ:vals/:
-val:reset, *number::
-stopsetup
-
-startsetup
-com:nastavinterakci:
-typ:vars/:
-var:status:start,stop::
-var:menu:na,pryc::
-var:strana:ano,ne::
-var:klik:ano,ne::
-var:obrazovka:nieuw::
-var:otevriakci:*reference::
-var:zavriakci:*reference::
-var:pocitat:*name::
-var:strut:ano,ne::
-var:sirka:*dimension::
-var:vyska:*dimension::
-var:hloubka:*dimension::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...*command::
-var:barva:*name::
-var:kontrastnibarva:*name::
-var:sadasymbolu:*name::
-var:titul:*text::
-var:podtitulek:*text::
-var:autor:*text::
-var:datum:*text::
-stopsetup
-
-startsetup
-com:nastavinterakcnimenu:
-typ:vals/vars/dests/:
-val:vlevo,vpravo,vrsek,spodek,*name::
-var:pred:*command::
-var:po:*command::
-var:mezi:*command::
-var:vlevo:*command::
-var:vpravo:*command::
-var:stredni:*command::
-var:status:start,stop,zadny::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...*command::
-var:barva:*name::
-var:vzdalenost:prekryv,*dimension::
-var:stejnastrana:ano,prazdne,ne,zadny::
-var:neznamyodkaz:ano,prazdne,ne,zadny::
-var:levyoffset:*dimension::
-var:pravyoffset:*dimension::
-var:offsetvrsku:*dimension::
-var:offsetspodku:*dimension::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:definujinterakcnimenu:
-typ:val/val/vars/:
-val:vlevo,vpravo,vrsek,spodek,*name::
-val:vlevo,vpravo,vrsek,spodek,*name::
-ivr:nastavinterakcnimenu::
-stopsetup
-
-startsetup
-com:startinteraktivnimenu:
-typ:val/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:zablokujinterakcnimenu:
-typ:val/refs/:
-val:vlevo,vpravo,vrsek,spodek,*name::
-stopsetup
-
-startsetup
-com:uzijexternidokument:
-typ:val/val/val/:
-val:*name::
-val:file::
-val:*text::
-stopsetup
-
-startsetup
-com:uzijURL:
-typ:val/val/val/val/:
-val:*name::
-val:*text::
-val:file::
-val:*text::
-stopsetup
-
-startsetup
-com:propojenydokument:
-typ:val/val/val/:
-val:*name::
-val:file::
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:z:
-typ:ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:interakcnilista:
-typ:vars/:
-ivr:nastavinterakcnilistu::
-stopsetup
-
-startsetup
-com:interakcnitlacitka:
-typ:vars/vals/:
-ivr:nastavinterakcnilistu::
-val:*name::
-stopsetup
-
-startsetup
-com:nastavinterakcnilistu:
-typ:vars/:
-var:status:start,stop::
-var:alternativa:a,b,c,d,e,f,g::
-var:symbol:ano,ne::
-var:sirka:*dimension,hoogte,prizpusobivy::
-var:vyska:*dimension,hoogte,prizpusobivy::
-var:hloubka:*dimension::
-var:barva:*name::
-var:krok:*number,male,stredni,velky::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:synchronizovat:
-typ::
-stopsetup
-
-startsetup
-com:startsynchronizace:
-typ:stp/:
-stopsetup
-
-startsetup
-com:nastavsynchronizacnilistu:
-typ:vars/:
-var:alternativa:strana,lokalni::
-var:sirka:*dimension,hoogte,prizpusobivy::
-var:vyska:*dimension::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-var:barva:*name::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:synchronizacnilista:
-typ:val/vars/:
-val:*name::
-var:alternativa:strana,lokalni::
-ivr:nastavsynchronizacnilistu::
-stopsetup
-
-startsetup
-com:nastavsynchronizaci:
-typ:vars/:
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:definujprofil:
-typ:vals/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:nastavprofily:
-typ:vars/:
-var:volba:test::
-stopsetup
-
-startsetup
-com:startprofil:
-typ:vals/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:dodrzujprofil:
-typ:arg/val/:
-val:*text::
-val:*name::
-stopsetup
-
-startsetup
-com:umistizalozky:
-typ:vals/vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:zalozka:
-typ:val/arg/:
-val:*name::
-stopsetup
-
-startsetup
-com:startverze:
-typ:vals/stp/:
-val:*number::
-stopsetup
-
-startsetup
-com:nastavverze:
-typ:vars/:
-var:cislo:*number::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type,kap,male...,*command::
-stopsetup
-
-startsetup
-com:oznacverzi:
-typ::
-stopsetup
-
-startsetup
-com:vyberverzi:
-typ::
-stopsetup
-
-startsetup
-com:definujverzi:
-typ:val/vals/:
-val:*name::
-val:*number::
-stopsetup
-
-startsetup
-com:dodrzujverzi:
-typ:arg/val/:
-val:*text::
-val:*name::
-stopsetup
-
-startsetup
-com:dodrzujverziprofilu:
-typ:arg/val/val/:
-val:*text::
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:definujprogram:
-typ:val/val/val/:
-val:*name::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:nastavprogramy:
-typ:vars/:
-var:adresar:*text::
-stopsetup
-
-startsetup
-com:program:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:startobraz:
-typ:val/val/vars/stp/:
-val:*name::
-val:*file::
-var:faktor:*number::
-var:ramecek:na,pryc::
-stopsetup
-
-startsetup
-com:odkazujici/obrazek:
-typ:poss/poss/val/:
-val:*number::
-val:*number::
-val:*number::
-val:*number::
-val:*text::
-stopsetup
-
-startsetup
-com:znaceni/obrazek:
-typ:poss/poss/val/:
-val:*number::
-val:*number::
-val:*number::
-val:*number::
-val:*text::
-stopsetup
-
-startsetup
-com:poznamka:
-typ:poss/poss/vars/arg/:
-val:*number::
-val:*number::
-val:*number::
-val:*number::
-ivr:nastavoramovani::
-val:*text::
-stopsetup
-
-startsetup
-com:jdina:
-typ:arg/arg/refs/:
-val:*text::
-stopsetup
-
-startsetup
-com:jdinabox:
-typ:arg/refs/:
-val:*text::
-stopsetup
-
-startsetup
-com:tlacitko:
-typ:vars/arg/refs/:
-ivr:nastavtlacitka::
-val:*text::
-stopsetup
-
-startsetup
-com:nastavtlacitka:
-typ:vars/:
-var:status:start,stop::
-ivr:nastavoramovani::
-stopsetup
-
-startsetup
-com:tlacitkomenu:
-typ:val/vars/arg/refs/:
-ivr:nastavoramovani::
-val:*text::
-stopsetup
-
-startsetup
-com:nastavkomentar:
-typ:vars/:
-var:sirka:*dimension::
-var:vyska:*dimension::
-var:barva:*name::
-var:titul:*text::
-var:mezera:ano,ne::
-var:symbol:normalni,Nieuw,Ballon,Toevoeging,Help,Paragraaf,Sleutel::
-stopsetup
-
-startsetup
-com:startkomentar:
-typ:val/vars/stp/:
-val:*name::
-ivr:nastavkomentar::
-stopsetup
-
-startsetup
-com:komentar:
-typ:val/vars/arg/:
-val:*name::
-ivr:nastavkomentar::
-stopsetup
-
-startsetup
-com:definujpole:
-typ:val/val/val/vals/val/:
-val:*name::
-val:*name:radio,check,push,line,text,popup,choice,combo:
-val:*name::
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:definujpodpole:
-typ:val/val/vals/:
-val:*name::
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:kopirujpole:
-typ:val/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:klonujpole:
-typ:val/vals/val/vals/:
-val:*name::
-val:*name::
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:pole:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:prizpusobivepole:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:vyplnovepole:
-typ:val/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:bublinkovanapoveda:
-typ:val/arg/arg/:
-val:vlevo,vpravo,stredni::
-val:*text::
-stopsetup
-
-startsetup
-com:ukazpole:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:zaznamovepole:
-typ::
-stopsetup
-
-startsetup
-com:nastavpole:
-typ:val/vals/vars/vars/vars/:
-val:*name::
-val:popisek,horizontalni,vertikalne,ramecek::
-ivr:oramovani::
-ivr:nastavvsechnapole::
-stopsetup
-
-startsetup
-com:nastavvsechnapole:
-typ:vals/val/vars/vars/vars/:
-val:*name::
-val:reset,popisek,horizontalni,vertikalne,ramecek::
-ivr:oramovani::
-var:n:*number::
-var:vzdalenost:*dimension::
-var:pred:*command::
-var:po:*command::
-var:mezi:*command::
-var:barva:*name::
-var:pismeno:normalni,tucne,sklonene,tucnesklonene,type::
-var:zarovnani:vlevo,stredni,vpravo::
-var:volba:pouzeprocteni,pozadovane,chranene,tridene, nedostupne, skryte,tisknutelne::
-var:klikuvnitr:*reference::
-var:klikvne:*reference::
-var:oblastuvnitr:*reference::
-var:oblastvne:*reference::
-var:klavesapo:*reference::
-var:formatovat:*reference::
-var:validovat:*reference::
-var:pocitat:*reference::
-var:offsetpole:*dimension::
-var:barvarameckupole:*name::
-var:barvapozadipole:*name::
-stopsetup
-
-startsetup
-com:definujzasobnikpoli:
-typ:val/vals/vars/:
-val:*name::
-val:*name::
-ivr:nastavvsechnapole::
-stopsetup
-
-startsetup
-com:zasobnikpoli:
-typ:val/vals/vars/:
-val:*name::
-val:*name::
-ivr:nastavvsechnapole::
-stopsetup
-
-startsetup
-com:clip:
-typ:vars/arg/:
-ivr:setupclipping::
-stopsetup
-
-startsetup
-com:setupclipping:
-typ:vars/:
-var:nx:*number::
-var:ny:*number::
-var:x:*number::
-var:y:*number::
-var:sirka:*dimension::
-var:vyska:*dimension::
-var:hoffset:*dimension::
-var:voffset:*dimension::
-var:mp:*name::
-stopsetup
-
-startsetup
-com:placelegend:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:setuplegend:
-typ:vars/:
-var:n:*number::
-var:vzdalenost:*dimension::
-var:mezi:*command::
-var:sirka:*dimension::
-var:vyska:*dimension::
-var:misto:vpravo,spodek::
-var:zakladnifont:5pt,...,12pt,male,velky::
-stopsetup
-
diff --git a/context/data/cont-de.tws b/context/data/cont-de.tws
deleted file mode 100644
index 723436db3..000000000
--- a/context/data/cont-de.tws
+++ /dev/null
@@ -1,3878 +0,0 @@
-startsetup
-com:installieresprache:
-typ:val/vars/:
-val:*Name::
-var:spatiumausgleich:gepackt,breit::
-var:lefthyphenmin:*Dimension::
-var:righthyphenmin:*Dimension::
-var:status:start,stop::
-var:linkersatz:*Befehl::
-var:rechtersatz:*Befehl::
-var:linkersubsatz:*Befehl::
-var:rechtersubsatz:*Befehl::
-var:linkerzitieren:*Befehl::
-var:rechterzitieren:*Befehl::
-var:linkerzitat:*Befehl::
-var:rechterzitat:*Befehl::
-var:default:*Name::
-stopsetup
-
-startsetup
-com:stellespracheein:
-typ:val/vars/:
-ivr:installieresprache::
-stopsetup
-
-startsetup
-com:sprache:
-typ:val/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-stopsetup
-
-startsetup
-com:hauptsprache:
-typ:val/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-stopsetup
-
-startsetup
-com:uebersetzten:
-typ:vars/:
-var:*Name:*Text::
-stopsetup
-
-startsetup
-com:benutzekodierung:
-typ:vals/:
-val:*Name::
-stopsetup
-
-startsetup
-com:benutzespezielles:
-typ:vals/:
-val:reset,*Name::
-stopsetup
-
-startsetup
-com:defineoutput:
-typ:val/vals/:
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:stelleausgabeein:
-typ:vals/:
-val:*Name::
-stopsetup
-
-startsetup
-com:definierefliesstextumgebung:
-typ:val/vars/:
-val:5pt,...,12pt,default::
-var:text:*Dimension::
-var:script:*Dimension::
-var:scriptscript:*Dimension::
-var:x:*Dimension::
-var:xx:*Dimension::
-var:klein:*Dimension::
-var:gross:*Dimension::
-stopsetup
-
-startsetup
-com:stellefliesstextumgebungein:
-typ:val/vars/:
-ivl:stellefliesstextein::
-ivr:stellefliesstextein::
-stopsetup
-
-startsetup
-com:zeigefliesstextumgebung:
-typ:vals/:
-ivl:stellefliesstextein::
-stopsetup
-
-startsetup
-com:definierefliesstext:
-typ:vals/val/vars/:
-val:5pt,...,12pt,default::
-val:rm,ss,tt,mm,hw,cg::
-var:tf:*Datei::
-var:bf:*Datei::
-var:sl:*Datei::
-var:it:*Datei::
-var:bs:*Datei::
-var:bi:*Datei::
-var:sc:*Datei::
-var:ex:*Datei::
-var:mi:*Datei::
-var:sy:*Datei::
-var:ma:*Datei::
-var:mb:*Datei::
-var:mc:*Datei::
-stopsetup
-
-startsetup
-com:zeigefliesstext:
-typ:vals/:
-ivl:stellefliesstextein::
-stopsetup
-
-startsetup
-com:stellefliesstextein:
-typ:vals/:
-val:*Name, serif,regular,antiqua, sans,support,grotesk, mono,tippen,fernschreiber, handschrift,kalligraphie, 5pt,...,12pt:sau,ibm,12pt,serif:
-stopsetup
-
-startsetup
-com:wechselezumfliesstext:
-typ:vals/:
-val:5pt,...,12pt,klein,gross,global::
-stopsetup
-
-startsetup
-com:definiereschrift:
-typ:val/val/:
-val:*Name::
-val:*Datei::
-stopsetup
-
-startsetup
-com:stellefarbeein:
-typ:val/:
-val:*Name:rgb:
-stopsetup
-
-startsetup
-com:stellefarbenein:
-typ:vars/:
-var:status:start,stop,global,lokal::
-var:konversion:ja,nein,immer::
-var:reduktion:ja,nein::
-var:rgb:ja,nein::
-var:cmyk:ja,nein::
-stopsetup
-
-startsetup
-com:definierefarbe:
-typ:val/vars/:
-val:*Name::
-var:r:*Text::
-var:g:*Text::
-var:b:*Text::
-var:c:*Text::
-var:m:*Text::
-var:y:*Text::
-var:k:*Text::
-var:s:*Text::
-stopsetup
-
-startsetup
-com:startfarbe:
-typ:val/stp/:
-val:*Name::
-val:*Text::
-stopsetup
-
-startsetup
-com:farbe:
-typ:val/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:graufarbe:
-typ:val/:
-val:*Text::
-stopsetup
-
-startsetup
-com:zeigefarbe:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:definierepalette:
-typ:val/vars/:
-val:*Name::
-var:*Name:*Name::
-stopsetup
-
-startsetup
-com:stellepaletteein:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:definierefarbengruppe:
-typ:val/val/vals/:
-val:*Name::
-val:rgb,cmyk,grau,s:rgb:
-val:trips/::
-stopsetup
-
-startsetup
-com:zeigepalette:
-typ:val/vals/:
-val:*Name::
-val:horizontal,vertikal,name,wert::
-stopsetup
-
-startsetup
-com:zeigefarbengruppe:
-typ:val/vals/:
-val:*Name::
-val:horizontal,vertikal,name,wert,nummer::
-stopsetup
-
-startsetup
-com:vergleichepalette:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:vergleichefarbengruppe:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:zeigeumbruch:
-typ::
-stopsetup
-
-startsetup
-com:stelletipein:
-typ:var/:
-var:spatium:an,aus::
-var:option:geneigt,normal,kein::
-var:farbe:*Name::
-stopsetup
-
-startsetup
-com:tippen:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:tip:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:tex:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:arg:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:definieretippen:
-typ:val/vars/:
-val:datei,tippen,*Name::
-ivr:stelletippenein::
-stopsetup
-
-startsetup
-com:stelletippenein:
-typ:val/vars/:
-val:datei,tippen,*Name::
-var:spatium:an,aus::
-var:seite:ja,nein::
-var:option:geneigt,normal,befehle,farbe,kein::
-var:text:ja,nein::
-var:ibefehl:*Befehl::
-var:vbefehl:*Befehl::
-var:cbefehl:*Befehl::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:marginalie:*Dimension,standard::
-var:geraderand:*Dimension::
-var:ungeraderand:*Dimension::
-var:blanko:*Dimension,klein,mittel,gross,standard,halbezeile,zeile::
-var:escape:*::
-var:ziehefolgendeein:ja,nein::
-var:palette:*Name::
-var:farbe:*Name::
-stopsetup
-
-startsetup
-com:starttippen:
-typ:stp/:
-stopsetup
-
-startsetup
-com:tippedatei:
-typ:arg/:
-val:*Datei::
-stopsetup
-
-startsetup
-com:stellefussnotenein:
-typ:vars/:
-var:konversion:ziffern,buchstaben,Buchstaben,roemischezahlen,Roemischezahlen::
-var:art:protext,pro*Abschnitt::
-var:platz:seite,text,spalten,hoch::
-var:linie:an,aus::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:breite:*Dimension::
-var:hoehe:*Dimension::
-var:fliesstext:5pt,...,12pt,klein,gross::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:abstand:*Dimension::
-var:spaltenabstand:*Dimension::
-var:marginalabstand:*Dimension::
-var:n:*Nummer::
-var:nummerbefehl:*\Befehl#1::
-ivr:umrahmt::
-stopsetup
-
-startsetup
-com:stellefussnotendefinitionein:
-typ:vars/:
-ivr:definierebeschreibung::
-stopsetup
-
-startsetup
-com:fussnote:
-typ:ref/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:notiz:
-typ:ref/:
-stopsetup
-
-startsetup
-com:startlokalefussnoten:
-typ:stp/:
-ivr:stellefussnotenein::
-stopsetup
-
-startsetup
-com:platzierelokalefussnoten:
-typ:vars/:
-ivr:stellefussnotenein::
-stopsetup
-
-startsetup
-com:platzierefussnoten:
-typ:vars/:
-ivr:stellefussnotenein::
-stopsetup
-
-startsetup
-com:stelleunterstreichenein:
-typ:vars/:
-var:alternative:a,b,c::
-var:liniendicke:*Dimension::
-stopsetup
-
-startsetup
-com:unterstrichen:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:unterstreichen:
-typ:wrds/:
-val:*Text::
-stopsetup
-
-startsetup
-com:ueberstrichen:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:ueberstreichen:
-typ:wrds/:
-val:*Text::
-stopsetup
-
-startsetup
-com:durchgestrichen:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:durchstreichen:
-typ:wrds/:
-val:*Text::
-stopsetup
-
-startsetup
-com:roemischezahlen:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:Roemischezahlen:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:ziffern:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:buchstabe:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:Buchstabe:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:buchstaben:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:Buchstaben:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:mittelalterlich:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:monat:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:MONAT:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:wochentag:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:WOCHENTAG:
-typ:arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:stelleversalienein:
-typ:vars/:
-var:titel:ja,nein::
-var:sc:ja,nein::
-stopsetup
-
-startsetup
-com:kap:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:nokap:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:KAP:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:Kap:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:Kaps:
-typ:wrds/:
-val:*Text::
-stopsetup
-
-startsetup
-com:WORT:
-typ:wrd/:
-val:*Text::
-stopsetup
-
-startsetup
-com:WOERTER:
-typ:wrds/:
-val:*Text::
-stopsetup
-
-startsetup
-com:Wort:
-typ:wrd/:
-val:*Text::
-stopsetup
-
-startsetup
-com:Woerter:
-typ:wrds/:
-val:*Text::
-stopsetup
-
-startsetup
-com:gestreckt:
-typ:wrd/:
-val:*Text::
-stopsetup
-
-startsetup
-com:definieresymbol:
-typ:val/val/:
-val:*Name::
-val:*Text::
-stopsetup
-
-startsetup
-com:definiereabbsymbol:
-typ:val/val/vars/:
-val:*Name::
-val:*Text::
-ivr:externeabbildung::
-stopsetup
-
-startsetup
-com:symbol:
-typ:val/val/:
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:startsymbolset:
-typ:val/stp/:
-val:*Name::
-stopsetup
-
-startsetup
-com:stellesymbolsetein:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:verwendesymbole:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:showsymbolset:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:definierekonversion:
-typ:val/val/:
-val:*Name::
-val:*Befehl,*Text::
-stopsetup
-
-startsetup
-com:konvertierezahl:
-typ:arg/arg/:
-val:*Name::
-val:*Nummer::
-stopsetup
-
-startsetup
-com:stelleueberschrifttextein:
-typ:val/var/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-var:*Name:*Text::
-stopsetup
-
-startsetup
-com:stellelabeltextein:
-typ:val/var/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-var:*Name:*Text::
-stopsetup
-
-startsetup
-com:ueberschrifttext:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:labeltext:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:stellemarginallinieein:
-typ:var/:
-var:niveau:*Nummer::
-var:dicke:*Dimension::
-stopsetup
-
-startsetup
-com:startmarginallinie:
-typ:val/stp/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:marginallinie:
-typ:val/arg/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:stellelinienbreiteein:
-typ:val/:
-val:*Dimension::
-stopsetup
-
-startsetup
-com:stelleumrahmtein:
-typ:vars/:
-var:hoehe:passend,breit,*Dimension::
-var:breite:passend,breit,*Dimension::
-var:offset:kein,overlay,*Dimension::
-var:platz:tief,tiefe::
-var:option:kein,leer::
-var:strut:ja,nein::
-var:ausrichtung:nein,links,rechts,mittig,normal::
-var:unten:*Befehl::
-var:oben:*Befehl::
-var:rahmen:an,aus,overlay::
-var:obenrahmen:an,aus::
-var:untenrahmen:an,aus::
-var:linkerrahmen:an,aus::
-var:rechterrahmen:an,aus::
-var:rahmenoffset:*Dimension::
-var:rahmentiefe:*Dimension::
-var:rahmenwinkel:rund,rechteckig::
-var:rahmenradius:*Dimension::
-var:rahmenfarbe:*Name::
-var:hintergrund:raster,farbe,kein,vordergrund,*Name::
-var:hintergrundraster:*Nummer::
-var:hintergrundfarbe:*Name::
-var:hintergrundoffset:*Dimension::
-var:hintergrundtiefe:*Dimension::
-var:hintergrundwinkel:rund,rechteckig::
-var:hintergrundradius:*Dimension::
-var:tiefe:*Dimension::
-var:winkel:rund,rechteckig::
-var:radius:*Dimension::
-var:leer:ja,nein::
-val:*Text::
-stopsetup
-
-startsetup
-com:umrahmt:
-typ:vars/arg/:
-ivr:stelleumrahmtein::
-val:*Text::
-stopsetup
-
-startsetup
-com:imumriss:
-typ:vars/arg/:
-ivr:stelleumrahmtein::
-val:*Text::
-stopsetup
-
-startsetup
-com:duennerumriss:
-typ:var/:
-ivr:stelleduennerumrissein::
-stopsetup
-
-startsetup
-com:stelleduennerumrissein:
-typ:var/:
-var:abstand:klein,mittel,gross::
-var:n:*Nummer::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:hoehe:*Dimension::
-var:tiefe:*Dimension::
-stopsetup
-
-startsetup
-com:haarlinie:
-typ::
-stopsetup
-
-startsetup
-com:duennelinie:
-typ::
-stopsetup
-
-startsetup
-com:definiereumrahmtertext:
-typ:val/vars/:
-val:*Name::
-ivr:stelleumrahmtetexteein::
-stopsetup
-
-startsetup
-com:definiereumrahmt:
-typ:val/vars/:
-val:*Name::
-ivr:stelleumrahmtetexteein::
-stopsetup
-
-startsetup
-com:stelleumrahmtetexteein:
-typ:vars/:
-var:fliesstext:5pt,...,12pt,klein,gross::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,klein...,*Befehl::
-var:links:*Befehl::
-var:rechts:*Befehl::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:innen:*Befehl::
-var:marginalie:standard,ja,nein::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:start<<umrahmtertext>>:
-typ:val/vars/stp/:
-val:links,rechts,mittig::
-ivr:stelleumrahmtetexteein::
-stopsetup
-
-startsetup
-com:<<umrahmtertext>>:
-typ:vars/:
-ivr:stelleumrahmtetexteein::
-stopsetup
-
-startsetup
-com:starthintergrund:
-typ:stp/:
-stopsetup
-
-startsetup
-com:hintergrund:
-typ::
-stopsetup
-
-startsetup
-com:stellehintergrundein:
-typ:vars/:
-var:linkeroffset:*Dimension::
-var:rechterabstand:*Dimension::
-var:obenoffset:*Dimension::
-var:untenoffset:*Dimension::
-var:status:start,stop::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:gefuelltesrechteck:
-typ:vars/arg/arg/:
-ivr:stellegefuelltesrechteckein::
-stopsetup
-
-startsetup
-com:ausfuelltext:
-typ:vars/arg/arg/par/:
-ivr:stellegefuelltesrechteckein::
-stopsetup
-
-startsetup
-com:stellegefuelltesrechteckein:
-typ:vars/:
-var:breite:passend,*Dimension::
-var:abstand:*Dimension::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:n:*Nummer::
-var:seperator:*Text::
-stopsetup
-
-startsetup
-com:gefuelltezeile:
-typ:vars/nop/par/:
-ivr:stellegefuelltezeileein::
-stopsetup
-
-startsetup
-com:stellegefuelltezeileein:
-typ:vars/:
-var:breite:*Dimension::
-var:marginalie:*Dimension::
-var:abstand:*Dimension::
-var:vor:*Befehl::
-var:nach:*Befehl::
-stopsetup
-
-startsetup
-com:stelletextumrissein:
-typ:vars/:
-var:platz:links,imrand::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:zwischen:*Befehl::
-var:breite:*Dimension::
-var:abstand:*Dimension::
-var:fliesstext:5pt,...,12pt,klein,gross::
-var:farbe:*Name::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:linienfarbe:*Name::
-stopsetup
-
-startsetup
-com:textlinie:
-typ:val/arg/:
-val:oben,unten::
-val:*Text::
-stopsetup
-
-startsetup
-com:starttextlinie:
-typ:val/arg/stp/:
-val:oben,unten::
-val:*Text::
-stopsetup
-
-startsetup
-com:rechteck:
-typ:vars/:
-ivr:stellerechteckein::
-stopsetup
-
-startsetup
-com:rechtecke:
-typ:vars/:
-ivr:stellerechteckein::
-stopsetup
-
-startsetup
-com:stellerechteckein:
-typ:vars/:
-var:breite:*Dimension,max::
-var:hoehe:*Dimension,max::
-var:tiefe:*Dimension,max::
-var:alternative:a,b::
-var:abstand:*Dimension::
-var:n:*Nummer::
-stopsetup
-
-startsetup
-com:definiereoverlay:
-typ:vals/val/:
-val:*Name::
-val:*Befehl::
-stopsetup
-
-startsetup
-com:verwendemodul:
-typ:vals/:
-val:*Name::
-stopsetup
-
-startsetup
-com:ruecksetzten:
-typ:vals/:
-val:*Name::
-stopsetup
-
-startsetup
-com:keintest:
-typ::
-stopsetup
-
-startsetup
-com:startlokaleumgebung:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stellesystemein:
-typ:vars/:
-var:aufloesung:*Nummer::
-var:zufaellig:normal,klein,mittel,gross,*Nummer::
-stopsetup
-
-startsetup
-com:benutzepfad:
-typ:vals/:
-val:*Name,zuruecksetzten:.:
-stopsetup
-
-startsetup
-com:tief:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:hoch:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:hoti:
-typ:arg/arg/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:zeigerahmen:
-typ:val/:
-val:text,marginalie,kante::
-stopsetup
-
-startsetup
-com:zeigeaufbau:
-typ::
-stopsetup
-
-startsetup
-com:linksbuendig:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:rechtsbuendig:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:zentriert:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:wortrechts:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:inmarginalie:
-typ:val/ref/arg/:
-val:+,-,tief::
-val:*Text::
-stopsetup
-
-startsetup
-com:inanderermarginale:
-typ:val/ref/arg/:
-val:+,-,tief::
-val:*Text::
-stopsetup
-
-startsetup
-com:imlinken:
-typ:val/ref/arg/:
-val:+,-,tief::
-val:*Text::
-stopsetup
-
-startsetup
-com:imrechten:
-typ:val/ref/arg/:
-val:+,-,tief::
-val:*Text::
-stopsetup
-
-startsetup
-com:spalte:
-typ::
-stopsetup
-
-startsetup
-com:zeigestruts:
-typ::
-stopsetup
-
-startsetup
-com:zeigeeinstellungen:
-typ::
-stopsetup
-
-startsetup
-com:zeigelayout:
-typ::
-stopsetup
-
-startsetup
-com:marginaltext:
-typ:val/ref/arg/:
-val:+,-,tief::
-val:*Text::
-stopsetup
-
-startsetup
-com:stellemarginalblockein:
-typ:vars/:
-var:platz:imrand,links,mittig,rechts::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:breite:*Dimension::
-var:ausrichtung:links,mittig,rechts,nein::
-var:oben:*Befehl::
-var:zwischen:*Befehl::
-var:unten:*Befehl::
-var:links:*Befehl::
-var:rechts:*Befehl::
-var:vor:*Befehl::
-var:nach:*Befehl::
-stopsetup
-
-startsetup
-com:startmarginalblock:
-typ:stp/:
-stopsetup
-
-startsetup
-com:teil:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:titel:
-typ:refs/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:kapitel:
-typ:refs/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:absatz:
-typ:refs/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:unterabsatz:
-typ:refs/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:unterunterabsatz:
-typ:refs/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:thema:
-typ:refs/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:unterthema:
-typ:refs/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:unterunterthema:
-typ:refs/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:anhang:
-typ:refs/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:in:
-typ:arg/arg/ref/:
-val:*Text::
-stopsetup
-
-startsetup
-com:bei:
-typ:arg/arg/ref/:
-val:*Text::
-stopsetup
-
-startsetup
-com:euber:
-typ:arg/ref/:
-val:*Text::
-stopsetup
-
-startsetup
-com:irgendwo:
-typ:arg/arg/ref/:
-val:*Text::
-stopsetup
-
-startsetup
-com:aufseite:
-typ:ref/:
-stopsetup
-
-startsetup
-com:ref:
-typ:val/ref/:
-val:t,p,r,s,e::
-val:*Text::
-stopsetup
-
-startsetup
-com:textreferenz:
-typ:ref/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:seitenreferenz:
-typ:ref/:
-stopsetup
-
-startsetup
-com:referenz:
-typ:ref/arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:verwendereferenzen:
-typ:vals/:
-val:*Datei::
-stopsetup
-
-startsetup
-com:definierereferenz:
-typ:val/refs/:
-val:*Name::
-stopsetup
-
-startsetup
-com:hl:
-typ:val/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:vl:
-typ:val/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:nachunten:
-typ:val/:
-val:*Dimension::
-stopsetup
-
-startsetup
-com:zwischenraum:
-typ::
-stopsetup
-
-startsetup
-com:keinzwischenraum:
-typ::
-stopsetup
-
-startsetup
-com:crlf:
-typ::
-stopsetup
-
-startsetup
-com:spatium:
-typ::
-stopsetup
-
-startsetup
-com:festesspatium:
-typ::
-stopsetup
-
-startsetup
-com:keinspatium:
-typ::
-stopsetup
-
-startsetup
-com:kleinerdurchschuss:
-typ::
-stopsetup
-
-startsetup
-com:wiederholen:
-typ:val/:
-val:repeat/*Text::
-stopsetup
-
-startsetup
-com:definierebeschreibungen:
-typ:vals/vars/:
-val:*Name::
-var:kopfstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:farbe:*Name::
-var:breite:passend,breit,*Dimension::
-var:abstand:*Dimension::
-var:muster:*Text::
-var:text:*Text::
-var:ausrichtung:links,mittig,rechts::
-var:marginalie:standard,ja,nein,*Dimension::
-var:platz:links,rechts,oben,kleinerabstand, imrand,imlinken,imrechten,haengend::
-var:haengend:passend,breit,*Nummer::
-var:vor:*Befehl::
-var:zwischen:*Befehl::
-var:nach:*Befehl::
-var:ziehefolgendeein:ja,nein::
-stopsetup
-
-startsetup
-com:stellebeschreibungein:
-typ:vals/vars/:
-val:*Name::
-ivr:definierebeschreibung::
-var:platz:links,rechts,oben,kleinerabstand, imrand,imlinken,imrechten,haengend::
-var:text:*Text::
-var:niveaus:*Nummer::
-var:konversion:ziffern,buchstaben,Buchstaben,roemischezahlen,Roemischezahlen::
-var:art:protext,pro*Abschnitt::
-var:blockauf:ja,nein::
-var:abschnittsnummer:ja,nein::
-var:seperator:*Text::
-var:abschnitttrenner:*Text::
-var:verknuepfung:*Name::
-var:verkopplungsart:global,lokal::
-var:nummer:nein,*Name::
-var:titelausrichten:nein,ja::
-stopsetup
-
-startsetup
-com:definierenummerierung:
-typ:vals/val/vars/:
-val:*Name::
-val:*Name::
-ivr:stellebeschreibungein::
-stopsetup
-
-startsetup
-com:<<nummerierung>>:
-typ:nop/par/:
-val:*Text::
-stopsetup
-
-startsetup
-com:start<<nummerierung>>:
-typ:stp/:
-stopsetup
-
-startsetup
-com:definierebeschreibung:
-typ:val/vars/:
-val:*Name::
-ivr:definierebeschreibungen::
-stopsetup
-
-startsetup
-com:<<beschreibung>>:
-typ:arg/nop/par/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:start<<beschreibung>>:
-typ:arg/stp/:
-val:*Text::
-stopsetup
-
-startsetup
-com:stelleeinzuegein:
-typ:vals/vars/:
-val:*Name::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:kopfstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:breite:passend,*Dimension::
-var:text:*Text::
-var:muster:*Text::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:seperator:*Text::
-stopsetup
-
-startsetup
-com:definiereeinzug:
-typ:val/vars/:
-val:*Name::
-ivr:stelleeinzuegein::
-stopsetup
-
-startsetup
-com:<<einzug>>:
-typ:nop/par/:
-val:*Text::
-stopsetup
-
-startsetup
-com:definierelabel:
-typ:val/vars/:
-val:*Name::
-var:text:*Text::
-var:platz:imrand,imtext::
-var:art:protext,pro*Abschnitt::
-var:blockauf:ja,nein::
-var:kopfstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:kopffarbe:*Name::
-var:vor:*Befehl::
-var:nach:*Befehl::
-stopsetup
-
-startsetup
-com:<<beschriften>>:
-typ::
-stopsetup
-
-startsetup
-com:stellespaltenein:
-typ:vars/:
-var:n:*Nummer::
-var:linie:an,aus::
-var:hoehe:*Dimension::
-var:toleranz:sehrstreng,streng,tolerant,sehrtolerant,strecken::
-var:abstand:*Dimension::
-var:ausgleichen:ja,nein::
-var:ausrichtung:ja,nein,text::
-var:blanko:fest,halbezeile,zeile,flexibel,gross,mittel,klein::
-var:option:hintergrund::
-var:richtung:links,rechts::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:startspalten:
-typ:vars/stp/:
-ivr:stellespaltenein::
-stopsetup
-
-startsetup
-com:definieretext:
-typ:val/val/val/val/val/:
-val:*Name::
-val:kopfzeile,fusszeile::
-val:*Text::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:stellekopfzeileein:
-typ:val/vars/:
-val:text,marginalie,kante:text:
-var:status:normal,stop,start,leer,hoch,kein, keinebeschriftung,*Name::
-var:strut:ja,nein::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:linkerstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:rechterstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:linkerbreite:*Dimension::
-var:rechterbreite:*Dimension::
-var:vor:*Befehl::
-var:nach:*Befehl::
-stopsetup
-
-startsetup
-com:stellefusszeileein:
-typ:val/vars/:
-ivl:stellekopfzeileein::
-ivr:stellekopfzeileein::
-stopsetup
-
-startsetup
-com:stelletextein:
-typ:val/vars/:
-ivl:stellekopfzeileein::
-ivr:stellekopfzeileein::
-stopsetup
-
-startsetup
-com:stellenobenein:
-typ:val/vars/:
-ivl:stellekopfzeileein::
-ivr:stellekopfzeileein::
-stopsetup
-
-startsetup
-com:stelleuntenein:
-typ:val/vars/:
-ivl:stellekopfzeileein::
-ivr:stellekopfzeileein::
-stopsetup
-
-startsetup
-com:keinekopfundfusszeilen:
-typ::
-stopsetup
-
-startsetup
-com:keinzeilenobenundunten:
-typ::
-stopsetup
-
-startsetup
-com:stellekopfzeilentextein:
-typ:val/val/val/:
-val:text,marginalie,kante:text:
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-stopsetup
-
-startsetup
-com:stellefusszeilentextein:
-typ:val/val/val/:
-val:text,marginalie,kante:text:
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-stopsetup
-
-startsetup
-com:stelletexttexteein:
-typ:val/val/val/:
-val:text,marginalie,kante:text:
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-stopsetup
-
-startsetup
-com:stelletextobenein:
-typ:val/val/val/:
-val:text,marginalie,kante:text:
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-stopsetup
-
-startsetup
-com:stelletextuntenein:
-typ:val/val/val/:
-val:text,marginalie,kante:text:
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-val:*Text,*Abschnitt,datum,*Beschriftung,seitennummer::
-stopsetup
-
-startsetup
-com:definierebeschriftung:
-typ:val/val/:
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:verknuepfebeschriftung:
-typ:val/val/:
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:entknuepfebeschriftung:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:ruecksetztenbeschriftung:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:stellebeschriftungein:
-typ:val/var/:
-val:*Name::
-var:status:start,stop::
-var:seperator:*Befehl::
-var:expansion:ja,nein::
-stopsetup
-
-startsetup
-com:beschriftung:
-typ:val/arg/:
-val:*Name::
-val:*Text::
-stopsetup
-
-startsetup
-com:holebeschriftung:
-typ:val/val/:
-val:*Name::
-val:erste,letzte,vorig,beide,alles::
-stopsetup
-
-startsetup
-com:keinebeschriftung:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:stellelayoutein:
-typ:vars/:
-var:breite:*Dimension,passend,mittig::
-var:hoehe:*Dimension,passend,mittig::
-var:rumpfspatium:*Dimension::
-var:kopfspatium:*Dimension::
-var:marginalie:*Dimension::
-var:linkerrand:*Dimension::
-var:rechterrand:*Dimension::
-var:kopfzeile:*Dimension::
-var:fusszeile:*Dimension::
-var:oben:*Dimension::
-var:unten:*Dimension::
-var:linkekante:*Dimension::
-var:rechtekante:*Dimension::
-var:kopfzeilenabstand:*Dimension::
-var:fusszeilenabstand:*Dimension::
-var:obenabstand:*Dimension::
-var:abstandunten:*Dimension::
-var:linkerrandabstand:*Dimension::
-var:rechterrandabstand:*Dimension::
-var:linkerkantenabstand:*Dimension::
-var:rechterkantenabstand:*Dimension::
-var:rumpfabstand:*Dimension::
-var:kopfoffset:*Dimension::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:beschriftung:an,aus,farbe::
-var:platz:links,mittig,rechts,unten,oben, einzelseitig,doppelseitig::
-var:format:*Dimension::
-var:nx:*Nummer::
-var:ny:*Nummer::
-var:dx:*Dimension::
-var:dy:*Dimension::
-var:zeilen:*Nummer::
-var:gritter:ja,nein::
-stopsetup
-
-startsetup
-com:passelayoutan:
-typ:vals/vars/:
-val:*Nummer::
-var:hoehe:*Dimension,max::
-var:zeilen:*Nummer::
-stopsetup
-
-startsetup
-com:zeigegitter:
-typ::
-stopsetup
-
-startsetup
-com:amgitterausrichten:
-typ:val/arg/:
-ivl:amgitterneuausrichten::
-stopsetup
-
-startsetup
-com:amgitterneuausrichten:
-typ:val/:
-val:oben,beide,unten:beide:
-stopsetup
-
-startsetup
-com:startprojekt:
-typ:fil/stp/:
-val:*Datei::
-stopsetup
-
-startsetup
-com:startumgebung:
-typ:fil/stp/:
-val:*Datei::
-stopsetup
-
-startsetup
-com:startprodukt:
-typ:fil/stp/:
-val:*Datei::
-stopsetup
-
-startsetup
-com:startkomponente:
-typ:fil/stp/:
-val:*Datei::
-stopsetup
-
-startsetup
-com:keinedateienmehr:
-typ::
-stopsetup
-
-startsetup
-com:stellezeilenabstandein:
-typ:val/vars/:
-val:zuruecksetzten,klein,mittel,gross,an,aus:klein:
-var:hoehe:*Nummer::
-var:tiefe:*Nummer::
-var:zeile:*Dimension::
-var:oben:*Nummer::
-var:unten:*Nummer::
-stopsetup
-
-startsetup
-com:stelleseitennummeriernungein:
-typ:vars/:
-var:alternative:einzelseitig,doppelseitig::
-var:platz:kopfzeile,fusszeile, links,rechts,mittig, marginalie,marginalkante,imlinken,imrechten::
-var:konversion:ziffern,buchstaben,Buchstaben,roemischezahlen,Roemischezahlen::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:links:*Text::
-var:rechts:*Text::
-var:art:protext,pro*Abschnitt::
-var:text:*Text::
-var:nummernseperator:*Text::
-var:textseparator:*Text::
-var:*Abschnittnummer:ja,nein::
-var:seperator:*Text::
-var:status:start,stop::
-var:befehl:*\Befehl#1::
-stopsetup
-
-startsetup
-com:stelleengerein:
-typ:vars/:
-var:links:*Dimension::
-var:rechts:*Dimension::
-var:mittig:*Dimension::
-stopsetup
-
-startsetup
-com:definieren:
-typ:val/cmd/arg/:
-val:*Nummer:0:
-stopsetup
-
-startsetup
-com:verwendebefehl:
-typ:arg/:
-stopsetup
-
-startsetup
-com:definierestartstop:
-typ:val/vars/:
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:befehle:*Befehl::
-stopsetup
-
-startsetup
-com:stelleueberschriftenein:
-typ:vars/:
-var:abschnittsnummer:ja,nein::
-var:alternative:normal,imrand,mittig,text::
-var:seperator:*Text::
-var:befehl:*\Befehl#1#2::
-stopsetup
-
-startsetup
-com:stellebilderunterschriftein:
-typ:vars/:
-var:platz:oben,unten,kein,hoch,tief,mittig::
-var:breite:passend,max,*Dimension::
-var:kopfstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:nummer:ja,nein::
-var:zwischen:*Befehl::
-var:ausrichtung:links,mittig,rechts,nein::
-var:konversion:ziffern,buchstaben,Buchstaben,roemischezahlen,Roemischezahlen::
-var:art:protext,pro*Abschnitt::
-stopsetup
-
-startsetup
-com:stellebildunterschriftein:
-typ:val/vars/:
-ivr:stellebilderunterschriftein::
-stopsetup
-
-startsetup
-com:stellegleitobjekteein:
-typ:vars/:
-var:platz:links,rechts,mittig::
-var:breite:passend,*Dimension::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:marginalie:*Dimension::
-var:vorspatium:repeat/klein,repeat/mittel,repeat/gross,kein::
-var:nachspatium:repeat/klein,repeat/mittel,repeat/gross,kein::
-var:nebenvorspatium:repeat/klein,repeat/mittel,repeat/gross,kein::
-var:nebennachspatium:repeat/klein,repeat/mittel,repeat/gross,kein::
-var:noben:*Nummer::
-var:nunten:*Nummer::
-var:zzeile:*Nummer::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:stelleplatziegeteiltegleitobjekteein:
-typ:vars/:
-var:konversion:ziffern,buchstaben,Buchstaben,roemischezahlen,Roemischezahlen::
-var:zeilen:*Nummer::
-stopsetup
-
-startsetup
-com:teilegleitobjekt:
-typ:vars/arg/arg/:
-ivr:stelleplatziegeteiltegleitobjekteein::
-stopsetup
-
-startsetup
-com:stellegegenueberplatzierenein:
-typ:var/:
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:startgegenueber:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stellebindestrichein:
-typ:var/:
-var:zeichen:--,---,-,\normalpenalty 10000\ ,),(,=,/::
-stopsetup
-
-startsetup
-com:stellepositionierenein:
-typ:vars/:
-var:status:start,overlay::
-var:einheit:cm,pt,em,mm,ex,sp,in::
-var:faktor:*Nummer::
-var:format:*Nummer::
-var:offset:ja,nein::
-var:xschritt:absolut,relativ::
-var:yschritt:absolut,relativ::
-stopsetup
-
-startsetup
-com:startpositionieren:
-typ:stp/:
-stopsetup
-
-startsetup
-com:gitter:
-typ:vars/:
-var:x:*Nummer::
-var:y:*Nummer::
-var:nx:*Nummer::
-var:ny:*Nummer::
-var:dx:*Nummer::
-var:dy:*Nummer::
-var:xschritt:*Nummer::
-var:yschritt:*Nummer::
-var:offset:ja,nein::
-var:faktor:*Nummer::
-var:format:*Nummer::
-var:einheit:cm,pt,em,mm,ex,sp,in::
-var:platz:links,mittig::
-stopsetup
-
-startsetup
-com:seite:
-typ:vals/:
-val:ja,umbruch,nein,einstellung,grosszuegig, links,rechts,sperren,letzte,viertel, gerade,ungerade,blanko,leer,zuruecksetzten:ja:
-stopsetup
-
-startsetup
-com:stellereferenzierenein:
-typ:var/:
-var:status:start,stop::
-var:*Abschnittnummer:ja,nein::
-var:prefix:+,-,*Text::
-var:interaktion:label,text,alles,symbol::
-var:breite:*Dimension::
-var:links:*Befehl::
-var:rechts:*Befehl::
-var:konvertieredatei:ja,nein::
-stopsetup
-
-startsetup
-com:stelleurlein:
-typ:vars/:
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:urlalternative:kein,beide,vor,nach::
-var:urlspatium:ja,nein::
-stopsetup
-
-startsetup
-com:schreibezurreferenzliste:
-typ:val/arg/arg/:
-val:*Name::
-stopsetup
-
-startsetup
-com:platzierereferenzliste:
-typ:vals/:
-val:*Name::
-stopsetup
-
-startsetup
-com:definierereferenzliste:
-typ:val/vars/:
-val:*Name::
-ivr:stellereferenzlisteein::
-stopsetup
-
-startsetup
-com:stellereferenzlisteein:
-typ:vals/vars/:
-val:*Name::
-var:status:start,stop::
-var:kriterium:*Abschnitt,lokal,vorig,alles::
-var:befehl:*Befehl::
-var:vor:*Befehl::
-var:nach:*Befehl::
-stopsetup
-
-startsetup
-com:schreibezurliste:
-typ:val/arg/arg/:
-val:*Abschnitt,*Name::
-stopsetup
-
-startsetup
-com:schreibezwischenliste:
-typ:val/arg/:
-val:*Abschnitt,*Name::
-stopsetup
-
-startsetup
-com:keineliste:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:platziereliste:
-typ:vals/vars/:
-val:*Name::
-ivr:stellelisteein::
-stopsetup
-
-startsetup
-com:bestimmelistencharakeristika:
-typ:vals/vars/:
-val:*Name::
-ivr:stellelisteein::
-stopsetup
-
-startsetup
-com:definiereliste:
-typ:val/val/vars/:
-val:*Name::
-val:*Name::
-ivr:stellelisteein::
-stopsetup
-
-startsetup
-com:stellelisteein:
-typ:vals/vars/:
-val:*Name::
-var:status:start,stop::
-var:alternative:a,b,c,...,kein,befehl::
-var:verknuepfung:an,aus::
-var:kriterium:*Abschnitt,lokal,vorig,alles::
-var:seitenbegrenzung:*Liste::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:nummernstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:textstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:seitenstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:farbe:*Name::
-var:befehl:*\Befehl#1#2#3::
-var:nummerbefehl:*\Befehl#1::
-var:textbefehl:*\Befehl#1::
-var:seitenbefehl:*\Befehl#1::
-var:interaktion:abschnittsnummer,text,seitennummer,alles::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:zwischen:*Befehl::
-var:links:*Text::
-var:rechts:*Text::
-var:label:ja,nein::
-var:prefix:ja,nein::
-var:seitennummer:ja,nein::
-var:*Abschnittnummer:ja,nein::
-var:titelausrichten:ja,nein::
-var:marginalie:*Dimension::
-var:breite:*Dimension,passend::
-var:hoehe:*Dimension,passend,breit::
-var:tiefe:*Dimension,passend,breit::
-var:abstand:*Dimension::
-var:seperator:*Text::
-var:symbol:kein,1,2,3,...::
-var:expansion:ja,nein,befehl::
-var:maxbreite:*Dimension::
-ivr:umrahmt::
-stopsetup
-
-startsetup
-com:definierezusammengestellteliste:
-typ:val/vals/vars/:
-val:*Name::
-val:*Liste::
-ivr:stellezusammengestelltelisteein::
-stopsetup
-
-startsetup
-com:stellezusammengestelltelisteein:
-typ:val/vars/:
-val:*Name::
-var:niveau:1,2,3,4,*Abschnitt,aktuell::
-ivr:stellelisteein::
-stopsetup
-
-startsetup
-com:platziere<<kombiniereliste>>:
-typ:val/vars/:
-val:*Name::
-ivr:stellezusammengestelltelisteein::
-stopsetup
-
-startsetup
-com:vollende<<kombiniereliste>>:
-typ:val/vars/:
-val:*Name::
-ivr:stellezusammengestelltelisteein::
-stopsetup
-
-startsetup
-com:stellenummerierungein:
-typ:vars/:
-var:art:protext,pro*Abschnitt::
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:stelleformelnein:
-typ:vars/:
-var:platz:links,rechts::
-var:links:*Text::
-var:rechts:*Text::
-stopsetup
-
-startsetup
-com:publikation:
-typ:ref/:
-stopsetup
-
-startsetup
-com:stellepublikationein:
-typ:vars/:
-var:alternative:apa,normal::
-ivr:stellebeschreibungein::
-stopsetup
-
-startsetup
-com:stellezeilenein:
-typ:vars/:
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:zwischen:*Befehl::
-var:einziehen:ja,nein,gerade,ungerade::
-stopsetup
-
-startsetup
-com:startzeilen:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stellezeilennummerierungein:
-typ:vars/:
-var:konversion:ziffern,buchstaben,Buchstaben,roemischezahlen,Roemischezahlen, text::
-var:start:*Nummer::
-var:schritt:*Nummer::
-var:breite:*Dimension::
-var:platz:imtext,imrand::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:prefix:*Text::
-var:referieren:an,aus::
-stopsetup
-
-startsetup
-com:startzeilennummerierung:
-typ:val/stp/:
-val:fortsetzten::
-stopsetup
-
-startsetup
-com:startzeile:
-typ:ref/stp/:
-stopsetup
-
-startsetup
-com:einezeile:
-typ:ref/:
-stopsetup
-
-startsetup
-com:inzeile:
-typ:ref/:
-stopsetup
-
-startsetup
-com:stelleinmarginalieein:
-typ:val/vars/:
-val:links,rechts,*Nummer::
-var:platz:links,rechts,beide::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:ausrichtung:innen,aussen,links,rechts,mittig,normal,nein,ja::
-var:zeile:*Nummer::
-var:abstand:*Dimension::
-var:seperator:*Text::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:stelleseitennummerein:
-typ:vars/:
-var:nummer:*Nummer::
-var:status:start,stop,behalte::
-stopsetup
-
-startsetup
-com:stelleunterseitennummerein:
-typ:vars/:
-var:art:protext,pro*Abschnitt::
-var:status:start,stop,kein::
-stopsetup
-
-startsetup
-com:stelleblankoein:
-typ:val/:
-val:normal,standard,zeile,*Dimension, gross,mittel,klein, fest,flexibel:normal:
-stopsetup
-
-startsetup
-com:definiereblanko:
-typ:val/val/:
-val:*Name::
-ivl:stelleblankoein::
-stopsetup
-
-startsetup
-com:definierepapierformat:
-typ:val/vars/:
-val:*Name::
-var:breite:*Dimension::
-var:hoehe:*Dimension::
-var:offset:*Dimension::
-var:format:*Nummer::
-stopsetup
-
-startsetup
-com:stellepapierformatein:
-typ:vals/vals/:
-val:A3,A4,A5,A6,letter,...,CD,*Name, querformat,gespiegelt,gedreht,90,180,270:A4:
-val:A3,A4,A5,A6,letter,...,*Name, querformat,gespiegelt,gedreht,negativ,90,180,270:A4:
-stopsetup
-
-startsetup
-com:stelleanordnenein:
-typ:vals/:
-val:sperren, 2*16,2*8,2*4,2*2,2UP,2DOWN, gespiegelt,gedreht,doppelseitig,negativ,90,180,270::
-stopsetup
-
-startsetup
-com:zeigedruck:
-typ:vals/vals/vars/:
-ivr:stellepapierformatein::
-ivr:stellepapierformatein::
-ivr:stellelayoutein::
-stopsetup
-
-startsetup
-com:definierelogo:
-typ:val/val/val/vars/:
-val:*Name::
-val:oben,kopfzeile,fusszeile,unten::
-val:kein,seite, linkekante,linkerrand, links,mittig,rechts, rechterrand,rechterkante::
-var:befehl:*Befehl,*Text::
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:platzierelogo:
-typ:vals/:
-val:*Name::
-stopsetup
-
-startsetup
-com:stellezwischenraumein:
-typ:val/:
-val:kein,klein,mittel,gross,zeile,fest,stellewiederher,*Dimension:kein:
-stopsetup
-
-startsetup
-com:stelleeinziehenein:
-typ:vals/:
-val:kein,klein,mittel,gross,folgende,erste,*Dimension:kein:
-stopsetup
-
-startsetup
-com:definiereabschnittsblock:
-typ:val/vars/:
-val:*Name::
-ivr:stelleabschnittsblockein::
-stopsetup
-
-startsetup
-com:stelleabschnittsblockein:
-typ:val/vars/:
-val:*Name::
-var:nummer:ja,nein::
-var:seite:ja,rechts::
-var:vor:*Befehl::
-var:nach:*Befehl::
-stopsetup
-
-startsetup
-com:definiereabschnitt:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:stelleabschnittein:
-typ:val/vars/:
-val:*Name::
-var:konversion:ziffern,buchstaben,Buchstaben,roemischezahlen,Roemischezahlen::
-var:vorigenummer:ja,nein::
-stopsetup
-
-startsetup
-com:stelleueberschriftein:
-typ:val/vars/:
-val:*Abschnitt::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:textstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:nummernstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:nummer:ja,nein::
-var:eigenenummer:ja,nein::
-var:seite:links,rechts,ja::
-var:fortsetzen:ja,nein::
-var:kopfzeile:kein,leer,hoch,keinebeschriftung::
-var:vor:*Befehl::
-var:zwischen:*Befehl::
-var:nach:*Befehl::
-var:alternative:normal,imrand,mittig,text::
-var:befehl:*\Befehl#1#2::
-var:nummerbefehl:*\Befehl#1::
-var:textbefehl:*\Befehl#1::
-var:prefix:+,-,*Text::
-var:setzekopf:ja,nein::
-var:nummererhoehen:ja,nein,*Datei::
-var:ausrichtung:links,rechts,normal,breit::
-var:toleranz:sehrstreng,streng,tolerant,sehrtolerant,strecken::
-var:ziehefolgendeein:ja,nein::
-var:datei:*Name::
-var:expansion:ja,befehl,nein::
-stopsetup
-
-startsetup
-com:stellekopfzahlein:
-typ:val/val/:
-val:*Abschnitt::
-val:*Nummer,+*Nummer,-*Nummer::
-stopsetup
-
-startsetup
-com:kopfnummer:
-typ:val/:
-val:*Abschnitt::
-stopsetup
-
-startsetup
-com:bestimmekopfnummer:
-typ:val/:
-val:*Abschnitt::
-stopsetup
-
-startsetup
-com:heutigeskopfnummer:
-typ::
-stopsetup
-
-startsetup
-com:folgende<<abschnitt>>:
-typ::
-stopsetup
-
-startsetup
-com:definiereueberschrift:
-typ:val/val/:
-val:*Name::
-val:*Abschnitt::
-stopsetup
-
-startsetup
-com:stelleaufzaehlungein:
-typ:val/vals/vars/:
-val:*Nummer,jede::
-val:standard,repeat/breit,repeat/kleinerabstand,gepackt, ungepackt,trenner,keinabstand,amrand,imrand, autointro,lose:standard:
-var:marginalie:nein,standard,*Dimension::
-var:breite:*Dimension::
-var:abstand:*Dimension::
-var:faktor:*Nummer::
-var:posten:*Nummer::
-var:vor:*Befehl::
-var:zwischen:*Befehl::
-var:nach:*Befehl::
-var:vorkopf:*Befehl::
-var:nachkopf:*Befehl::
-var:kopfstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:beschrstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:symstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:abschnitttrenner:*Text::
-var:n:*Nummer::
-var:symbol:*Nummer::
-var:ausrichtung:links,rechts,normal::
-var:ziehefolgendeein:ja,nein::
-stopsetup
-
-startsetup
-com:startaufzaehlung:
-typ:vals/vars/stp/:
-val:a,A,KA,n,N,m,r,R,KR,*Nummer,fortsetzten, standard,repeat/breit,repeat/kleinerabstand,gepackt, trenner,keinabstand,amrand,imrand,intro,spalten:standard:
-ivr:stelleaufzaehlungein::
-stopsetup
-
-startsetup
-com:pos:
-typ:refs/:
-stopsetup
-
-startsetup
-com:but:
-typ:ref/:
-stopsetup
-
-startsetup
-com:its:
-typ:refs/:
-stopsetup
-
-startsetup
-com:ran:
-typ:arg/:
-stopsetup
-
-startsetup
-com:kopf:
-typ:refs/:
-stopsetup
-
-startsetup
-com:mar:
-typ:refs/arg/:
-stopsetup
-
-startsetup
-com:unter:
-typ:refs/:
-stopsetup
-
-startsetup
-com:sym:
-typ:arg/:
-stopsetup
-
-startsetup
-com:nop:
-typ::
-stopsetup
-
-startsetup
-com:definiereregister:
-typ:val/val/:
-val:*singular::
-val:*plural::
-stopsetup
-
-startsetup
-com:stelleregisterein:
-typ:val/val/vars/:
-val:*singular::
-val:*Name::
-var:n:*Nummer::
-var:ausgleichen:ja,nein::
-var:ausrichtung:ja,nein::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:seitenstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:textstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:indikator:ja,nein::
-var:verknuepfung:ja,nein::
-var:*Abschnittnummer:ja,nein::
-var:kriterium:*Abschnitt,lokal,alles::
-var:abstand:*Dimension::
-var:symbol:1,2,...,n,a,...,kein::
-var:interaktion:seitennummer,text::
-var:expansion:ja,befehl,nein::
-var:referieren:an,aus::
-var:befehl:*\Befehl#1::
-var:platz:links,mittig,rechts::
-var:maxbreite:*Dimension::
-var:unbekantereferenz:leer,kein::
-stopsetup
-
-startsetup
-com:<<register>>:
-typ:val/idxs/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:start<<register>>:
-typ:val/idxs/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:schreibezumregister:
-typ:val/val/idxs/:
-val:*singular::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:verknuepft<<register>>:
-typ:val/idx/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:verknuepfregister:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:sieh<<register>>:
-typ:val/arg/idxs/:
-val:*Text::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:vollende<<register>>:
-typ:vars/:
-ivr:stelleregisterein::
-stopsetup
-
-startsetup
-com:platziere<<register>>:
-typ:vars/:
-ivr:stelleregisterein::
-stopsetup
-
-startsetup
-com:definieresynonyme:
-typ:val/val/val/val/:
-val:*singular::
-val:*plural::
-val:*Befehl::
-val:*Befehl::
-stopsetup
-
-startsetup
-com:stellesynonymein:
-typ:val/vars/:
-val:*Name::
-var:textstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:synonymstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:platz:links,rechts,oben,kleinerabstand, imrand,imlinken,imrechten::
-var:breite:*Dimension::
-var:status:start,stop::
-var:kriterium:alles,verwende::
-var:konversion:ja,nein::
-var:expansion:ja,befehl,nein::
-var:befehl:*\Befehl#1#2#3::
-stopsetup
-
-startsetup
-com:<<synonym>>:
-typ:val/arg/arg/:
-val:*Text::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:vollendeauflistenvon<<synonyme>>:
-typ::
-stopsetup
-
-startsetup
-com:platziereauflistenvon<<synonyme>>:
-typ::
-stopsetup
-
-startsetup
-com:laden<<synonyme>>:
-typ::
-stopsetup
-
-startsetup
-com:definieresortieren:
-typ:val/val/val/:
-val:*singular::
-val:*plural::
-val:*Befehl::
-stopsetup
-
-startsetup
-com:stellesortierenein:
-typ:val/vars/:
-val:*Name::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:befehl:*\Befehl#1::
-var:status:start,stop::
-var:kriterium:alles,verwende::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:expansion:ja,befehl,nein::
-stopsetup
-
-startsetup
-com:<<sortiere>>:
-typ:val/arg/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:vollendeauflistenvon<<sortieren>>:
-typ::
-stopsetup
-
-startsetup
-com:platziereauflistenvon<<sortieren>>:
-typ::
-stopsetup
-
-startsetup
-com:laden<<sortieren>>:
-typ::
-stopsetup
-
-startsetup
-com:definiereumbruch:
-typ:val/vars/:
-val:*Name::
-ivr:stelleumbruchein::
-stopsetup
-
-startsetup
-com:startumbruch:
-typ:val/vars/stp/:
-val:*Name::
-ivr:stelleumbruchein::
-stopsetup
-
-startsetup
-com:stelleumbruchein:
-typ:val/vars/:
-val:*Name::
-var:breite:*Dimension::
-var:hoehe:*Dimension::
-var:voffset:*Dimension::
-var:hoffset:*Dimension::
-var:seite:links,ja,rechts::
-var:befehle:*Befehl::
-var:doppelseitig:ja,nein,leer::
-var:kopfzeilenstatus:normal,stop,start,leer,kein,keinebeschriftung::
-var:fusszeilenstatus:normal,stop,start,leer,kein,keinebeschriftung::
-var:textstatus:normal,stop,start,leer,kein,keinebeschriftung::
-var:statusoben:stop,start::
-var:untenstatus:stop,start::
-stopsetup
-
-startsetup
-com:start<<name>>umbruch:
-typ:stp/:
-stopsetup
-
-startsetup
-com:version:
-typ:val/:
-val:endfassung,konzept,temporaer:endfassung:
-stopsetup
-
-startsetup
-com:heutigesdatum:
-typ:vals/:
-val:tag,monat,MONAT,wochentag,WOCHENTAG,jahr, dd,mm,jj,yy,d,m,j,y,merkmal:tag,monat,jahr:
-stopsetup
-
-startsetup
-com:datum:
-typ:vars/vals/:
-var:d:*Nummer::
-var:m:*Nummer::
-var:y:*Nummer::
-ivl:heutigesdatum::
-stopsetup
-
-startsetup
-com:verweisdatum:
-typ::
-stopsetup
-
-startsetup
-com:einziehen:
-typ:vals/:
-val:nie,nicht,nein,ja,immer,erste,folgende:nie:
-stopsetup
-
-startsetup
-com:nichteinziehen:
-typ::
-stopsetup
-
-startsetup
-com:blanko:
-typ:vals/:
-val:repeat/klein,repeat/mittel,repeat/gross, keinweiss,zurueck,weiss,sperren,zwinge,zuruecksetzten, zeile,halbezeile,formel,fest,flexibel:gross:
-stopsetup
-
-startsetup
-com:startkleinerdurchschuss:
-typ:val/stp/:
-val:blanko::
-stopsetup
-
-startsetup
-com:startgrosserdurchschuss:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startzeilenkorrektur:
-typ:stp/:
-stopsetup
-
-startsetup
-com:korrigierezwischenraum:
-typ:arg/:
-stopsetup
-
-startsetup
-com:startverschieben:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startlokal:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startenger:
-typ:vals/stp/:
-val:repeat/links,repeat/mittig,repeat/rechts:mittig:
-stopsetup
-
-startsetup
-com:startverbergen:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stelleausrichtungein:
-typ:val/:
-val:breite,links,rechts,mittig,innen,aussen, breit,breit,hoehe,unten,zeile,zuruecksetzten::
-stopsetup
-
-startsetup
-com:startausrichtung:
-typ:stp/val/:
-ivr:stelleausrichtungein::
-stopsetup
-
-startsetup
-com:stellespatiumein:
-typ:val/:
-val:breit,gepackt::
-stopsetup
-
-startsetup
-com:stelletoleranzein:
-typ:vals/:
-val:horizontal,vertikal, strecken,sehrstreng,streng,tolerant,sehrtolerant:sehrstreng:
-stopsetup
-
-startsetup
-com:seitentyp:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:bearbeiteseite:
-typ:vals/val/:
-val:*Name::
-val:ja,nein:ja:
-stopsetup
-
-startsetup
-com:doppelseite:
-typ:vals/vars/:
-val:*Name::
-var:option:doppelseitig::
-var:vor:*Befehl::
-var:nach:*Befehl::
-stopsetup
-
-startsetup
-com:position:
-typ:poss/arg/:
-val:*Nummer::
-val:*Nummer::
-val:*Text::
-stopsetup
-
-startsetup
-com:stellerasterein:
-typ:vars/:
-var:methode:punkt,linie,extern::
-var:aufloesung:*Nummer::
-var:faktor:*Nummer::
-var:raster:*Nummer::
-stopsetup
-
-startsetup
-com:stellehintergruendeein:
-typ:val/vals/vars/:
-val:oben,kopfzeile,text,fusszeile,unten, seite,linkerseite,rechterseite::
-val:linkekante,linkerrand,text,rechterrand,rechterkante::
-var:status:start,stop,wiederholen::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:startpuffer:
-typ:val/stp/:
-val:*Name::
-stopsetup
-
-startsetup
-com:holepuffer:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:tippepuffer:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:definierepuffer:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:stellepufferein:
-typ:val/vars/:
-val:*Name::
-var:vor:*Befehl::
-var:nach:*Befehl::
-stopsetup
-
-startsetup
-com:definiereblock:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:keinebloeckemehr:
-typ::
-stopsetup
-
-startsetup
-com:verbergebloecke:
-typ:vals/vals/:
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:behaltebloecke:
-typ:vals/vals/:
-val:*Name::
-val:alles,*Name::
-stopsetup
-
-startsetup
-com:verwendebloecke:
-typ:vals/vals/:
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:bearbeitebloecke:
-typ:vals/vals/:
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:waehlebloeckeaus:
-typ:vals/vals/var/:
-val:*Name::
-val:*Name::
-var:kriterium:alles,*Abschnitt::
-stopsetup
-
-startsetup
-com:stelleblockein:
-typ:vals/vars/:
-val:*Name::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:innen:*Befehl::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:datei:*Datei::
-stopsetup
-
-startsetup
-com:startformel:
-typ:stp/:
-val:*Formel::
-stopsetup
-
-startsetup
-com:mathematik:
-typ:arg/:
-val:*Formel::
-stopsetup
-
-startsetup
-com:platziereformel:
-typ:refs/arg/dis/:
-val:*Text::
-val:*Formel::
-stopsetup
-
-startsetup
-com:platziereunterformel:
-typ:refs/arg/dis/:
-val:*Text::
-val:*Formel::
-stopsetup
-
-startsetup
-com:platziere<<block>>:
-typ:val/refs/arg/arg/:
-val:links,rechts,hier,oben,unten, imlinken,imrechten,imrand,marginalie, seite,gegenueber,immer,zwinge,lang:hier:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:reservieren<<block>>:
-typ:vars/val/refs/arg/:
-var:hoehe:*Dimension::
-var:breite:*Dimension::
-var:rahmen:an,aus::
-val:links,rechts,hier,oben,unten, imlinken,imrechten,imrand,marginalie, seite,gegenueber,immer,zwinge:hier:
-val:*Text::
-stopsetup
-
-startsetup
-com:definieregleitobjekt:
-typ:val/val/:
-val:*singular::
-val:*plural::
-stopsetup
-
-startsetup
-com:stellegleitobjektein:
-typ:val/vars/:
-val:*Name::
-var:hoehe:*Dimension::
-var:breite:*Dimension::
-var:seitenbegrenzung:*Liste::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:start<<block>>text:
-typ:val/ref/arg/arg/stp/:
-val:links,rechts,hoch,mittig,tief,offset,lang::
-val:*Text::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:platziereauflistenvon<<bloecke>>:
-typ::
-stopsetup
-
-startsetup
-com:vollendeauflistenvon<<bloecke>>:
-typ::
-stopsetup
-
-startsetup
-com:label:
-typ:val/arg/arg/arg/arg/arg/arg/:
-val:schmall,breit:breit:
-val:*Text::
-val:*Text::
-val:*Text::
-val:*Text::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:verweis:
-typ:vars/:
-var:bet:*Text::
-var:ken:*Text::
-var:dat:*Text::
-var:von:*Text::
-var:zu:*Text::
-var:ref:*Text::
-stopsetup
-
-startsetup
-com:waehlepapieraus:
-typ:vars/:
-var:familie:1,2::
-stopsetup
-
-startsetup
-com:doppelseitigespapier:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:chem:
-typ:arg/arg/arg/:
-val:*Text::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:bruch:
-typ:arg/arg/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:punkt:
-typ:val/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:wohnort:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:posten:
-typ:vars/args/:
-ivr:stellepostenein::
-stopsetup
-
-startsetup
-com:stellepostenein:
-typ:vars/:
-var:platz:links,rechts,imrand,oben,unten::
-var:symbol:1,2,...,n,a,...,*Text,kein::
-var:breite:*Dimension::
-var:n:*Nummer,unbekannt::
-var:vor:*Befehl::
-var:zwischen:*Befehl::
-var:ausrichtung:links,rechts,mittig,marginalie::
-var:nach:*Befehl::
-stopsetup
-
-startsetup
-com:startzitat:
-typ:vals/stp/:
-val:repeat/links,repeat/mittig,repeat/rechts:mittig:
-stopsetup
-
-startsetup
-com:zitat:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:zitieren:
-typ:arg/:
-val:*Text::
-stopsetup
-
-startsetup
-com:stellezitierenein:
-typ:vars/:
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-stopsetup
-
-startsetup
-com:zusatz:
-typ:val/:
-val:klein,mittel,gross:mittel:
-stopsetup
-
-startsetup
-com:definiereabsaetze:
-typ:val/vars/:
-val:*Name::
-var:n:*Nummer::
-var:linie:an,aus::
-var:hoehe:passend,*Dimension::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:innen:*Befehl::
-var:abstand:*Dimension::
-var:toleranz:sehrstreng,streng,tolerant,sehrtolerant,strecken::
-var:ausrichtung:links,rechts,mittig::
-stopsetup
-
-startsetup
-com:<<absaetze>>:
-typ::
-stopsetup
-
-startsetup
-com:start<<absaetze>>:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stelleabsaetzeein:
-typ:val/val/vars/:
-val:*Name::
-val:*Nummer,jede::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:breite:*Dimension::
-var:hoehe:*Dimension::
-var:ausrichtung:links,rechts,mittig,breite::
-var:toleranz:sehrstreng,streng,tolerant,sehrtolerant,strecken::
-var:abstand:*Dimension::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:innen:*Befehl::
-var:befehl:*Befehl::
-var:linie:an,aus::
-stopsetup
-
-startsetup
-com:stelletabein:
-typ:vars/:
-var:muster:*Text::
-var:breite:*Dimension::
-var:kopfstil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:platz:links,rechts::
-stopsetup
-
-startsetup
-com:tab:
-typ:arg/nop/par/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:startdokument:
-typ:val/stp/:
-val:*Name::
-stopsetup
-
-startsetup
-com:briefe:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:labels:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:stellekorrespondenzein:
-typ:vals/:
-val:formeel,informeel,rekening,ls, hoch,mittig,tief:formeel,tief:
-stopsetup
-
-startsetup
-com:stelleblattein:
-typ:vars/:
-var:alternative:*Nummer::
-var:text:*Text::
-var:groesse:klein,mittel,gross::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:nummer:*Nummer,keinabstand::
-stopsetup
-
-startsetup
-com:blatt:
-typ:val/:
-val:*Text::
-stopsetup
-
-startsetup
-com:stellestickerein:
-typ:vars/:
-var:alternative:a::
-var:n:*Nummer,alles::
-var:platz:marginalie,links,rechts,mittig::
-stopsetup
-
-startsetup
-com:definieretabulator:
-typ:val/val/val/:
-val:*Name::
-val:*Name::
-val:*Text::
-stopsetup
-
-startsetup
-com:starttabulator:
-typ:val/vars/stp/:
-val:*Text::
-ivr:verwendeexterneabbildung::
-stopsetup
-
-startsetup
-com:stelletabulatorein:
-typ:val/vars/:
-val:*Name::
-var:einheit:*Dimension::
-var:einziehen:ja,nein::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:innen:*Befehl::
-var:EQ:*Text::
-var:linienfarbe:*Name::
-var:ausrichtung:links,mittig,rechts,normal::
-var:liniendicke:*Dimension::
-var:abstand:blanko,tiefe,*Dimension,klein,mittel,gross,kein::
-stopsetup
-
-startsetup
-com:stelletabellenein:
-typ:vars/:
-var:abstand:klein,mittel,gross::
-var:fliesstext:5pt,...,12pt,klein,gross::
-var:HL:*Nummer,klein,mittel,gross,kein::
-var:VL:*Nummer,klein,mittel,gross,kein::
-var:tiefe:*Nummer,strut::
-var:hoehe:*Nummer,strut::
-var:liniendicke:*Dimension::
-var:linienfarbe:*Name::
-var:ausrichtung:rechts,mittig,links,normal::
-var:befehle:*Befehl::
-var:ausrichtung:links,mittig,rechts,normal::
-var:hintergrund:raster,farbe,kein::
-var:hintergrundraster:*Nummer::
-var:hintergrundfarbe:*Name::
-stopsetup
-
-startsetup
-com:starttabelle:
-typ:val/stp/:
-val:*Text,*Name::
-stopsetup
-
-startsetup
-com:starttabellen:
-typ:val/stp/:
-val:*Text,*Name::
-stopsetup
-
-startsetup
-com:definieretabellenvorlage:
-typ:val/val/val/val/:
-val:*Name::
-val:*Text::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:verwendeexternedateien:
-typ:val/vars/:
-val:*Name::
-var:fliesstext:5pt,...,12pt,klein,gross::
-var:datei:*Datei::
-stopsetup
-
-startsetup
-com:verwendeexternedatei:
-typ:val/val/val/vars/:
-val:*Name::
-val:*Name::
-val:*Datei::
-var:fliesstext:5pt,...,12pt,klein,gross::
-stopsetup
-
-startsetup
-com:verwendeexterneabbildung:
-typ:val/val/vars/:
-val:*Name::
-val:*Datei::
-var:format:*Nummer::
-var:faktor:max,passend,breit::
-var:bfaktor:*Nummer,max,breit,passend::
-var:hfaktor:*Nummer,max,breit,passend::
-var:breite:*Dimension::
-var:hoehe:*Dimension::
-var:rahmen:an,aus::
-var:voreinstellung:ja,nein::
-var:bildschirm:*Datei::
-var:vorschau:ja,nein::
-var:wiederholen:ja,nein::
-var:objekt:ja,nein::
-var:typ:eps,mps,pdf,tif,png,jpg,mov,tex::
-var:methode:eps,mps,pdf,tif,png,jpg,mov,tex::
-stopsetup
-
-startsetup
-com:externeabbildung:
-typ:val/vars/:
-val:*Datei::
-ivr:verwendeexterneabbildung::
-stopsetup
-
-startsetup
-com:stelleexterneabbildungenein:
-typ:var/:
-var:option:rahmen,leer,test::
-var:objekt:ja,nein::
-var:umrahmen:an,aus::
-var:ymax:*Nummer::
-var:xmax:*Nummer::
-var:verzeichnis:*Text::
-var:platz:lokal,global::
-stopsetup
-
-startsetup
-com:zeigeexterneabbildungen:
-typ:vars/:
-var:alternative:a,b,c::
-stopsetup
-
-startsetup
-com:name:
-typ:arg/:
-val:*Name::
-stopsetup
-
-startsetup
-com:startlegende:
-typ:val/tex/{leg}nop/sep/nop/sep/nop/sep/tex/{leg}stp/:
-val:zwei::
-val:*Text::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:startgegeben:
-typ:tex/{geg}nop/sep/nop/sep/nop/sep/tex/{geg}stp/:
-val:*Text::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:drehen:
-typ:vars/arg/:
-ivr:stelledrehenein::
-stopsetup
-
-startsetup
-com:stelledrehenein:
-typ:vars/:
-var:rotation:*Nummer::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:spiegeln:
-typ:arg/:
-stopsetup
-
-startsetup
-com:format:
-typ:vars/arg/:
-var:sx:*Nummer::
-var:sy:*Nummer::
-stopsetup
-
-startsetup
-com:stellekombinationein:
-typ:vars/:
-var:vor:commando::
-var:zwischen:commando::
-var:nach:commando::
-var:abstand:*Dimension::
-var:hoehe:*Dimension,passend::
-var:breite:*Dimension,passend::
-stopsetup
-
-startsetup
-com:startkombination:
-typ:val/stp/:
-val:*n*m::
-stopsetup
-
-startsetup
-com:platzierenebeneinander:
-typ:arg/arg/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:platziereuntereinander:
-typ:arg/arg/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:startoverlay:
-typ:arg/arg/stp/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:startueberblick:
-typ:vals/stp/:
-val:*Name::
-stopsetup
-
-startsetup
-com:stelleinteraktionsbildschirmein:
-typ:vars/:
-var:breite:*Dimension,passend,max::
-var:hoehe:*Dimension,passend,max::
-var:rumpfspatium:*Dimension::
-var:kopfspatium:*Dimension::
-var:rumpfabstand:*Dimension::
-var:kopfoffset:*Dimension::
-var:option:max,bookmark::
-var:wartezeit:*Nummer,kein::
-stopsetup
-
-startsetup
-com:bildschirm:
-typ::
-stopsetup
-
-startsetup
-com:stelleseitenuebergangein:
-typ:vals/:
-val:zuruecksetzten, *Nummer::
-stopsetup
-
-startsetup
-com:stelleinteraktionein:
-typ:vars/:
-var:status:start,stop::
-var:menue:an,aus::
-var:seite:ja,nein::
-var:klick:ja,nein::
-var:bildschirm:neu::
-var:oeffenaktion:*Referenz::
-var:schliessenaktion:*Referenz::
-var:berechnen:*Name::
-var:strut:ja,nein::
-var:breite:*Dimension::
-var:hoehe:*Dimension::
-var:tiefe:*Dimension::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...*Befehl::
-var:farbe:*Name::
-var:kontrastfarbe:*Name::
-var:symbolset:*Name::
-var:titel:*Text::
-var:untertitel:*Text::
-var:autor:*Text::
-var:datum:*Text::
-stopsetup
-
-startsetup
-com:stelleinteraktionsmenueein:
-typ:vals/vars/dests/:
-val:links,rechts,oben,unten,*Name::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:zwischen:*Befehl::
-var:links:*Befehl::
-var:rechts:*Befehl::
-var:mittig:*Befehl::
-var:status:start,stop,kein::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...*Befehl::
-var:farbe:*Name::
-var:abstand:overlay,*Dimension::
-var:selbeseite:ja,leer,nein,kein::
-var:unbekantereferenz:ja,leer,nein,kein::
-var:linkeroffset:*Dimension::
-var:rechterabstand:*Dimension::
-var:obenoffset:*Dimension::
-var:untenoffset:*Dimension::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:definiereinteraktionsmenue:
-typ:val/val/vars/:
-val:links,rechts,oben,unten,*Name::
-val:links,rechts,oben,unten,*Name::
-ivr:stelleinteraktionsmenueein::
-stopsetup
-
-startsetup
-com:startinteraktionsmenue:
-typ:val/stp/:
-val:*Name::
-stopsetup
-
-startsetup
-com:inaktiviereinteraktionsmenue:
-typ:val/refs/:
-val:links,rechts,oben,unten,*Name::
-stopsetup
-
-startsetup
-com:verwendeexteresdokument:
-typ:val/val/val/:
-val:*Name::
-val:file::
-val:*Text::
-stopsetup
-
-startsetup
-com:verwendeURL:
-typ:val/val/val/val/:
-val:*Name::
-val:*Text::
-val:file::
-val:*Text::
-stopsetup
-
-startsetup
-com:verknuepfedokument:
-typ:val/val/val/:
-val:*Name::
-val:file::
-val:*Name::
-val:*Text::
-stopsetup
-
-startsetup
-com:von:
-typ:ref/:
-val:*Text::
-stopsetup
-
-startsetup
-com:interaktionsbalken:
-typ:vars/:
-ivr:stelleinteraktionsbalkenein::
-stopsetup
-
-startsetup
-com:interaktionsknopfe:
-typ:vars/vals/:
-ivr:stelleinteraktionsbalkenein::
-val:*Name::
-stopsetup
-
-startsetup
-com:stelleinteraktionsbalkenein:
-typ:vars/:
-var:status:start,stop::
-var:alternative:a,b,c,d,e,f,g::
-var:symbol:ja,nein::
-var:breite:*Dimension,hoogte,passend::
-var:hoehe:*Dimension,hoogte,passend::
-var:tiefe:*Dimension::
-var:farbe:*Name::
-var:schritt:*Nummer,klein,mittel,gross::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:synchronisieren:
-typ::
-stopsetup
-
-startsetup
-com:startsynchronisation:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stellesynchronisationsbalkenein:
-typ:vars/:
-var:alternative:seite,lokal::
-var:breite:*Dimension,hoogte,passend::
-var:hoehe:*Dimension::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-var:farbe:*Name::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:synchronisationsbalken:
-typ:val/vars/:
-val:*Name::
-var:alternative:seite,lokal::
-ivr:stellesynchronisationsbalkenein::
-stopsetup
-
-startsetup
-com:stellesynchronisationein:
-typ:vars/:
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:definiereprofil:
-typ:vals/vals/:
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:stelleprofilein:
-typ:vars/:
-var:option:test::
-stopsetup
-
-startsetup
-com:startprofil:
-typ:vals/stp/:
-val:*Name::
-stopsetup
-
-startsetup
-com:folgeprofil:
-typ:arg/val/:
-val:*Text::
-val:*Name::
-stopsetup
-
-startsetup
-com:platzierebookmarks:
-typ:vals/vals/:
-val:*Name::
-stopsetup
-
-startsetup
-com:bookmark:
-typ:val/arg/:
-val:*Name::
-stopsetup
-
-startsetup
-com:startversion:
-typ:vals/stp/:
-val:*Nummer::
-stopsetup
-
-startsetup
-com:stelleversionein:
-typ:vars/:
-var:nummer:*Nummer::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen,kap,klein...,*Befehl::
-stopsetup
-
-startsetup
-com:beschrifteversion:
-typ::
-stopsetup
-
-startsetup
-com:waehleversionaus:
-typ::
-stopsetup
-
-startsetup
-com:definiereversion:
-typ:val/vals/:
-val:*Name::
-val:*Nummer::
-stopsetup
-
-startsetup
-com:folgeversion:
-typ:arg/val/:
-val:*Text::
-val:*Name::
-stopsetup
-
-startsetup
-com:folgeprofilversion:
-typ:arg/val/val/:
-val:*Text::
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:definiereprogramme:
-typ:val/val/val/:
-val:*Name::
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:stelleprogrammein:
-typ:vars/:
-var:verzeichnis:*Text::
-stopsetup
-
-startsetup
-com:programm:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:startabbildung:
-typ:val/val/vars/stp/:
-val:*Name::
-val:*Datei::
-var:faktor:*Nummer::
-var:rahmen:an,aus::
-stopsetup
-
-startsetup
-com:referieren/abbildung:
-typ:poss/poss/val/:
-val:*Nummer::
-val:*Nummer::
-val:*Nummer::
-val:*Nummer::
-val:*Text::
-stopsetup
-
-startsetup
-com:beschriftung/abbildung:
-typ:poss/poss/val/:
-val:*Nummer::
-val:*Nummer::
-val:*Nummer::
-val:*Nummer::
-val:*Text::
-stopsetup
-
-startsetup
-com:bemerkung:
-typ:poss/poss/vars/arg/:
-val:*Nummer::
-val:*Nummer::
-val:*Nummer::
-val:*Nummer::
-ivr:stelleumrahmtein::
-val:*Text::
-stopsetup
-
-startsetup
-com:zu:
-typ:arg/arg/refs/:
-val:*Text::
-stopsetup
-
-startsetup
-com:zurbox:
-typ:arg/refs/:
-val:*Text::
-stopsetup
-
-startsetup
-com:knopf:
-typ:vars/arg/refs/:
-ivr:stelleknopfein::
-val:*Text::
-stopsetup
-
-startsetup
-com:stelleknopfein:
-typ:vars/:
-var:status:start,stop::
-ivr:stelleumrahmtein::
-stopsetup
-
-startsetup
-com:menueknopf:
-typ:val/vars/arg/refs/:
-ivr:stelleumrahmtein::
-val:*Text::
-stopsetup
-
-startsetup
-com:stellekommentarein:
-typ:vars/:
-var:breite:*Dimension::
-var:hoehe:*Dimension::
-var:farbe:*Name::
-var:titel:*Text::
-var:spatium:ja,nein::
-var:symbol:normal,Neu,Ballon,Zusatz,Hilfe,Absatz,Schluessel::
-stopsetup
-
-startsetup
-com:startkommentar:
-typ:val/vars/stp/:
-val:*Name::
-ivr:stellekommentarein::
-stopsetup
-
-startsetup
-com:kommentar:
-typ:val/vars/arg/:
-val:*Name::
-ivr:stellekommentarein::
-stopsetup
-
-startsetup
-com:definierefeld:
-typ:val/val/val/vals/val/:
-val:*Name::
-val:*Name:radio,check,push,line,text,popup,choice,combo:
-val:*Name::
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:definieresubfeld:
-typ:val/val/vals/:
-val:*Name::
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:kopierefeld:
-typ:val/vals/:
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:klonierefeld:
-typ:val/vals/val/vals/:
-val:*Name::
-val:*Name::
-val:*Name::
-val:*Name::
-stopsetup
-
-startsetup
-com:feld:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:passendfeld:
-typ:val/:
-val:*Name::
-stopsetup
-
-startsetup
-com:ausfuellfeld:
-typ:val/arg/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:tooltip:
-typ:val/arg/arg/:
-val:links,rechts,mittig::
-val:*Text::
-stopsetup
-
-startsetup
-com:zeigefelder:
-typ:vals/:
-val:*Name::
-stopsetup
-
-startsetup
-com:registrierefelder:
-typ::
-stopsetup
-
-startsetup
-com:stellefeldein:
-typ:val/vals/vars/vars/vars/:
-val:*Name::
-val:label,horizontal,vertikal,rahmen::
-ivr:umrahmt::
-ivr:stellefelderin::
-stopsetup
-
-startsetup
-com:stellefelderin:
-typ:vals/val/vars/vars/vars/:
-val:*Name::
-val:zuruecksetzten,label,horizontal,vertikal,rahmen::
-ivr:umrahmt::
-var:n:*Nummer::
-var:abstand:*Dimension::
-var:vor:*Befehl::
-var:nach:*Befehl::
-var:zwischen:*Befehl::
-var:farbe:*Name::
-var:stil:normal,fett,geneigt,fettgeneigt,tippen::
-var:ausrichtung:links,mittig,rechts::
-var:option:nurlesbar,obligatorisch,geschuetzt,sortiert, nichtverfuegbar, versteckt,druckbar::
-var:klickin:*Referenz::
-var:klickaus:*Referenz::
-var:regionin:*Referenz::
-var:regionaus:*Referenz::
-var:nachtaste:*Referenz::
-var:formatieren:*Referenz::
-var:validieren:*Referenz::
-var:berechnen:*Referenz::
-var:feldoffset:*Dimension::
-var:feldrahmenfarbe:*Name::
-var:feldhintergrundfarbe:*Name::
-stopsetup
-
-startsetup
-com:definierefeldstapel:
-typ:val/vals/vars/:
-val:*Name::
-val:*Name::
-ivr:stellefelderin::
-stopsetup
-
-startsetup
-com:feldstapel:
-typ:val/vals/vars/:
-val:*Name::
-val:*Name::
-ivr:stellefelderin::
-stopsetup
-
-startsetup
-com:ausschnitt:
-typ:vars/arg/:
-ivr:stelleausschnittein::
-stopsetup
-
-startsetup
-com:stelleausschnittein:
-typ:vars/:
-var:nx:*Nummer::
-var:ny:*Nummer::
-var:x:*Nummer::
-var:y:*Nummer::
-var:breite:*Dimension::
-var:hoehe:*Dimension::
-var:hoffset:*Dimension::
-var:voffset:*Dimension::
-var:mp:*Name::
-stopsetup
-
-startsetup
-com:platzierelegende:
-typ:arg/arg/:
-val:*Text::
-val:*Text::
-stopsetup
-
-startsetup
-com:stellelegendeein:
-typ:vars/:
-var:n:*Nummer::
-var:abstand:*Dimension::
-var:zwischen:*Befehl::
-var:breite:*Dimension::
-var:hoehe:*Dimension::
-var:platz:rechts,unten::
-var:fliesstext:5pt,...,12pt,klein,gross::
-stopsetup
-
diff --git a/context/data/cont-en.tws b/context/data/cont-en.tws
deleted file mode 100644
index 39a4df79b..000000000
--- a/context/data/cont-en.tws
+++ /dev/null
@@ -1,3878 +0,0 @@
-startsetup
-com:installlanguage:
-typ:val/vars/:
-val:*name::
-var:spacing:packed,broad::
-var:lefthyphenmin:*dimension::
-var:righthyphenmin:*dimension::
-var:state:start,stop::
-var:leftsentence:*command::
-var:rightsentence:*command::
-var:leftsubsentence:*command::
-var:rightsubsentence:*command::
-var:leftquote:*command::
-var:rightquote:*command::
-var:leftquotation:*command::
-var:rightquotation:*command::
-var:default:*name::
-stopsetup
-
-startsetup
-com:setuplanguage:
-typ:val/vars/:
-ivr:installlanguage::
-stopsetup
-
-startsetup
-com:language:
-typ:val/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-stopsetup
-
-startsetup
-com:mainlanguage:
-typ:val/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-stopsetup
-
-startsetup
-com:translate:
-typ:vars/:
-var:*name:*text::
-stopsetup
-
-startsetup
-com:useencoding:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:usespecials:
-typ:vals/:
-val:reset,*name::
-stopsetup
-
-startsetup
-com:defineoutput:
-typ:val/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:setupoutput:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:definebodyfontenvironment:
-typ:val/vars/:
-val:5pt,...,12pt,default::
-var:text:*dimension::
-var:script:*dimension::
-var:scriptscript:*dimension::
-var:x:*dimension::
-var:xx:*dimension::
-var:small:*dimension::
-var:big:*dimension::
-stopsetup
-
-startsetup
-com:setupbodyfontenvironment:
-typ:val/vars/:
-ivl:setupbodyfont::
-ivr:setupbodyfont::
-stopsetup
-
-startsetup
-com:showbodyfontenvironment:
-typ:vals/:
-ivl:setupbodyfont::
-stopsetup
-
-startsetup
-com:definebodyfont:
-typ:vals/val/vars/:
-val:5pt,...,12pt,default::
-val:rm,ss,tt,mm,hw,cg::
-var:tf:*file::
-var:bf:*file::
-var:sl:*file::
-var:it:*file::
-var:bs:*file::
-var:bi:*file::
-var:sc:*file::
-var:ex:*file::
-var:mi:*file::
-var:sy:*file::
-var:ma:*file::
-var:mb:*file::
-var:mc:*file::
-stopsetup
-
-startsetup
-com:showbodyfont:
-typ:vals/:
-ivl:setupbodyfont::
-stopsetup
-
-startsetup
-com:setupbodyfont:
-typ:vals/:
-val:*name, serif,regular,roman, sans,support,sansserif, mono,type,teletype, handwritten,calligraphic, 5pt,...,12pt:sau,ibm,12pt,serif:
-stopsetup
-
-startsetup
-com:switchtobodyfont:
-typ:vals/:
-val:5pt,...,12pt,small,big,global::
-stopsetup
-
-startsetup
-com:definefont:
-typ:val/val/:
-val:*name::
-val:*file::
-stopsetup
-
-startsetup
-com:setupcolor:
-typ:val/:
-val:*name:rgb:
-stopsetup
-
-startsetup
-com:setupcolors:
-typ:vars/:
-var:state:start,stop,global,local::
-var:conversion:yes,no,always::
-var:reduction:yes,no::
-var:rgb:yes,no::
-var:cmyk:yes,no::
-stopsetup
-
-startsetup
-com:definecolor:
-typ:val/vars/:
-val:*name::
-var:r:*text::
-var:g:*text::
-var:b:*text::
-var:c:*text::
-var:m:*text::
-var:y:*text::
-var:k:*text::
-var:s:*text::
-stopsetup
-
-startsetup
-com:startcolor:
-typ:val/stp/:
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:color:
-typ:val/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:graycolor:
-typ:val/:
-val:*text::
-stopsetup
-
-startsetup
-com:showcolor:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:definepalet:
-typ:val/vars/:
-val:*name::
-var:*name:*name::
-stopsetup
-
-startsetup
-com:setuppalet:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:definecolorgroup:
-typ:val/val/vals/:
-val:*name::
-val:rgb,cmyk,gray,s:rgb:
-val:trips/::
-stopsetup
-
-startsetup
-com:showpalet:
-typ:val/vals/:
-val:*name::
-val:horizontal,vertical,name,value::
-stopsetup
-
-startsetup
-com:showcolorgroup:
-typ:val/vals/:
-val:*name::
-val:horizontal,vertical,name,value,number::
-stopsetup
-
-startsetup
-com:comparepalet:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:comparecolorgroup:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:showmakeup:
-typ::
-stopsetup
-
-startsetup
-com:setuptype:
-typ:var/:
-var:space:on,off::
-var:option:slanted,normal,none::
-var:color:*name::
-stopsetup
-
-startsetup
-com:type:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:typ:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:tex:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:arg:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:definetyping:
-typ:val/vars/:
-val:file,typing,*name::
-ivr:setuptyping::
-stopsetup
-
-startsetup
-com:setuptyping:
-typ:val/vars/:
-val:file,typing,*name::
-var:space:on,off::
-var:page:yes,no::
-var:option:slanted,normal,commands,color,none::
-var:text:yes,no::
-var:icommand:*command::
-var:vcommand:*command::
-var:ccommand:*command::
-var:before:*command::
-var:after:*command::
-var:margin:*dimension,standard::
-var:evenmargin:*dimension::
-var:oddmargin:*dimension::
-var:blank:*dimension,small,medium,big,standard,halfline,line::
-var:escape:*::
-var:indentnext:yes,no::
-var:palet:*name::
-var:color:*name::
-stopsetup
-
-startsetup
-com:starttyping:
-typ:stp/:
-stopsetup
-
-startsetup
-com:typefile:
-typ:arg/:
-val:*file::
-stopsetup
-
-startsetup
-com:setupfootnotes:
-typ:vars/:
-var:conversion:numbers,characters,Characters,romannumerals,Romannumerals::
-var:way:bytext,by*section::
-var:location:page,text,columns,high::
-var:rule:on,off::
-var:before:*command::
-var:after:*command::
-var:width:*dimension::
-var:height:*dimension::
-var:bodyfont:5pt,...,12pt,small,big::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:distance:*dimension::
-var:columndistance:*dimension::
-var:margindistance:*dimension::
-var:n:*number::
-var:numbercommand:*\command#1::
-ivr:framed::
-stopsetup
-
-startsetup
-com:setupfootnotedefinition:
-typ:vars/:
-ivr:definedescription::
-stopsetup
-
-startsetup
-com:footnote:
-typ:ref/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:note:
-typ:ref/:
-stopsetup
-
-startsetup
-com:startlocalfootnotes:
-typ:stp/:
-ivr:setupfootnotes::
-stopsetup
-
-startsetup
-com:placelocalfootnotes:
-typ:vars/:
-ivr:setupfootnotes::
-stopsetup
-
-startsetup
-com:placefootnotes:
-typ:vars/:
-ivr:setupfootnotes::
-stopsetup
-
-startsetup
-com:setupunderbar:
-typ:vars/:
-var:alternative:a,b,c::
-var:rulethickness:*dimension::
-stopsetup
-
-startsetup
-com:underbar:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:underbars:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:overbar:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:overbars:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:overstrike:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:overstrikes:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:romannumerals:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:Romannumerals:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:numbers:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:character:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:Character:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:characters:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:Characters:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:mediaeval:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:month:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:MONTH:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:weekday:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:WEEKDAY:
-typ:arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:setupcapitals:
-typ:vars/:
-var:title:yes,no::
-var:sc:yes,no::
-stopsetup
-
-startsetup
-com:kap:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:nocap:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:CAP:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:Cap:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:Caps:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:WORD:
-typ:wrd/:
-val:*text::
-stopsetup
-
-startsetup
-com:WORDS:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:Word:
-typ:wrd/:
-val:*text::
-stopsetup
-
-startsetup
-com:Words:
-typ:wrds/:
-val:*text::
-stopsetup
-
-startsetup
-com:stretched:
-typ:wrd/:
-val:*text::
-stopsetup
-
-startsetup
-com:definesymbol:
-typ:val/val/:
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:definefiguresymbol:
-typ:val/val/vars/:
-val:*name::
-val:*text::
-ivr:externalfigure::
-stopsetup
-
-startsetup
-com:symbol:
-typ:val/val/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:startsymbolset:
-typ:val/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:setupsymbolset:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:usesymbols:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:showsymbolset:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:defineconversion:
-typ:val/val/:
-val:*name::
-val:*command,*text::
-stopsetup
-
-startsetup
-com:convertnumber:
-typ:arg/arg/:
-val:*name::
-val:*number::
-stopsetup
-
-startsetup
-com:setupheadtext:
-typ:val/var/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-var:*name:*text::
-stopsetup
-
-startsetup
-com:setuplabeltext:
-typ:val/var/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-var:*name:*text::
-stopsetup
-
-startsetup
-com:headtext:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:labeltext:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:setupmarginrules:
-typ:var/:
-var:level:*number::
-var:thickness:*dimension::
-stopsetup
-
-startsetup
-com:startmarginrule:
-typ:val/stp/:
-val:*number::
-stopsetup
-
-startsetup
-com:marginrule:
-typ:val/arg/:
-val:*number::
-stopsetup
-
-startsetup
-com:setuplinewidth:
-typ:val/:
-val:*dimension::
-stopsetup
-
-startsetup
-com:setupframed:
-typ:vars/:
-var:height:fit,broad,*dimension::
-var:width:fit,broad,*dimension::
-var:offset:none,overlay,*dimension::
-var:location:low,depth::
-var:option:none,empty::
-var:strut:yes,no::
-var:align:no,left,right,middle,normal::
-var:bottom:*command::
-var:top:*command::
-var:frame:on,off,overlay::
-var:topframe:on,off::
-var:bottomframe:on,off::
-var:leftframe:on,off::
-var:rightframe:on,off::
-var:frameoffset:*dimension::
-var:framedepth:*dimension::
-var:framecorner:round,rectangular::
-var:frameradius:*dimension::
-var:framecolor:*name::
-var:background:screen,color,none,foreground,*name::
-var:backgroundscreen:*number::
-var:backgroundcolor:*name::
-var:backgroundoffset:*dimension::
-var:backgrounddepth:*dimension::
-var:backgroundcorner:round,rectangular::
-var:backgroundradius:*dimension::
-var:depth:*dimension::
-var:corner:round,rectangular::
-var:radius:*dimension::
-var:empty:yes,no::
-val:*text::
-stopsetup
-
-startsetup
-com:framed:
-typ:vars/arg/:
-ivr:setupframed::
-val:*text::
-stopsetup
-
-startsetup
-com:inframed:
-typ:vars/arg/:
-ivr:setupframed::
-val:*text::
-stopsetup
-
-startsetup
-com:thinrules:
-typ:var/:
-ivr:setupthinrules::
-stopsetup
-
-startsetup
-com:setupthinrules:
-typ:var/:
-var:distance:small,medium,big::
-var:n:*number::
-var:before:*command::
-var:after:*command::
-var:height:*dimension::
-var:depth:*dimension::
-stopsetup
-
-startsetup
-com:hairline:
-typ::
-stopsetup
-
-startsetup
-com:thinrule:
-typ::
-stopsetup
-
-startsetup
-com:defineframedtext:
-typ:val/vars/:
-val:*name::
-ivr:setupframedtexts::
-stopsetup
-
-startsetup
-com:defineframed:
-typ:val/vars/:
-val:*name::
-ivr:setupframedtexts::
-stopsetup
-
-startsetup
-com:setupframedtexts:
-typ:vars/:
-var:bodyfont:5pt,...,12pt,small,big::
-var:style:normal,bold,slanted,boldslanted,type,small...,*command::
-var:left:*command::
-var:right:*command::
-var:before:*command::
-var:after:*command::
-var:inner:*command::
-var:margin:standard,yes,no::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:start<<framedtext>>:
-typ:val/vars/stp/:
-val:left,right,middle::
-ivr:setupframedtexts::
-stopsetup
-
-startsetup
-com:<<framedtext>>:
-typ:vars/:
-ivr:setupframedtexts::
-stopsetup
-
-startsetup
-com:startbackground:
-typ:stp/:
-stopsetup
-
-startsetup
-com:background:
-typ::
-stopsetup
-
-startsetup
-com:setupbackground:
-typ:vars/:
-var:leftoffset:*dimension::
-var:rightoffset:*dimension::
-var:topoffset:*dimension::
-var:bottomoffset:*dimension::
-var:state:start,stop::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:fillinrules:
-typ:vars/arg/arg/:
-ivr:setupfillinrules::
-stopsetup
-
-startsetup
-com:fillintext:
-typ:vars/arg/arg/par/:
-ivr:setupfillinrules::
-stopsetup
-
-startsetup
-com:setupfillinrules:
-typ:vars/:
-var:width:fit,*dimension::
-var:distance:*dimension::
-var:before:*command::
-var:after:*command::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:n:*number::
-var:separator:*text::
-stopsetup
-
-startsetup
-com:fillinline:
-typ:vars/nop/par/:
-ivr:setupfillinlines::
-stopsetup
-
-startsetup
-com:setupfillinlines:
-typ:vars/:
-var:width:*dimension::
-var:margin:*dimension::
-var:distance:*dimension::
-var:before:*command::
-var:after:*command::
-stopsetup
-
-startsetup
-com:setuptextrules:
-typ:vars/:
-var:location:left,inmargin::
-var:before:*command::
-var:after:*command::
-var:inbetween:*command::
-var:width:*dimension::
-var:distance:*dimension::
-var:bodyfont:5pt,...,12pt,small,big::
-var:color:*name::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:rulecolor:*name::
-stopsetup
-
-startsetup
-com:textrule:
-typ:val/arg/:
-val:top,bottom::
-val:*text::
-stopsetup
-
-startsetup
-com:starttextrule:
-typ:val/arg/stp/:
-val:top,bottom::
-val:*text::
-stopsetup
-
-startsetup
-com:blackrule:
-typ:vars/:
-ivr:setupblackrules::
-stopsetup
-
-startsetup
-com:blackrules:
-typ:vars/:
-ivr:setupblackrules::
-stopsetup
-
-startsetup
-com:setupblackrules:
-typ:vars/:
-var:width:*dimension,max::
-var:height:*dimension,max::
-var:depth:*dimension,max::
-var:alternative:a,b::
-var:distance:*dimension::
-var:n:*number::
-stopsetup
-
-startsetup
-com:defineoverlay:
-typ:vals/val/:
-val:*name::
-val:*command::
-stopsetup
-
-startsetup
-com:usemodule:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:reset:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:donttest:
-typ::
-stopsetup
-
-startsetup
-com:startlocalenvironment:
-typ:stp/:
-stopsetup
-
-startsetup
-com:setupsystem:
-typ:vars/:
-var:resolution:*number::
-var:random:normal,small,medium,big,*number::
-stopsetup
-
-startsetup
-com:usepath:
-typ:vals/:
-val:*name,reset:.:
-stopsetup
-
-startsetup
-com:low:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:high:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:lohi:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:showframe:
-typ:val/:
-val:text,margin,edge::
-stopsetup
-
-startsetup
-com:showbuildup:
-typ::
-stopsetup
-
-startsetup
-com:leftaligned:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:rightaligned:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:midaligned:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:wordright:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:inmargin:
-typ:val/ref/arg/:
-val:+,-,low::
-val:*text::
-stopsetup
-
-startsetup
-com:inothermargin:
-typ:val/ref/arg/:
-val:+,-,low::
-val:*text::
-stopsetup
-
-startsetup
-com:inleft:
-typ:val/ref/arg/:
-val:+,-,low::
-val:*text::
-stopsetup
-
-startsetup
-com:inright:
-typ:val/ref/arg/:
-val:+,-,low::
-val:*text::
-stopsetup
-
-startsetup
-com:column:
-typ::
-stopsetup
-
-startsetup
-com:showstruts:
-typ::
-stopsetup
-
-startsetup
-com:showsetups:
-typ::
-stopsetup
-
-startsetup
-com:showlayout:
-typ::
-stopsetup
-
-startsetup
-com:margintext:
-typ:val/ref/arg/:
-val:+,-,low::
-val:*text::
-stopsetup
-
-startsetup
-com:setupmarginblocks:
-typ:vars/:
-var:location:inmargin,left,middle,right::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:width:*dimension::
-var:align:left,middle,right,no::
-var:top:*command::
-var:inbetween:*command::
-var:bottom:*command::
-var:left:*command::
-var:right:*command::
-var:before:*command::
-var:after:*command::
-stopsetup
-
-startsetup
-com:startmarginblock:
-typ:stp/:
-stopsetup
-
-startsetup
-com:part:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:title:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:chapter:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:section:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:subsection:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:subsubsection:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:subject:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:subsubject:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:subsubsubject:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:appendix:
-typ:refs/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:in:
-typ:arg/arg/ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:at:
-typ:arg/arg/ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:about:
-typ:arg/ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:somewhere:
-typ:arg/arg/ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:atpage:
-typ:ref/:
-stopsetup
-
-startsetup
-com:ref:
-typ:val/ref/:
-val:t,p,r,s,e::
-val:*text::
-stopsetup
-
-startsetup
-com:textreference:
-typ:ref/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:pagereference:
-typ:ref/:
-stopsetup
-
-startsetup
-com:reference:
-typ:ref/arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:usereferences:
-typ:vals/:
-val:*file::
-stopsetup
-
-startsetup
-com:definereference:
-typ:val/refs/:
-val:*name::
-stopsetup
-
-startsetup
-com:hl:
-typ:val/:
-val:*number::
-stopsetup
-
-startsetup
-com:vl:
-typ:val/:
-val:*number::
-stopsetup
-
-startsetup
-com:godown:
-typ:val/:
-val:*dimension::
-stopsetup
-
-startsetup
-com:whitespace:
-typ::
-stopsetup
-
-startsetup
-com:nowhitespace:
-typ::
-stopsetup
-
-startsetup
-com:crlf:
-typ::
-stopsetup
-
-startsetup
-com:space:
-typ::
-stopsetup
-
-startsetup
-com:fixedspaces:
-typ::
-stopsetup
-
-startsetup
-com:nospace:
-typ::
-stopsetup
-
-startsetup
-com:packed:
-typ::
-stopsetup
-
-startsetup
-com:redo:
-typ:val/:
-val:repeat/*text::
-stopsetup
-
-startsetup
-com:setupdescriptions:
-typ:vals/vars/:
-val:*name::
-var:headstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:color:*name::
-var:width:fit,broad,*dimension::
-var:distance:*dimension::
-var:sample:*text::
-var:text:*text::
-var:align:left,middle,right::
-var:margin:standard,yes,no,*dimension::
-var:location:left,right,top,serried, inmargin,inleft,inright,hanging::
-var:hang:fit,broad,*number::
-var:before:*command::
-var:inbetween:*command::
-var:after:*command::
-var:indentnext:yes,no::
-stopsetup
-
-startsetup
-com:setupenumerations:
-typ:vals/vars/:
-val:*name::
-ivr:definedescription::
-var:location:left,right,top,serried, inmargin,inleft,inright,hanging::
-var:text:*text::
-var:levels:*number::
-var:conversion:numbers,characters,Characters,romannumerals,Romannumerals::
-var:way:bytext,by*section::
-var:blockway:yes,no::
-var:sectionnumber:yes,no::
-var:separator:*text::
-var:stopper:*text::
-var:coupling:*name::
-var:couplingway:global,local::
-var:number:no,*name::
-var:aligntitle:no,yes::
-stopsetup
-
-startsetup
-com:defineenumeration:
-typ:vals/val/vars/:
-val:*name::
-val:*name::
-ivr:setupenumerations::
-stopsetup
-
-startsetup
-com:<<enumeration>>:
-typ:nop/par/:
-val:*text::
-stopsetup
-
-startsetup
-com:start<<enumeration>>:
-typ:stp/:
-stopsetup
-
-startsetup
-com:definedescription:
-typ:val/vars/:
-val:*name::
-ivr:setupdescriptions::
-stopsetup
-
-startsetup
-com:<<description>>:
-typ:arg/nop/par/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:start<<description>>:
-typ:arg/stp/:
-val:*text::
-stopsetup
-
-startsetup
-com:setupindentations:
-typ:vals/vars/:
-val:*name::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:headstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:width:fit,*dimension::
-var:text:*text::
-var:sample:*text::
-var:before:*command::
-var:after:*command::
-var:separator:*text::
-stopsetup
-
-startsetup
-com:defineindenting:
-typ:val/vars/:
-val:*name::
-ivr:setupindentations::
-stopsetup
-
-startsetup
-com:<<indentation>>:
-typ:nop/par/:
-val:*text::
-stopsetup
-
-startsetup
-com:definelabel:
-typ:val/vars/:
-val:*name::
-var:text:*text::
-var:location:inmargin,intext::
-var:way:bytext,by*section::
-var:blockway:yes,no::
-var:headstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:headcolor:*name::
-var:before:*command::
-var:after:*command::
-stopsetup
-
-startsetup
-com:<<labeling>>:
-typ::
-stopsetup
-
-startsetup
-com:setupcolumns:
-typ:vars/:
-var:n:*number::
-var:rule:on,off::
-var:height:*dimension::
-var:tolerance:verystrict,strict,tolerant,verytolerant,stretch::
-var:distance:*dimension::
-var:balance:yes,no::
-var:align:yes,no,text::
-var:blank:fixed,halfline,line,flexible,big,medium,small::
-var:option:background::
-var:direction:left,right::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:startcolumns:
-typ:vars/stp/:
-ivr:setupcolumns::
-stopsetup
-
-startsetup
-com:definetext:
-typ:val/val/val/val/val/:
-val:*name::
-val:header,footer::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:setupheader:
-typ:val/vars/:
-val:text,margin,edge:text:
-var:state:normal,stop,start,empty,high,none, nomarking,*name::
-var:strut:yes,no::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:leftstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:rightstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:leftwidth:*dimension::
-var:rightwidth:*dimension::
-var:before:*command::
-var:after:*command::
-stopsetup
-
-startsetup
-com:setupfooter:
-typ:val/vars/:
-ivl:setupheader::
-ivr:setupheader::
-stopsetup
-
-startsetup
-com:setuptext:
-typ:val/vars/:
-ivl:setupheader::
-ivr:setupheader::
-stopsetup
-
-startsetup
-com:setuptop:
-typ:val/vars/:
-ivl:setupheader::
-ivr:setupheader::
-stopsetup
-
-startsetup
-com:setupbottom:
-typ:val/vars/:
-ivl:setupheader::
-ivr:setupheader::
-stopsetup
-
-startsetup
-com:noheaderandfooterlines:
-typ::
-stopsetup
-
-startsetup
-com:notopandbottomlines:
-typ::
-stopsetup
-
-startsetup
-com:setupheadertexts:
-typ:val/val/val/:
-val:text,margin,edge:text:
-val:*text,*section,date,*mark,pagenumber::
-val:*text,*section,date,*mark,pagenumber::
-stopsetup
-
-startsetup
-com:setupfootertexts:
-typ:val/val/val/:
-val:text,margin,edge:text:
-val:*text,*section,date,*mark,pagenumber::
-val:*text,*section,date,*mark,pagenumber::
-stopsetup
-
-startsetup
-com:setuptexttexts:
-typ:val/val/val/:
-val:text,margin,edge:text:
-val:*text,*section,date,*mark,pagenumber::
-val:*text,*section,date,*mark,pagenumber::
-stopsetup
-
-startsetup
-com:setuptoptexts:
-typ:val/val/val/:
-val:text,margin,edge:text:
-val:*text,*section,date,*mark,pagenumber::
-val:*text,*section,date,*mark,pagenumber::
-stopsetup
-
-startsetup
-com:setupbottomtexts:
-typ:val/val/val/:
-val:text,margin,edge:text:
-val:*text,*section,date,*mark,pagenumber::
-val:*text,*section,date,*mark,pagenumber::
-stopsetup
-
-startsetup
-com:definemarking:
-typ:val/val/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:couplemarking:
-typ:val/val/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:decouplemarking:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:resetmarking:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:setupmarking:
-typ:val/var/:
-val:*name::
-var:state:start,stop::
-var:separator:*command::
-var:expansion:yes,no::
-stopsetup
-
-startsetup
-com:marking:
-typ:val/arg/:
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:getmarking:
-typ:val/val/:
-val:*name::
-val:first,last,previous,both,all::
-stopsetup
-
-startsetup
-com:nomarking:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:setuplayout:
-typ:vars/:
-var:width:*dimension,fit,middle::
-var:height:*dimension,fit,middle::
-var:backspace:*dimension::
-var:topspace:*dimension::
-var:margin:*dimension::
-var:leftmargin:*dimension::
-var:rightmargin:*dimension::
-var:header:*dimension::
-var:footer:*dimension::
-var:top:*dimension::
-var:bottom:*dimension::
-var:leftedge:*dimension::
-var:rightedge:*dimension::
-var:headerdistance:*dimension::
-var:footerdistance:*dimension::
-var:topdistance:*dimension::
-var:bottomdistance:*dimension::
-var:leftmargindistance:*dimension::
-var:rightmargindistance:*dimension::
-var:leftedgedistance:*dimension::
-var:rightedgedistance:*dimension::
-var:horoffset:*dimension::
-var:veroffset:*dimension::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:marking:on,off,color::
-var:location:left,middle,right,bottom,top, singlesided,doublesided::
-var:scale:*dimension::
-var:nx:*number::
-var:ny:*number::
-var:dx:*dimension::
-var:dy:*dimension::
-var:lines:*number::
-var:grid:yes,no::
-stopsetup
-
-startsetup
-com:adaptlayout:
-typ:vals/vars/:
-val:*number::
-var:height:*dimension,max::
-var:lines:*number::
-stopsetup
-
-startsetup
-com:showgrid:
-typ::
-stopsetup
-
-startsetup
-com:placeongrid:
-typ:val/arg/:
-ivl:moveongrid::
-stopsetup
-
-startsetup
-com:moveongrid:
-typ:val/:
-val:top,both,bottom:both:
-stopsetup
-
-startsetup
-com:startproject:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:startenvironment:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:startproduct:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:startcomponent:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:nomorefiles:
-typ::
-stopsetup
-
-startsetup
-com:setupinterlinespace:
-typ:val/vars/:
-val:reset,small,medium,big,on,off:small:
-var:height:*number::
-var:depth:*number::
-var:line:*dimension::
-var:top:*number::
-var:bottom:*number::
-stopsetup
-
-startsetup
-com:setuppagenumbering:
-typ:vars/:
-var:alternative:singlesided,doublesided::
-var:location:header,footer, left,right,middle, margin,marginedge,inleft,inright::
-var:conversion:numbers,characters,Characters,romannumerals,Romannumerals::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:left:*text::
-var:right:*text::
-var:way:bytext,by*section::
-var:text:*text::
-var:numberseparator:*text::
-var:textseparator:*text::
-var:*sectionnummer:yes,no::
-var:separator:*text::
-var:state:start,stop::
-var:command:*\command#1::
-stopsetup
-
-startsetup
-com:setupnarrower:
-typ:vars/:
-var:left:*dimension::
-var:right:*dimension::
-var:middle:*dimension::
-stopsetup
-
-startsetup
-com:define:
-typ:val/cmd/arg/:
-val:*number:0:
-stopsetup
-
-startsetup
-com:usecommands:
-typ:arg/:
-stopsetup
-
-startsetup
-com:definestartstop:
-typ:val/vars/:
-var:before:*command::
-var:after:*command::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:commands:*command::
-stopsetup
-
-startsetup
-com:setupheads:
-typ:vars/:
-var:sectionnumber:yes,no::
-var:alternative:normal,inmargin,middle,text::
-var:separator:*text::
-var:command:*\command#1#2::
-stopsetup
-
-startsetup
-com:setupcaptions:
-typ:vars/:
-var:location:top,bottom,none,high,low,middle::
-var:width:fit,max,*dimension::
-var:headstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:number:yes,no::
-var:inbetween:*command::
-var:align:left,middle,right,no::
-var:conversion:numbers,characters,Characters,romannumerals,Romannumerals::
-var:way:bytext,by*section::
-stopsetup
-
-startsetup
-com:setupcaption:
-typ:val/vars/:
-ivr:setupcaptions::
-stopsetup
-
-startsetup
-com:setupfloats:
-typ:vars/:
-var:location:left,right,middle::
-var:width:fit,*dimension::
-var:before:*command::
-var:after:*command::
-var:margin:*dimension::
-var:spacebefore:repeat/small,repeat/medium,repeat/big,none::
-var:spaceafter:repeat/small,repeat/medium,repeat/big,none::
-var:sidespacebefore:repeat/small,repeat/medium,repeat/big,none::
-var:sidespaceafter:repeat/small,repeat/medium,repeat/big,none::
-var:ntop:*number::
-var:nbottom:*number::
-var:nlines:*number::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:setupfloatsplitting:
-typ:vars/:
-var:conversion:numbers,characters,Characters,romannumerals,Romannumerals::
-var:lines:*number::
-stopsetup
-
-startsetup
-com:splitfloat:
-typ:vars/arg/arg/:
-ivr:setupfloatsplitting::
-stopsetup
-
-startsetup
-com:setupoppositeplacing:
-typ:var/:
-var:state:start,stop::
-stopsetup
-
-startsetup
-com:startopposite:
-typ:stp/:
-stopsetup
-
-startsetup
-com:setuphyphenmark:
-typ:var/:
-var:sign:--,---,-,\normalpenalty 10000\ ,),(,=,/::
-stopsetup
-
-startsetup
-com:setuppositioning:
-typ:vars/:
-var:state:start,overlay::
-var:unit:cm,pt,em,mm,ex,sp,in::
-var:factor:*number::
-var:scale:*number::
-var:offset:yes,no::
-var:xstep:absolute,relative::
-var:ystep:absolute,relative::
-stopsetup
-
-startsetup
-com:startpositioning:
-typ:stp/:
-stopsetup
-
-startsetup
-com:grid:
-typ:vars/:
-var:x:*number::
-var:y:*number::
-var:nx:*number::
-var:ny:*number::
-var:dx:*number::
-var:dy:*number::
-var:xstep:*number::
-var:ystep:*number::
-var:offset:yes,no::
-var:factor:*number::
-var:scale:*number::
-var:unit:cm,pt,em,mm,ex,sp,in::
-var:location:left,middle::
-stopsetup
-
-startsetup
-com:page:
-typ:vals/:
-val:yes,markup,no,preference,bigpreference, left,right,disable,last,quadruple, even,odd,blank,empty,reset:yes:
-stopsetup
-
-startsetup
-com:setupreferencing:
-typ:var/:
-var:state:start,stop::
-var:*sectionnummer:yes,no::
-var:prefix:+,-,*text::
-var:interaction:label,text,all,symbol::
-var:width:*dimension::
-var:left:*command::
-var:right:*command::
-var:convertfile:yes,no::
-stopsetup
-
-startsetup
-com:setupurl:
-typ:vars/:
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:urlalternative:none,both,before,after::
-var:urlspace:yes,no::
-stopsetup
-
-startsetup
-com:writetoreferencelist:
-typ:val/arg/arg/:
-val:*name::
-stopsetup
-
-startsetup
-com:placereferencelist:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:definereferencelist:
-typ:val/vars/:
-val:*name::
-ivr:setupreferencelist::
-stopsetup
-
-startsetup
-com:setupreferencelist:
-typ:vals/vars/:
-val:*name::
-var:state:start,stop::
-var:criterium:*section,local,previous,all::
-var:command:*command::
-var:before:*command::
-var:after:*command::
-stopsetup
-
-startsetup
-com:writetolist:
-typ:val/arg/arg/:
-val:*section,*name::
-stopsetup
-
-startsetup
-com:writebetweenlist:
-typ:val/arg/:
-val:*section,*name::
-stopsetup
-
-startsetup
-com:nolist:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:placelist:
-typ:vals/vars/:
-val:*name::
-ivr:setuplist::
-stopsetup
-
-startsetup
-com:determinelistcharacteristics:
-typ:vals/vars/:
-val:*name::
-ivr:setuplist::
-stopsetup
-
-startsetup
-com:definelist:
-typ:val/val/vars/:
-val:*name::
-val:*name::
-ivr:setuplist::
-stopsetup
-
-startsetup
-com:setuplist:
-typ:vals/vars/:
-val:*name::
-var:state:start,stop::
-var:alternative:a,b,c,...,none,command::
-var:coupling:on,off::
-var:criterium:*section,local,previous,all::
-var:pageboundaries:*list::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:numberstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:textstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:pagestyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:color:*name::
-var:command:*\command#1#2#3::
-var:numbercommand:*\command#1::
-var:textcommand:*\command#1::
-var:pagecommand:*\command#1::
-var:interaction:sectionnumber,text,pagenumber,all::
-var:before:*command::
-var:after:*command::
-var:inbetween:*command::
-var:left:*text::
-var:right:*text::
-var:label:yes,no::
-var:prefix:yes,no::
-var:pagenumber:yes,no::
-var:*sectionnummer:yes,no::
-var:aligntitle:yes,no::
-var:margin:*dimension::
-var:width:*dimension,fit::
-var:height:*dimension,fit,broad::
-var:depth:*dimension,fit,broad::
-var:distance:*dimension::
-var:separator:*text::
-var:symbol:none,1,2,3,...::
-var:expansion:yes,no,command::
-var:maxwidth:*dimension::
-ivr:framed::
-stopsetup
-
-startsetup
-com:definecombinedlist:
-typ:val/vals/vars/:
-val:*name::
-val:*list::
-ivr:setupcombinedlist::
-stopsetup
-
-startsetup
-com:setupcombinedlist:
-typ:val/vars/:
-val:*name::
-var:level:1,2,3,4,*section,current::
-ivr:setuplist::
-stopsetup
-
-startsetup
-com:place<<combinedlist>>:
-typ:val/vars/:
-val:*name::
-ivr:setupcombinedlist::
-stopsetup
-
-startsetup
-com:complete<<combinedlist>>:
-typ:val/vars/:
-val:*name::
-ivr:setupcombinedlist::
-stopsetup
-
-startsetup
-com:setupnumbering:
-typ:vars/:
-var:way:bytext,by*section::
-var:state:start,stop::
-stopsetup
-
-startsetup
-com:setupformulae:
-typ:vars/:
-var:location:left,right::
-var:left:*text::
-var:right:*text::
-stopsetup
-
-startsetup
-com:publication:
-typ:ref/:
-stopsetup
-
-startsetup
-com:setuppublications:
-typ:vars/:
-var:alternative:apa,normal::
-ivr:setupenumerations::
-stopsetup
-
-startsetup
-com:setuplines:
-typ:vars/:
-var:before:*command::
-var:after:*command::
-var:inbetween:*command::
-var:indenting:yes,no,even,odd::
-stopsetup
-
-startsetup
-com:startlines:
-typ:stp/:
-stopsetup
-
-startsetup
-com:setuplinenumbering:
-typ:vars/:
-var:conversion:numbers,characters,Characters,romannumerals,Romannumerals, text::
-var:start:*number::
-var:step:*number::
-var:width:*dimension::
-var:location:intext,inmargin::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:prefix:*text::
-var:referencing:on,off::
-stopsetup
-
-startsetup
-com:startlinenumbering:
-typ:val/stp/:
-val:continue::
-stopsetup
-
-startsetup
-com:startline:
-typ:ref/stp/:
-stopsetup
-
-startsetup
-com:someline:
-typ:ref/:
-stopsetup
-
-startsetup
-com:inline:
-typ:ref/:
-stopsetup
-
-startsetup
-com:setupinmargin:
-typ:val/vars/:
-val:left,right,*number::
-var:location:left,right,both::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:before:*command::
-var:after:*command::
-var:align:inner,outer,left,right,middle,normal,no,yes::
-var:line:*number::
-var:distance:*dimension::
-var:separator:*text::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:setuppagenumber:
-typ:vars/:
-var:number:*number::
-var:state:start,stop,keep::
-stopsetup
-
-startsetup
-com:setupsubpagenumber:
-typ:vars/:
-var:way:bytext,by*section::
-var:state:start,stop,none::
-stopsetup
-
-startsetup
-com:setupblank:
-typ:val/:
-val:normal,standard,line,*dimension, big,medium,small, fixed,flexible:normal:
-stopsetup
-
-startsetup
-com:defineblank:
-typ:val/val/:
-val:*name::
-ivl:setupblank::
-stopsetup
-
-startsetup
-com:definepapersize:
-typ:val/vars/:
-val:*name::
-var:width:*dimension::
-var:height:*dimension::
-var:offset:*dimension::
-var:scale:*number::
-stopsetup
-
-startsetup
-com:setuppapersize:
-typ:vals/vals/:
-val:A3,A4,A5,A6,letter,...,CD,*name, landscape,mirrored,rotated,90,180,270:A4:
-val:A3,A4,A5,A6,letter,...,*name, landscape,mirrored,rotated,negative,90,180,270:A4:
-stopsetup
-
-startsetup
-com:setuparranging:
-typ:vals/:
-val:disable, 2*16,2*8,2*4,2*2,2UP,2DOWN, mirrored,rotated,doublesided,negative,90,180,270::
-stopsetup
-
-startsetup
-com:showprint:
-typ:vals/vals/vars/:
-ivr:setuppapersize::
-ivr:setuppapersize::
-ivr:setuplayout::
-stopsetup
-
-startsetup
-com:definelogo:
-typ:val/val/val/vars/:
-val:*name::
-val:top,header,footer,bottom::
-val:none,page, leftedge,leftmargin, left,middle,right, rightmargin,rightedge::
-var:command:*command,*text::
-var:state:start,stop::
-stopsetup
-
-startsetup
-com:placelogos:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:setupwhitespace:
-typ:val/:
-val:none,small,medium,big,line,fixed,fix,*dimension:none:
-stopsetup
-
-startsetup
-com:setupindenting:
-typ:vals/:
-val:none,small,medium,big,next,first,*dimension:none:
-stopsetup
-
-startsetup
-com:definesectionblock:
-typ:val/vars/:
-val:*name::
-ivr:setupsectionblock::
-stopsetup
-
-startsetup
-com:setupsectionblock:
-typ:val/vars/:
-val:*name::
-var:number:yes,no::
-var:page:yes,right::
-var:before:*command::
-var:after:*command::
-stopsetup
-
-startsetup
-com:definesection:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:setupsection:
-typ:val/vars/:
-val:*name::
-var:conversion:numbers,characters,Characters,romannumerals,Romannumerals::
-var:previousnumber:yes,no::
-stopsetup
-
-startsetup
-com:setuphead:
-typ:val/vars/:
-val:*section::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:textstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:numberstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:number:yes,no::
-var:ownnumber:yes,no::
-var:page:left,right,yes::
-var:continue:yes,no::
-var:header:none,empty,high,nomarking::
-var:before:*command::
-var:inbetween:*command::
-var:after:*command::
-var:alternative:normal,inmargin,middle,text::
-var:command:*\command#1#2::
-var:numbercommand:*\command#1::
-var:textcommand:*\command#1::
-var:prefix:+,-,*text::
-var:placehead:yes,no::
-var:incrementnumber:yes,no,*file::
-var:align:left,right,normal,broad::
-var:tolerance:verystrict,strict,tolerant,verytolerant,stretch::
-var:indentnext:yes,no::
-var:file:*name::
-var:expansion:yes,command,no::
-stopsetup
-
-startsetup
-com:setupheadnumber:
-typ:val/val/:
-val:*section::
-val:*number,+*number,-*number::
-stopsetup
-
-startsetup
-com:headnumber:
-typ:val/:
-val:*section::
-stopsetup
-
-startsetup
-com:determineheadnumber:
-typ:val/:
-val:*section::
-stopsetup
-
-startsetup
-com:currentheadnumber:
-typ::
-stopsetup
-
-startsetup
-com:next<<section>>:
-typ::
-stopsetup
-
-startsetup
-com:definehead:
-typ:val/val/:
-val:*name::
-val:*section::
-stopsetup
-
-startsetup
-com:setupitemize:
-typ:val/vals/vars/:
-val:*number,each::
-val:standard,repeat/broad,repeat/serried,packed, unpacked,stopper,joinedup,atmargin,inmargin, autointro,loose:standard:
-var:margin:no,standard,*dimension::
-var:width:*dimension::
-var:distance:*dimension::
-var:factor:*number::
-var:items:*number::
-var:before:*command::
-var:inbetween:*command::
-var:after:*command::
-var:beforehead:*command::
-var:afterhead:*command::
-var:headstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:marstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:symstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:stopper:*text::
-var:n:*number::
-var:symbol:*number::
-var:align:left,right,normal::
-var:indentnext:yes,no::
-stopsetup
-
-startsetup
-com:startitemize:
-typ:vals/vars/stp/:
-val:a,A,KA,n,N,m,r,R,KR,*number,continue, standard,repeat/broad,repeat/serried,packed, stopper,joinedup,atmargin,inmargin,intro,columns:standard:
-ivr:setupitemize::
-stopsetup
-
-startsetup
-com:item:
-typ:refs/:
-stopsetup
-
-startsetup
-com:but:
-typ:ref/:
-stopsetup
-
-startsetup
-com:its:
-typ:refs/:
-stopsetup
-
-startsetup
-com:ran:
-typ:arg/:
-stopsetup
-
-startsetup
-com:head:
-typ:refs/:
-stopsetup
-
-startsetup
-com:mar:
-typ:refs/arg/:
-stopsetup
-
-startsetup
-com:sub:
-typ:refs/:
-stopsetup
-
-startsetup
-com:sym:
-typ:arg/:
-stopsetup
-
-startsetup
-com:nop:
-typ::
-stopsetup
-
-startsetup
-com:defineregister:
-typ:val/val/:
-val:*singular name::
-val:*plural name::
-stopsetup
-
-startsetup
-com:setupregister:
-typ:val/val/vars/:
-val:*singular name::
-val:*name::
-var:n:*number::
-var:balance:yes,no::
-var:align:yes,no::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:pagestyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:textstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:indicator:yes,no::
-var:coupling:yes,no::
-var:*sectionnummer:yes,no::
-var:criterium:*section,local,all::
-var:distance:*dimension::
-var:symbol:1,2,...,n,a,...,none::
-var:interaction:pagenumber,text::
-var:expansion:yes,command,no::
-var:referencing:on,off::
-var:command:*\command#1::
-var:location:left,middle,right::
-var:maxwidth:*dimension::
-var:unknownreference:empty,none::
-stopsetup
-
-startsetup
-com:<<register>>:
-typ:val/idxs/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:start<<register>>:
-typ:val/idxs/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:writetoregister:
-typ:val/val/idxs/:
-val:*singular name::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:coupled<<register>>:
-typ:val/idx/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:coupleregister:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:see<<register>>:
-typ:val/arg/idxs/:
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:complete<<register>>:
-typ:vars/:
-ivr:setupregister::
-stopsetup
-
-startsetup
-com:place<<register>>:
-typ:vars/:
-ivr:setupregister::
-stopsetup
-
-startsetup
-com:definesynonyms:
-typ:val/val/val/val/:
-val:*singular name::
-val:*plural name::
-val:*command::
-val:*command::
-stopsetup
-
-startsetup
-com:setupsynonyms:
-typ:val/vars/:
-val:*name::
-var:textstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:synonymstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:location:left,right,top,serried, inmargin,inleft,inright::
-var:width:*dimension::
-var:state:start,stop::
-var:criterium:all,used::
-var:conversion:yes,no::
-var:expansion:yes,command,no::
-var:command:*\command#1#2#3::
-stopsetup
-
-startsetup
-com:<<synonym>>:
-typ:val/arg/arg/:
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:completelistof<<synonyms>>:
-typ::
-stopsetup
-
-startsetup
-com:placelistof<<synonyms>>:
-typ::
-stopsetup
-
-startsetup
-com:load<<synonyms>>:
-typ::
-stopsetup
-
-startsetup
-com:definesorting:
-typ:val/val/val/:
-val:*singular name::
-val:*plural name::
-val:*command::
-stopsetup
-
-startsetup
-com:setupsorting:
-typ:val/vars/:
-val:*name::
-var:before:*command::
-var:after:*command::
-var:command:*\command#1::
-var:state:start,stop::
-var:criterium:all,used::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:expansion:yes,command,no::
-stopsetup
-
-startsetup
-com:<<sort>>:
-typ:val/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:completelistof<<sorts>>:
-typ::
-stopsetup
-
-startsetup
-com:placelistof<<sorts>>:
-typ::
-stopsetup
-
-startsetup
-com:load<<sorts>>:
-typ::
-stopsetup
-
-startsetup
-com:definemakeup:
-typ:val/vars/:
-val:*name::
-ivr:setupmakeup::
-stopsetup
-
-startsetup
-com:startmakeup:
-typ:val/vars/stp/:
-val:*name::
-ivr:setupmakeup::
-stopsetup
-
-startsetup
-com:setupmakeup:
-typ:val/vars/:
-val:*name::
-var:width:*dimension::
-var:height:*dimension::
-var:voffset:*dimension::
-var:hoffset:*dimension::
-var:page:left,yes,right::
-var:commands:*command::
-var:doublesided:yes,no,empty::
-var:headerstate:normal,stop,start,empty,none,nomarking::
-var:footerstate:normal,stop,start,empty,none,nomarking::
-var:textstate:normal,stop,start,empty,none,nomarking::
-var:topstate:stop,start::
-var:bottomstate:stop,start::
-stopsetup
-
-startsetup
-com:start<<name>>makeup:
-typ:stp/:
-stopsetup
-
-startsetup
-com:version:
-typ:val/:
-val:final,concept,temporary:final:
-stopsetup
-
-startsetup
-com:currentdate:
-typ:vals/:
-val:day,month,MONTH,weekday,WEEKDAY,year, dd,mm,jj,yy,d,m,j,y,referral:day,month,year:
-stopsetup
-
-startsetup
-com:date:
-typ:vars/vals/:
-var:d:*number::
-var:m:*number::
-var:y:*number::
-ivl:currentdate::
-stopsetup
-
-startsetup
-com:referraldate:
-typ::
-stopsetup
-
-startsetup
-com:indenting:
-typ:vals/:
-val:never,not,no,yes,always,first,next:never:
-stopsetup
-
-startsetup
-com:noindenting:
-typ::
-stopsetup
-
-startsetup
-com:blank:
-typ:vals/:
-val:repeat/small,repeat/medium,repeat/big, nowhite,back,white,disable,force,reset, line,halfline,formula,fixed,flexible:big:
-stopsetup
-
-startsetup
-com:startpacked:
-typ:val/stp/:
-val:blank::
-stopsetup
-
-startsetup
-com:startunpacked:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startlinecorrection:
-typ:stp/:
-stopsetup
-
-startsetup
-com:correctwhitespace:
-typ:arg/:
-stopsetup
-
-startsetup
-com:startpostponing:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startlocal:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startnarrower:
-typ:vals/stp/:
-val:repeat/left,repeat/middle,repeat/right:middle:
-stopsetup
-
-startsetup
-com:starthiding:
-typ:stp/:
-stopsetup
-
-startsetup
-com:setupalign:
-typ:val/:
-val:width,left,right,middle,inner,outer, wide,broad,height,bottom,line,reset::
-stopsetup
-
-startsetup
-com:startalignment:
-typ:stp/val/:
-ivr:setupalign::
-stopsetup
-
-startsetup
-com:setupspacing:
-typ:val/:
-val:broad,packed::
-stopsetup
-
-startsetup
-com:setuptolerance:
-typ:vals/:
-val:horizontal,vertical, stretch,verystrict,strict,tolerant,verytolerant:verystrict:
-stopsetup
-
-startsetup
-com:pagetype:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:processpage:
-typ:vals/val/:
-val:*name::
-val:yes,no:yes:
-stopsetup
-
-startsetup
-com:couplepage:
-typ:vals/vars/:
-val:*name::
-var:option:doublesided::
-var:before:*command::
-var:after:*command::
-stopsetup
-
-startsetup
-com:position:
-typ:poss/arg/:
-val:*number::
-val:*number::
-val:*text::
-stopsetup
-
-startsetup
-com:setupscreens:
-typ:vars/:
-var:method:dot,rule,external::
-var:resolution:*number::
-var:factor:*number::
-var:screen:*number::
-stopsetup
-
-startsetup
-com:setupbackgrounds:
-typ:val/vals/vars/:
-val:top,header,text,footer,bottom, page,leftpage,rightpage::
-val:leftedge,leftmargin,text,rightmargin,rightedge::
-var:state:start,stop,repeat::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:startbuffer:
-typ:val/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:getbuffer:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:typebuffer:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:definebuffer:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:setupbuffer:
-typ:val/vars/:
-val:*name::
-var:before:*command::
-var:after:*command::
-stopsetup
-
-startsetup
-com:defineblock:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:nomoreblocks:
-typ::
-stopsetup
-
-startsetup
-com:hideblocks:
-typ:vals/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:keepblocks:
-typ:vals/vals/:
-val:*name::
-val:all,*name::
-stopsetup
-
-startsetup
-com:useblocks:
-typ:vals/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:processblocks:
-typ:vals/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:selectblocks:
-typ:vals/vals/var/:
-val:*name::
-val:*name::
-var:criterium:all,*section::
-stopsetup
-
-startsetup
-com:setupblock:
-typ:vals/vars/:
-val:*name::
-var:before:*command::
-var:after:*command::
-var:inner:*command::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:file:*file::
-stopsetup
-
-startsetup
-com:startformula:
-typ:stp/:
-val:*formula::
-stopsetup
-
-startsetup
-com:mathematics:
-typ:arg/:
-val:*formula::
-stopsetup
-
-startsetup
-com:placeformula:
-typ:refs/arg/dis/:
-val:*text::
-val:*formula::
-stopsetup
-
-startsetup
-com:placesubformula:
-typ:refs/arg/dis/:
-val:*text::
-val:*formula::
-stopsetup
-
-startsetup
-com:place<<block>>:
-typ:val/refs/arg/arg/:
-val:left,right,here,top,bottom, inleft,inright,inmargin,margin, page,opposite,always,force,tall:here:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:reserve<<block>>:
-typ:vars/val/refs/arg/:
-var:height:*dimension::
-var:width:*dimension::
-var:frame:on,off::
-val:left,right,here,top,bottom, inleft,inright,inmargin,margin, page,opposite,always,force:here:
-val:*text::
-stopsetup
-
-startsetup
-com:definefloat:
-typ:val/val/:
-val:*singular name::
-val:*plural name::
-stopsetup
-
-startsetup
-com:setupfloat:
-typ:val/vars/:
-val:*name::
-var:height:*dimension::
-var:width:*dimension::
-var:pageboundaries:*list::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:start<<block>>text:
-typ:val/ref/arg/arg/stp/:
-val:left,right,high,middle,low,offset,tall::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:placelistof<<blocks>>:
-typ::
-stopsetup
-
-startsetup
-com:completelistof<<blocks>>:
-typ::
-stopsetup
-
-startsetup
-com:label:
-typ:val/arg/arg/arg/arg/arg/arg/:
-val:narrow,wide:wide:
-val:*text::
-val:*text::
-val:*text::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:referral:
-typ:vars/:
-var:bet:*text::
-var:ken:*text::
-var:dat:*text::
-var:from:*text::
-var:to:*text::
-var:ref:*text::
-stopsetup
-
-startsetup
-com:selectpaper:
-typ:vars/:
-var:family:1,2::
-stopsetup
-
-startsetup
-com:couplepaper:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:chem:
-typ:arg/arg/arg/:
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:fraction:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:periods:
-typ:val/:
-val:*number::
-stopsetup
-
-startsetup
-com:domicile:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:items:
-typ:vars/args/:
-ivr:setupitems::
-stopsetup
-
-startsetup
-com:setupitems:
-typ:vars/:
-var:location:left,right,inmargin,top,bottom::
-var:symbol:1,2,...,n,a,...,*text,none::
-var:width:*dimension::
-var:n:*number,unknown::
-var:before:*command::
-var:inbetween:*command::
-var:align:left,right,middle,margin::
-var:after:*command::
-stopsetup
-
-startsetup
-com:startquotation:
-typ:vals/stp/:
-val:repeat/left,repeat/middle,repeat/right:middle:
-stopsetup
-
-startsetup
-com:quotation:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:quote:
-typ:arg/:
-val:*text::
-stopsetup
-
-startsetup
-com:setupquote:
-typ:vars/:
-var:before:*command::
-var:after:*command::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-stopsetup
-
-startsetup
-com:adding:
-typ:val/:
-val:small,medium,big:medium:
-stopsetup
-
-startsetup
-com:defineparagraphs:
-typ:val/vars/:
-val:*name::
-var:n:*number::
-var:rule:on,off::
-var:height:fit,*dimension::
-var:before:*command::
-var:after:*command::
-var:inner:*command::
-var:distance:*dimension::
-var:tolerance:verystrict,strict,tolerant,verytolerant,stretch::
-var:align:left,right,middle::
-stopsetup
-
-startsetup
-com:<<paragraphs>>:
-typ::
-stopsetup
-
-startsetup
-com:start<<paragraphs>>:
-typ:stp/:
-stopsetup
-
-startsetup
-com:setupparagraphs:
-typ:val/val/vars/:
-val:*name::
-val:*number,each::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:width:*dimension::
-var:height:*dimension::
-var:align:left,right,middle,width::
-var:tolerance:verystrict,strict,tolerant,verytolerant,stretch::
-var:distance:*dimension::
-var:before:*command::
-var:after:*command::
-var:inner:*command::
-var:command:*command::
-var:rule:on,off::
-stopsetup
-
-startsetup
-com:setuptab:
-typ:vars/:
-var:sample:*text::
-var:width:*dimension::
-var:headstyle:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:location:left,right::
-stopsetup
-
-startsetup
-com:tab:
-typ:arg/nop/par/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:startdocument:
-typ:val/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:letters:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:labels:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:setupcorrespondence:
-typ:vals/:
-val:formeel,informeel,rekening,ls, high,middle,low:formeel,low:
-stopsetup
-
-startsetup
-com:setupsheets:
-typ:vars/:
-var:alternative:*number::
-var:text:*text::
-var:size:small,medium,big::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:number:*number,joinedup::
-stopsetup
-
-startsetup
-com:sheet:
-typ:val/:
-val:*text::
-stopsetup
-
-startsetup
-com:setupstickers:
-typ:vars/:
-var:alternative:a::
-var:n:*number,all::
-var:location:margin,left,right,middle::
-stopsetup
-
-startsetup
-com:definetabulate:
-typ:val/val/val/:
-val:*name::
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:starttabulate:
-typ:val/vars/stp/:
-val:*text::
-ivr:useexternalfigure::
-stopsetup
-
-startsetup
-com:setuptabulate:
-typ:val/vars/:
-val:*name::
-var:unit:*dimension::
-var:indenting:yes,no::
-var:before:*command::
-var:after:*command::
-var:inner:*command::
-var:EQ:*text::
-var:rulecolor:*name::
-var:align:left,middle,right,normal::
-var:rulethickness:*dimension::
-var:distance:blank,depth,*dimension,small,medium,big,none::
-stopsetup
-
-startsetup
-com:setuptables:
-typ:vars/:
-var:distance:small,medium,big::
-var:bodyfont:5pt,...,12pt,small,big::
-var:HL:*number,small,medium,big,none::
-var:VL:*number,small,medium,big,none::
-var:depth:*number,strut::
-var:height:*number,strut::
-var:rulethickness:*dimension::
-var:rulecolor:*name::
-var:align:right,middle,left,normal::
-var:commands:*command::
-var:align:left,middle,right,normal::
-var:background:screen,color,none::
-var:backgroundscreen:*number::
-var:backgroundcolor:*name::
-stopsetup
-
-startsetup
-com:starttable:
-typ:val/stp/:
-val:*text,*name::
-stopsetup
-
-startsetup
-com:starttables:
-typ:val/stp/:
-val:*text,*name::
-stopsetup
-
-startsetup
-com:definetabletemplate:
-typ:val/val/val/val/:
-val:*name::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:useexternalfiles:
-typ:val/vars/:
-val:*name::
-var:bodyfont:5pt,...,12pt,small,big::
-var:file:*file::
-stopsetup
-
-startsetup
-com:useexternalfile:
-typ:val/val/val/vars/:
-val:*name::
-val:*name::
-val:*file::
-var:bodyfont:5pt,...,12pt,small,big::
-stopsetup
-
-startsetup
-com:useexternalfigure:
-typ:val/val/vars/:
-val:*name::
-val:*file::
-var:scale:*number::
-var:factor:max,fit,broad::
-var:wfactor:*number,max,broad,fit::
-var:hfactor:*number,max,broad,fit::
-var:width:*dimension::
-var:height:*dimension::
-var:frame:on,off::
-var:preset:yes,no::
-var:display:*file::
-var:preview:yes,no::
-var:repeat:yes,no::
-var:object:yes,no::
-var:type:eps,mps,pdf,tif,png,jpg,mov,tex::
-var:method:eps,mps,pdf,tif,png,jpg,mov,tex::
-stopsetup
-
-startsetup
-com:externalfigure:
-typ:val/vars/:
-val:*file::
-ivr:useexternalfigure::
-stopsetup
-
-startsetup
-com:setupexternalfigures:
-typ:var/:
-var:option:frame,empty,test::
-var:object:yes,no::
-var:frames:on,off::
-var:ymax:*number::
-var:xmax:*number::
-var:directory:*text::
-var:location:local,global::
-stopsetup
-
-startsetup
-com:showexternalfigures:
-typ:vars/:
-var:alternative:a,b,c::
-stopsetup
-
-startsetup
-com:name:
-typ:arg/:
-val:*name::
-stopsetup
-
-startsetup
-com:startlegend:
-typ:val/tex/{leg}nop/sep/nop/sep/nop/sep/tex/{leg}stp/:
-val:two::
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:startfact:
-typ:tex/{geg}nop/sep/nop/sep/nop/sep/tex/{geg}stp/:
-val:*text::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:rotate:
-typ:vars/arg/:
-ivr:setuprotate::
-stopsetup
-
-startsetup
-com:setuprotate:
-typ:vars/:
-var:rotation:*number::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:mirror:
-typ:arg/:
-stopsetup
-
-startsetup
-com:scale:
-typ:vars/arg/:
-var:sx:*number::
-var:sy:*number::
-stopsetup
-
-startsetup
-com:setupcombinations:
-typ:vars/:
-var:before:commando::
-var:inbetween:commando::
-var:after:commando::
-var:distance:*dimension::
-var:height:*dimension,fit::
-var:width:*dimension,fit::
-stopsetup
-
-startsetup
-com:startcombination:
-typ:val/stp/:
-val:*n*m::
-stopsetup
-
-startsetup
-com:placesidebyside:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:placeontopofeachother:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:startoverlay:
-typ:arg/arg/stp/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:startoverview:
-typ:vals/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:setupinteractionscreen:
-typ:vars/:
-var:width:*dimension,fit,max::
-var:height:*dimension,fit,max::
-var:backspace:*dimension::
-var:topspace:*dimension::
-var:horoffset:*dimension::
-var:veroffset:*dimension::
-var:option:max,bookmark::
-var:delay:*number,none::
-stopsetup
-
-startsetup
-com:screen:
-typ::
-stopsetup
-
-startsetup
-com:setuppagetransitions:
-typ:vals/:
-val:reset, *number::
-stopsetup
-
-startsetup
-com:setupinteraction:
-typ:vars/:
-var:state:start,stop::
-var:menu:on,off::
-var:page:yes,no::
-var:click:yes,no::
-var:display:new::
-var:openaction:*reference::
-var:closeaction:*reference::
-var:calculate:*name::
-var:strut:yes,no::
-var:width:*dimension::
-var:height:*dimension::
-var:depth:*dimension::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...*command::
-var:color:*name::
-var:contrastcolor:*name::
-var:symbolset:*name::
-var:title:*text::
-var:subtitle:*text::
-var:author:*text::
-var:date:*text::
-stopsetup
-
-startsetup
-com:setupinteractionmenu:
-typ:vals/vars/dests/:
-val:left,right,top,bottom,*name::
-var:before:*command::
-var:after:*command::
-var:inbetween:*command::
-var:left:*command::
-var:right:*command::
-var:middle:*command::
-var:state:start,stop,none::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...*command::
-var:color:*name::
-var:distance:overlay,*dimension::
-var:samepage:yes,empty,no,none::
-var:unknownreference:yes,empty,no,none::
-var:leftoffset:*dimension::
-var:rightoffset:*dimension::
-var:topoffset:*dimension::
-var:bottomoffset:*dimension::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:defineinteractionmenu:
-typ:val/val/vars/:
-val:left,right,top,bottom,*name::
-val:left,right,top,bottom,*name::
-ivr:setupinteractionmenu::
-stopsetup
-
-startsetup
-com:startinteractionmenu:
-typ:val/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:disableinteractionmenu:
-typ:val/refs/:
-val:left,right,top,bottom,*name::
-stopsetup
-
-startsetup
-com:useexternaldocument:
-typ:val/val/val/:
-val:*name::
-val:file::
-val:*text::
-stopsetup
-
-startsetup
-com:useURL:
-typ:val/val/val/val/:
-val:*name::
-val:*text::
-val:file::
-val:*text::
-stopsetup
-
-startsetup
-com:coupledocument:
-typ:val/val/val/:
-val:*name::
-val:file::
-val:*name::
-val:*text::
-stopsetup
-
-startsetup
-com:from:
-typ:ref/:
-val:*text::
-stopsetup
-
-startsetup
-com:interactionbar:
-typ:vars/:
-ivr:setupinteractionbar::
-stopsetup
-
-startsetup
-com:interactionbuttons:
-typ:vars/vals/:
-ivr:setupinteractionbar::
-val:*name::
-stopsetup
-
-startsetup
-com:setupinteractionbar:
-typ:vars/:
-var:state:start,stop::
-var:alternative:a,b,c,d,e,f,g::
-var:symbol:yes,no::
-var:width:*dimension,hoogte,fit::
-var:height:*dimension,hoogte,fit::
-var:depth:*dimension::
-var:color:*name::
-var:step:*number,small,medium,big::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:synchronize:
-typ::
-stopsetup
-
-startsetup
-com:startsynchronization:
-typ:stp/:
-stopsetup
-
-startsetup
-com:setupsynchronizationbar:
-typ:vars/:
-var:alternative:page,local::
-var:width:*dimension,hoogte,fit::
-var:height:*dimension::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-var:color:*name::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:synchronizationbar:
-typ:val/vars/:
-val:*name::
-var:alternative:page,local::
-ivr:setupsynchronizationbar::
-stopsetup
-
-startsetup
-com:setupsynchronization:
-typ:vars/:
-var:state:start,stop::
-stopsetup
-
-startsetup
-com:defineprofile:
-typ:vals/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:setupprofiles:
-typ:vars/:
-var:option:test::
-stopsetup
-
-startsetup
-com:startprofile:
-typ:vals/stp/:
-val:*name::
-stopsetup
-
-startsetup
-com:followprofile:
-typ:arg/val/:
-val:*text::
-val:*name::
-stopsetup
-
-startsetup
-com:placebookmarks:
-typ:vals/vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:bookmark:
-typ:val/arg/:
-val:*name::
-stopsetup
-
-startsetup
-com:startversion:
-typ:vals/stp/:
-val:*number::
-stopsetup
-
-startsetup
-com:setupversions:
-typ:vars/:
-var:number:*number::
-var:style:normal,bold,slanted,boldslanted,type,cap,small...,*command::
-stopsetup
-
-startsetup
-com:markversion:
-typ::
-stopsetup
-
-startsetup
-com:selectversion:
-typ::
-stopsetup
-
-startsetup
-com:defineversion:
-typ:val/vals/:
-val:*name::
-val:*number::
-stopsetup
-
-startsetup
-com:followversion:
-typ:arg/val/:
-val:*text::
-val:*name::
-stopsetup
-
-startsetup
-com:followprofileversion:
-typ:arg/val/val/:
-val:*text::
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:defineprogram:
-typ:val/val/val/:
-val:*name::
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:setupprograms:
-typ:vars/:
-var:directory:*text::
-stopsetup
-
-startsetup
-com:program:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:startfigure:
-typ:val/val/vars/stp/:
-val:*name::
-val:*file::
-var:factor:*number::
-var:frame:on,off::
-stopsetup
-
-startsetup
-com:referring/figure:
-typ:poss/poss/val/:
-val:*number::
-val:*number::
-val:*number::
-val:*number::
-val:*text::
-stopsetup
-
-startsetup
-com:marking/figure:
-typ:poss/poss/val/:
-val:*number::
-val:*number::
-val:*number::
-val:*number::
-val:*text::
-stopsetup
-
-startsetup
-com:remark:
-typ:poss/poss/vars/arg/:
-val:*number::
-val:*number::
-val:*number::
-val:*number::
-ivr:setupframed::
-val:*text::
-stopsetup
-
-startsetup
-com:goto:
-typ:arg/arg/refs/:
-val:*text::
-stopsetup
-
-startsetup
-com:gotobox:
-typ:arg/refs/:
-val:*text::
-stopsetup
-
-startsetup
-com:button:
-typ:vars/arg/refs/:
-ivr:setupbuttons::
-val:*text::
-stopsetup
-
-startsetup
-com:setupbuttons:
-typ:vars/:
-var:state:start,stop::
-ivr:setupframed::
-stopsetup
-
-startsetup
-com:menubutton:
-typ:val/vars/arg/refs/:
-ivr:setupframed::
-val:*text::
-stopsetup
-
-startsetup
-com:setupcomment:
-typ:vars/:
-var:width:*dimension::
-var:height:*dimension::
-var:color:*name::
-var:title:*text::
-var:space:yes,no::
-var:symbol:normal,New,Balloon,Addition,Help,Paragraph,Key::
-stopsetup
-
-startsetup
-com:startcomment:
-typ:val/vars/stp/:
-val:*name::
-ivr:setupcomment::
-stopsetup
-
-startsetup
-com:comment:
-typ:val/vars/arg/:
-val:*name::
-ivr:setupcomment::
-stopsetup
-
-startsetup
-com:definefield:
-typ:val/val/val/vals/val/:
-val:*name::
-val:*name:radio,check,push,line,text,popup,choice,combo:
-val:*name::
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:definesubfield:
-typ:val/val/vals/:
-val:*name::
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:copyfield:
-typ:val/vals/:
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:clonefield:
-typ:val/vals/val/vals/:
-val:*name::
-val:*name::
-val:*name::
-val:*name::
-stopsetup
-
-startsetup
-com:field:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:fitfield:
-typ:val/:
-val:*name::
-stopsetup
-
-startsetup
-com:fillinfield:
-typ:val/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:tooltip:
-typ:val/arg/arg/:
-val:left,right,middle::
-val:*text::
-stopsetup
-
-startsetup
-com:showfields:
-typ:vals/:
-val:*name::
-stopsetup
-
-startsetup
-com:logfields:
-typ::
-stopsetup
-
-startsetup
-com:setupfield:
-typ:val/vals/vars/vars/vars/:
-val:*name::
-val:label,horizontal,vertical,frame::
-ivr:framed::
-ivr:setupfields::
-stopsetup
-
-startsetup
-com:setupfields:
-typ:vals/val/vars/vars/vars/:
-val:*name::
-val:reset,label,horizontal,vertical,frame::
-ivr:framed::
-var:n:*number::
-var:distance:*dimension::
-var:before:*command::
-var:after:*command::
-var:inbetween:*command::
-var:color:*name::
-var:style:normal,bold,slanted,boldslanted,type::
-var:align:left,middle,right::
-var:option:readonly,required,protected,sorted, unavailable, hidden,printable::
-var:clickin:*reference::
-var:clickout:*reference::
-var:regionin:*reference::
-var:regionout:*reference::
-var:afterkey:*reference::
-var:format:*reference::
-var:validate:*reference::
-var:calculate:*reference::
-var:fieldoffset:*dimension::
-var:fieldframecolor:*name::
-var:fieldbackgroundcolor:*name::
-stopsetup
-
-startsetup
-com:definefieldstack:
-typ:val/vals/vars/:
-val:*name::
-val:*name::
-ivr:setupfields::
-stopsetup
-
-startsetup
-com:fieldstack:
-typ:val/vals/vars/:
-val:*name::
-val:*name::
-ivr:setupfields::
-stopsetup
-
-startsetup
-com:clip:
-typ:vars/arg/:
-ivr:setupclipping::
-stopsetup
-
-startsetup
-com:setupclipping:
-typ:vars/:
-var:nx:*number::
-var:ny:*number::
-var:x:*number::
-var:y:*number::
-var:width:*dimension::
-var:height:*dimension::
-var:hoffset:*dimension::
-var:voffset:*dimension::
-var:mp:*name::
-stopsetup
-
-startsetup
-com:placelegend:
-typ:arg/arg/:
-val:*text::
-val:*text::
-stopsetup
-
-startsetup
-com:setuplegend:
-typ:vars/:
-var:n:*number::
-var:distance:*dimension::
-var:inbetween:*command::
-var:width:*dimension::
-var:height:*dimension::
-var:location:right,bottom::
-var:bodyfont:5pt,...,12pt,small,big::
-stopsetup
-
diff --git a/context/data/cont-nl.tws b/context/data/cont-nl.tws
deleted file mode 100644
index c86cdc315..000000000
--- a/context/data/cont-nl.tws
+++ /dev/null
@@ -1,3878 +0,0 @@
-startsetup
-com:installeertaal:
-typ:val/vars/:
-val:*naam::
-var:spatiering:opelkaar,ruim::
-var:lefthyphenmin:*maat::
-var:righthyphenmin:*maat::
-var:status:start,stop::
-var:linkerzin:*commando::
-var:rechterzin:*commando::
-var:linkersubzin:*commando::
-var:rechtersubzin:*commando::
-var:linkerciteer:*commando::
-var:rechterciteer:*commando::
-var:linkercitaat:*commando::
-var:rechtercitaat:*commando::
-var:default:*naam::
-stopsetup
-
-startsetup
-com:steltaalin:
-typ:val/vars/:
-ivr:installeertaal::
-stopsetup
-
-startsetup
-com:taal:
-typ:val/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-stopsetup
-
-startsetup
-com:hoofdtaal:
-typ:val/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-stopsetup
-
-startsetup
-com:vertaal:
-typ:vars/:
-var:*naam:*tekst::
-stopsetup
-
-startsetup
-com:usecodering:
-typ:vals/:
-val:*naam::
-stopsetup
-
-startsetup
-com:gebruikspecials:
-typ:vals/:
-val:reset,*naam::
-stopsetup
-
-startsetup
-com:definieeruitvoer:
-typ:val/vals/:
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:steluitvoerin:
-typ:vals/:
-val:*naam::
-stopsetup
-
-startsetup
-com:definieerkorpsomgeving:
-typ:val/vars/:
-val:5pt,...,12pt,default::
-var:text:*maat::
-var:script:*maat::
-var:scriptscript:*maat::
-var:x:*maat::
-var:xx:*maat::
-var:klein:*maat::
-var:groot:*maat::
-stopsetup
-
-startsetup
-com:stelkorpsomgevingin:
-typ:val/vars/:
-ivl:stelkorpsin::
-ivr:stelkorpsin::
-stopsetup
-
-startsetup
-com:toonkorpsomgeving:
-typ:vals/:
-ivl:stelkorpsin::
-stopsetup
-
-startsetup
-com:definieerkorps:
-typ:vals/val/vars/:
-val:5pt,...,12pt,default::
-val:rm,ss,tt,mm,hw,cg::
-var:tf:*file::
-var:bf:*file::
-var:sl:*file::
-var:it:*file::
-var:bs:*file::
-var:bi:*file::
-var:sc:*file::
-var:ex:*file::
-var:mi:*file::
-var:sy:*file::
-var:ma:*file::
-var:mb:*file::
-var:mc:*file::
-stopsetup
-
-startsetup
-com:toonkorps:
-typ:vals/:
-ivl:stelkorpsin::
-stopsetup
-
-startsetup
-com:stelkorpsin:
-typ:vals/:
-val:*naam, serif,regular,romaan, sans,support,schreefloos, mono,type,teletype, handschrift,calligrafie, 5pt,...,12pt:sau,ibm,12pt,serif:
-stopsetup
-
-startsetup
-com:switchnaarkorps:
-typ:vals/:
-val:5pt,...,12pt,klein,groot,globaal::
-stopsetup
-
-startsetup
-com:definieerfont:
-typ:val/val/:
-val:*naam::
-val:*file::
-stopsetup
-
-startsetup
-com:stelkleurin:
-typ:val/:
-val:*naam:rgb:
-stopsetup
-
-startsetup
-com:stelkleurenin:
-typ:vars/:
-var:status:start,stop,globaal,lokaal::
-var:conversie:ja,nee,altijd::
-var:reductie:ja,nee::
-var:rgb:ja,nee::
-var:cmyk:ja,nee::
-stopsetup
-
-startsetup
-com:definieerkleur:
-typ:val/vars/:
-val:*naam::
-var:r:*tekst::
-var:g:*tekst::
-var:b:*tekst::
-var:c:*tekst::
-var:m:*tekst::
-var:y:*tekst::
-var:k:*tekst::
-var:s:*tekst::
-stopsetup
-
-startsetup
-com:startkleur:
-typ:val/stp/:
-val:*naam::
-val:*tekst::
-stopsetup
-
-startsetup
-com:kleur:
-typ:val/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:grijskleur:
-typ:val/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:toonkleur:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:definieerpalet:
-typ:val/vars/:
-val:*naam::
-var:*naam:*naam::
-stopsetup
-
-startsetup
-com:stelpaletin:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:definieerkleurgroep:
-typ:val/val/vals/:
-val:*naam::
-val:rgb,cmyk,grijs,s:rgb:
-val:trips/::
-stopsetup
-
-startsetup
-com:toonpalet:
-typ:val/vals/:
-val:*naam::
-val:horizontaal,vertikaal,naam,waarde::
-stopsetup
-
-startsetup
-com:toonkleurgroep:
-typ:val/vals/:
-val:*naam::
-val:horizontaal,vertikaal,naam,waarde,nummer::
-stopsetup
-
-startsetup
-com:vergelijkpalet:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:vergelijkkleurgroep:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:toonopmaak:
-typ::
-stopsetup
-
-startsetup
-com:steltypein:
-typ:var/:
-var:spatie:aan,uit::
-var:optie:schuin,normaal,geen::
-var:kleur:*naam::
-stopsetup
-
-startsetup
-com:type:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:typ:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:tex:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:arg:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:definieertypen:
-typ:val/vars/:
-val:file,typen,*naam::
-ivr:steltypenin::
-stopsetup
-
-startsetup
-com:steltypenin:
-typ:val/vars/:
-val:file,typen,*naam::
-var:spatie:aan,uit::
-var:pagina:ja,nee::
-var:optie:schuin,normaal,commandos,kleur,geen::
-var:tekst:ja,nee::
-var:icommando:*commando::
-var:vcommando:*commando::
-var:ccommando:*commando::
-var:voor:*commando::
-var:na:*commando::
-var:marge:*maat,standaard::
-var:evenmarge:*maat::
-var:onevenmarge:*maat::
-var:blanko:*maat,klein,middel,groot,standaard,halveregel,regel::
-var:escape:*::
-var:springvolgendein:ja,nee::
-var:palet:*naam::
-var:kleur:*naam::
-stopsetup
-
-startsetup
-com:starttypen:
-typ:stp/:
-stopsetup
-
-startsetup
-com:typefile:
-typ:arg/:
-val:*file::
-stopsetup
-
-startsetup
-com:stelvoetnotenin:
-typ:vars/:
-var:conversie:cijfers,letters,Letters,romeins,Romeins::
-var:wijze:pertekst,per*sectie::
-var:plaats:pagina,tekst,kolommen,hoog::
-var:lijn:aan,uit::
-var:voor:*commando::
-var:na:*commando::
-var:breedte:*maat::
-var:hoogte:*maat::
-var:korps:5pt,...,12pt,klein,groot::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:afstand:*maat::
-var:kolomafstand:*maat::
-var:margeafstand:*maat::
-var:n:*getal::
-var:nummercommando:*\commando#1::
-ivr:omlijnd::
-stopsetup
-
-startsetup
-com:stelvoetnootdefinitiein:
-typ:vars/:
-ivr:doordefinieren::
-stopsetup
-
-startsetup
-com:voetnoot:
-typ:ref/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:noot:
-typ:ref/:
-stopsetup
-
-startsetup
-com:startlokalevoetnoten:
-typ:stp/:
-ivr:stelvoetnotenin::
-stopsetup
-
-startsetup
-com:plaatslokalevoetnoten:
-typ:vars/:
-ivr:stelvoetnotenin::
-stopsetup
-
-startsetup
-com:plaatsvoetnoten:
-typ:vars/:
-ivr:stelvoetnotenin::
-stopsetup
-
-startsetup
-com:stelonderstrepenin:
-typ:vars/:
-var:variant:a,b,c::
-var:lijndikte:*maat::
-stopsetup
-
-startsetup
-com:onderstreep:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:onderstrepen:
-typ:wrds/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:overstreep:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:overstrepen:
-typ:wrds/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:doorstreep:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:doorstrepen:
-typ:wrds/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:romeins:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:Romeins:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:cijfers:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:letter:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:Letter:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:letters:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:Letters:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:mediaeval:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:maand:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:MAAND:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:weekdag:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:WEEKDAG:
-typ:arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:stelkapitalenin:
-typ:vars/:
-var:titel:ja,nee::
-var:sc:ja,nee::
-stopsetup
-
-startsetup
-com:kap:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:nokap:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:KAP:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:Kap:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:Kaps:
-typ:wrds/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:WOORD:
-typ:wrd/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:WOORDEN:
-typ:wrds/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:Woord:
-typ:wrd/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:Woorden:
-typ:wrds/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:uitgerekt:
-typ:wrd/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:definieersymbool:
-typ:val/val/:
-val:*naam::
-val:*tekst::
-stopsetup
-
-startsetup
-com:definieerfiguursymbool:
-typ:val/val/vars/:
-val:*naam::
-val:*tekst::
-ivr:externfiguur::
-stopsetup
-
-startsetup
-com:symbool:
-typ:val/val/:
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:startsymboolset:
-typ:val/stp/:
-val:*naam::
-stopsetup
-
-startsetup
-com:stelsymboolsetin:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:gebruiksymbolen:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:toonsymboolset:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:definieerconversie:
-typ:val/val/:
-val:*naam::
-val:*commando,*tekst::
-stopsetup
-
-startsetup
-com:converteernummer:
-typ:arg/arg/:
-val:*naam::
-val:*getal::
-stopsetup
-
-startsetup
-com:stelkoptekstin:
-typ:val/var/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-var:*naam:*tekst::
-stopsetup
-
-startsetup
-com:stellabeltekstin:
-typ:val/var/:
-val:nl,fr,en,uk,de,sp,cz,..:nl:
-var:*naam:*tekst::
-stopsetup
-
-startsetup
-com:koptekst:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:labeltekst:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:stelkantlijnin:
-typ:var/:
-var:niveau:*getal::
-var:dikte:*maat::
-stopsetup
-
-startsetup
-com:startkantlijn:
-typ:val/stp/:
-val:*getal::
-stopsetup
-
-startsetup
-com:kantlijn:
-typ:val/arg/:
-val:*getal::
-stopsetup
-
-startsetup
-com:stellijndiktein:
-typ:val/:
-val:*maat::
-stopsetup
-
-startsetup
-com:stelomlijndin:
-typ:vars/:
-var:hoogte:passend,ruim,*maat::
-var:breedte:passend,ruim,*maat::
-var:offset:geen,overlay,*maat::
-var:plaats:laag,diepte::
-var:optie:geen,leeg::
-var:strut:ja,nee::
-var:uitlijnen:nee,links,rechts,midden,normaal::
-var:onder:*commando::
-var:boven:*commando::
-var:kader:aan,uit,overlay::
-var:bovenkader:aan,uit::
-var:onderkader:aan,uit::
-var:linkerkader:aan,uit::
-var:rechterkader:aan,uit::
-var:kaderoffset:*maat::
-var:kaderdiepte:*maat::
-var:kaderhoek:rond,recht::
-var:kaderstraal:*maat::
-var:kaderkleur:*naam::
-var:achtergrond:raster,kleur,geen,voorgrond,*naam::
-var:achtergrondraster:*getal::
-var:achtergrondkleur:*naam::
-var:achtergrondoffset:*maat::
-var:achtergronddiepte:*maat::
-var:achtergrondhoek:rond,recht::
-var:achtergrondstraal:*maat::
-var:diepte:*maat::
-var:hoek:rond,recht::
-var:straal:*maat::
-var:leeg:ja,nee::
-val:*tekst::
-stopsetup
-
-startsetup
-com:omlijnd:
-typ:vars/arg/:
-ivr:stelomlijndin::
-val:*tekst::
-stopsetup
-
-startsetup
-com:inlijnd:
-typ:vars/arg/:
-ivr:stelomlijndin::
-val:*tekst::
-stopsetup
-
-startsetup
-com:dunnelijnen:
-typ:var/:
-ivr:steldunnelijnenin::
-stopsetup
-
-startsetup
-com:steldunnelijnenin:
-typ:var/:
-var:afstand:klein,middel,groot::
-var:n:*getal::
-var:voor:*commando::
-var:na:*commando::
-var:hoogte:*maat::
-var:diepte:*maat::
-stopsetup
-
-startsetup
-com:haarlijn:
-typ::
-stopsetup
-
-startsetup
-com:dunnelijn:
-typ::
-stopsetup
-
-startsetup
-com:definieerkadertekst:
-typ:val/vars/:
-val:*naam::
-ivr:stelkadertekstenin::
-stopsetup
-
-startsetup
-com:definieeromlijnd:
-typ:val/vars/:
-val:*naam::
-ivr:stelkadertekstenin::
-stopsetup
-
-startsetup
-com:stelkadertekstenin:
-typ:vars/:
-var:korps:5pt,...,12pt,klein,groot::
-var:letter:normaal,vet,schuin,vetschuin,type,klein...,*commando::
-var:links:*commando::
-var:rechts:*commando::
-var:voor:*commando::
-var:na:*commando::
-var:binnen:*commando::
-var:marge:standaard,ja,nee::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:start<<kadertekst>>:
-typ:val/vars/stp/:
-val:links,rechts,midden::
-ivr:stelkadertekstenin::
-stopsetup
-
-startsetup
-com:<<kadertekst>>:
-typ:vars/:
-ivr:stelkadertekstenin::
-stopsetup
-
-startsetup
-com:startachtergrond:
-typ:stp/:
-stopsetup
-
-startsetup
-com:achtergrond:
-typ::
-stopsetup
-
-startsetup
-com:stelachtergrondin:
-typ:vars/:
-var:linkeroffset:*maat::
-var:rechteroffset:*maat::
-var:bovenoffset:*maat::
-var:onderoffset:*maat::
-var:status:start,stop::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:invullijnen:
-typ:vars/arg/arg/:
-ivr:stelinvullijnenin::
-stopsetup
-
-startsetup
-com:invultekst:
-typ:vars/arg/arg/par/:
-ivr:stelinvullijnenin::
-stopsetup
-
-startsetup
-com:stelinvullijnenin:
-typ:vars/:
-var:breedte:passend,*maat::
-var:afstand:*maat::
-var:voor:*commando::
-var:na:*commando::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:n:*getal::
-var:scheider:*tekst::
-stopsetup
-
-startsetup
-com:invulregel:
-typ:vars/nop/par/:
-ivr:stelinvulregelsin::
-stopsetup
-
-startsetup
-com:stelinvulregelsin:
-typ:vars/:
-var:breedte:*maat::
-var:marge:*maat::
-var:afstand:*maat::
-var:voor:*commando::
-var:na:*commando::
-stopsetup
-
-startsetup
-com:steltekstlijnenin:
-typ:vars/:
-var:plaats:links,inmarge::
-var:voor:*commando::
-var:na:*commando::
-var:tussen:*commando::
-var:breedte:*maat::
-var:afstand:*maat::
-var:korps:5pt,...,12pt,klein,groot::
-var:kleur:*naam::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:lijnkleur:*naam::
-stopsetup
-
-startsetup
-com:tekstlijn:
-typ:val/arg/:
-val:boven,onder::
-val:*tekst::
-stopsetup
-
-startsetup
-com:starttekstlijn:
-typ:val/arg/stp/:
-val:boven,onder::
-val:*tekst::
-stopsetup
-
-startsetup
-com:blokje:
-typ:vars/:
-ivr:stelblokjesin::
-stopsetup
-
-startsetup
-com:blokjes:
-typ:vars/:
-ivr:stelblokjesin::
-stopsetup
-
-startsetup
-com:stelblokjesin:
-typ:vars/:
-var:breedte:*maat,max::
-var:hoogte:*maat,max::
-var:diepte:*maat,max::
-var:variant:a,b::
-var:afstand:*maat::
-var:n:*getal::
-stopsetup
-
-startsetup
-com:definieeroverlay:
-typ:vals/val/:
-val:*naam::
-val:*commando::
-stopsetup
-
-startsetup
-com:gebruikmodule:
-typ:vals/:
-val:*naam::
-stopsetup
-
-startsetup
-com:reset:
-typ:vals/:
-val:*naam::
-stopsetup
-
-startsetup
-com:geentest:
-typ::
-stopsetup
-
-startsetup
-com:startdeelomgeving:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stelsysteemin:
-typ:vars/:
-var:resolutie:*getal::
-var:willekeur:normaal,klein,middel,groot,*getal::
-stopsetup
-
-startsetup
-com:gebruikgebied:
-typ:vals/:
-val:*naam,reset:.:
-stopsetup
-
-startsetup
-com:laag:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:hoog:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:laho:
-typ:arg/arg/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:toonkader:
-typ:val/:
-val:tekst,marge,rand::
-stopsetup
-
-startsetup
-com:toonopbouw:
-typ::
-stopsetup
-
-startsetup
-com:regellinks:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:regelrechts:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:regelmidden:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:woordrechts:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:inmarge:
-typ:val/ref/arg/:
-val:+,-,laag::
-val:*tekst::
-stopsetup
-
-startsetup
-com:inanderemarge:
-typ:val/ref/arg/:
-val:+,-,laag::
-val:*tekst::
-stopsetup
-
-startsetup
-com:inlinker:
-typ:val/ref/arg/:
-val:+,-,laag::
-val:*tekst::
-stopsetup
-
-startsetup
-com:inrechter:
-typ:val/ref/arg/:
-val:+,-,laag::
-val:*tekst::
-stopsetup
-
-startsetup
-com:kolom:
-typ::
-stopsetup
-
-startsetup
-com:toonstruts:
-typ::
-stopsetup
-
-startsetup
-com:tooninstellingen:
-typ::
-stopsetup
-
-startsetup
-com:toonlayout:
-typ::
-stopsetup
-
-startsetup
-com:margetekst:
-typ:val/ref/arg/:
-val:+,-,laag::
-val:*tekst::
-stopsetup
-
-startsetup
-com:stelmargeblokkenin:
-typ:vars/:
-var:plaats:inmarge,links,midden,rechts::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:breedte:*maat::
-var:uitlijnen:links,midden,rechts,nee::
-var:boven:*commando::
-var:tussen:*commando::
-var:onder:*commando::
-var:links:*commando::
-var:rechts:*commando::
-var:voor:*commando::
-var:na:*commando::
-stopsetup
-
-startsetup
-com:startmargeblok:
-typ:stp/:
-stopsetup
-
-startsetup
-com:deel:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:titel:
-typ:refs/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:hoofdstuk:
-typ:refs/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:paragraaf:
-typ:refs/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:subparagraaf:
-typ:refs/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:subsubparagraaf:
-typ:refs/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:onderwerp:
-typ:refs/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:subonderwerp:
-typ:refs/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:subsubonderwerp:
-typ:refs/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:bijlage:
-typ:refs/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:in:
-typ:arg/arg/ref/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:op:
-typ:arg/arg/ref/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:over:
-typ:arg/ref/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:ergens:
-typ:arg/arg/ref/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:oppagina:
-typ:ref/:
-stopsetup
-
-startsetup
-com:ref:
-typ:val/ref/:
-val:t,p,r,s,e::
-val:*tekst::
-stopsetup
-
-startsetup
-com:tekstreferentie:
-typ:ref/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:paginareferentie:
-typ:ref/:
-stopsetup
-
-startsetup
-com:referentie:
-typ:ref/arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:gebruikreferenties:
-typ:vals/:
-val:*file::
-stopsetup
-
-startsetup
-com:definieerreferentie:
-typ:val/refs/:
-val:*naam::
-stopsetup
-
-startsetup
-com:hl:
-typ:val/:
-val:*getal::
-stopsetup
-
-startsetup
-com:vl:
-typ:val/:
-val:*getal::
-stopsetup
-
-startsetup
-com:omlaag:
-typ:val/:
-val:*maat::
-stopsetup
-
-startsetup
-com:witruimte:
-typ::
-stopsetup
-
-startsetup
-com:geenwitruimte:
-typ::
-stopsetup
-
-startsetup
-com:crlf:
-typ::
-stopsetup
-
-startsetup
-com:spatie:
-typ::
-stopsetup
-
-startsetup
-com:vastespaties:
-typ::
-stopsetup
-
-startsetup
-com:geenspatie:
-typ::
-stopsetup
-
-startsetup
-com:opelkaar:
-typ::
-stopsetup
-
-startsetup
-com:herhaal:
-typ:val/:
-val:repeat/*tekst::
-stopsetup
-
-startsetup
-com:steldoordefinierenin:
-typ:vals/vars/:
-val:*naam::
-var:kopletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:kleur:*naam::
-var:breedte:passend,ruim,*maat::
-var:afstand:*maat::
-var:monster:*tekst::
-var:tekst:*tekst::
-var:uitlijnen:links,midden,rechts::
-var:marge:standaard,ja,nee,*maat::
-var:plaats:links,rechts,boven,aanelkaar, inmarge,inlinker,inrechter,hangend::
-var:hang:passend,ruim,*getal::
-var:voor:*commando::
-var:tussen:*commando::
-var:na:*commando::
-var:springvolgendein:ja,nee::
-stopsetup
-
-startsetup
-com:steldoornummerenin:
-typ:vals/vars/:
-val:*naam::
-ivr:doordefinieren::
-var:plaats:links,rechts,boven,aanelkaar, inmarge,inlinker,inrechter,hangend::
-var:tekst:*tekst::
-var:niveaus:*getal::
-var:conversie:cijfers,letters,Letters,romeins,Romeins::
-var:wijze:pertekst,per*sectie::
-var:blokwijze:ja,nee::
-var:sectienummer:ja,nee::
-var:scheider:*tekst::
-var:afsluiter:*tekst::
-var:koppeling:*naam::
-var:koppelwijze:globaal,lokaal::
-var:nummer:nee,*naam::
-var:titeluitlijnen:nee,ja::
-stopsetup
-
-startsetup
-com:doornummeren:
-typ:vals/val/vars/:
-val:*naam::
-val:*naam::
-ivr:steldoornummerenin::
-stopsetup
-
-startsetup
-com:<<doornummering>>:
-typ:nop/par/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:start<<doornummering>>:
-typ:stp/:
-stopsetup
-
-startsetup
-com:doordefinieren:
-typ:val/vars/:
-val:*naam::
-ivr:steldoordefinierenin::
-stopsetup
-
-startsetup
-com:<<doordefinitie>>:
-typ:arg/nop/par/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:start<<doordefinitie>>:
-typ:arg/stp/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:steldoorspringenin:
-typ:vals/vars/:
-val:*naam::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:kopletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:breedte:passend,*maat::
-var:tekst:*tekst::
-var:monster:*tekst::
-var:voor:*commando::
-var:na:*commando::
-var:scheider:*tekst::
-stopsetup
-
-startsetup
-com:doorspringen:
-typ:val/vars/:
-val:*naam::
-ivr:steldoorspringenin::
-stopsetup
-
-startsetup
-com:<<doorsprong>>:
-typ:nop/par/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:doorlabelen:
-typ:val/vars/:
-val:*naam::
-var:tekst:*tekst::
-var:plaats:inmarge,intekst::
-var:wijze:pertekst,per*sectie::
-var:blokwijze:ja,nee::
-var:kopletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:kopkleur:*naam::
-var:voor:*commando::
-var:na:*commando::
-stopsetup
-
-startsetup
-com:<<doorlabel>>:
-typ::
-stopsetup
-
-startsetup
-com:stelkolommenin:
-typ:vars/:
-var:n:*getal::
-var:lijn:aan,uit::
-var:hoogte:*maat::
-var:tolerantie:zeerstreng,streng,soepel,zeersoepel,rek::
-var:afstand:*maat::
-var:balanceren:ja,nee::
-var:uitlijnen:ja,nee,tekst::
-var:blanko:vast,halveregel,regel,flexibel,groot,middel,klein::
-var:optie:achtergrond::
-var:richting:links,rechts::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:startkolommen:
-typ:vars/stp/:
-ivr:stelkolommenin::
-stopsetup
-
-startsetup
-com:definieertekst:
-typ:val/val/val/val/val/:
-val:*naam::
-val:hoofd,voet::
-val:*tekst::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:stelhoofdin:
-typ:val/vars/:
-val:tekst,marge,rand:tekst:
-var:status:normaal,stop,start,leeg,hoog,geen, geenmarkering,*naam::
-var:strut:ja,nee::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:linkerletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:rechterletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:linkerbreedte:*maat::
-var:rechterbreedte:*maat::
-var:voor:*commando::
-var:na:*commando::
-stopsetup
-
-startsetup
-com:stelvoetin:
-typ:val/vars/:
-ivl:stelhoofdin::
-ivr:stelhoofdin::
-stopsetup
-
-startsetup
-com:steltekstin:
-typ:val/vars/:
-ivl:stelhoofdin::
-ivr:stelhoofdin::
-stopsetup
-
-startsetup
-com:stelbovenin:
-typ:val/vars/:
-ivl:stelhoofdin::
-ivr:stelhoofdin::
-stopsetup
-
-startsetup
-com:stelonderin:
-typ:val/vars/:
-ivl:stelhoofdin::
-ivr:stelhoofdin::
-stopsetup
-
-startsetup
-com:geenhoofdenvoetregels:
-typ::
-stopsetup
-
-startsetup
-com:geenbovenenonderregels:
-typ::
-stopsetup
-
-startsetup
-com:stelhoofdtekstenin:
-typ:val/val/val/:
-val:tekst,marge,rand:tekst:
-val:*tekst,*sectie,datum,*markering,paginanummer::
-val:*tekst,*sectie,datum,*markering,paginanummer::
-stopsetup
-
-startsetup
-com:stelvoettekstenin:
-typ:val/val/val/:
-val:tekst,marge,rand:tekst:
-val:*tekst,*sectie,datum,*markering,paginanummer::
-val:*tekst,*sectie,datum,*markering,paginanummer::
-stopsetup
-
-startsetup
-com:stelteksttekstenin:
-typ:val/val/val/:
-val:tekst,marge,rand:tekst:
-val:*tekst,*sectie,datum,*markering,paginanummer::
-val:*tekst,*sectie,datum,*markering,paginanummer::
-stopsetup
-
-startsetup
-com:stelboventekstenin:
-typ:val/val/val/:
-val:tekst,marge,rand:tekst:
-val:*tekst,*sectie,datum,*markering,paginanummer::
-val:*tekst,*sectie,datum,*markering,paginanummer::
-stopsetup
-
-startsetup
-com:stelondertekstenin:
-typ:val/val/val/:
-val:tekst,marge,rand:tekst:
-val:*tekst,*sectie,datum,*markering,paginanummer::
-val:*tekst,*sectie,datum,*markering,paginanummer::
-stopsetup
-
-startsetup
-com:definieermarkering:
-typ:val/val/:
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:koppelmarkering:
-typ:val/val/:
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:ontkoppelmarkering:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:resetmarkering:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:stelmarkeringin:
-typ:val/var/:
-val:*naam::
-var:status:start,stop::
-var:scheider:*commando::
-var:expansie:ja,nee::
-stopsetup
-
-startsetup
-com:markeer:
-typ:val/arg/:
-val:*naam::
-val:*tekst::
-stopsetup
-
-startsetup
-com:haalmarkering:
-typ:val/val/:
-val:*naam::
-val:eerste,laatste,vorige,beide,alles::
-stopsetup
-
-startsetup
-com:geenmarkering:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:stellayoutin:
-typ:vars/:
-var:breedte:*maat,passend,midden::
-var:hoogte:*maat,passend,midden::
-var:rugwit:*maat::
-var:kopwit:*maat::
-var:marge:*maat::
-var:linkermarge:*maat::
-var:rechtermarge:*maat::
-var:hoofd:*maat::
-var:voet:*maat::
-var:boven:*maat::
-var:onder:*maat::
-var:linkerrand:*maat::
-var:rechterrand:*maat::
-var:hoofdafstand:*maat::
-var:voetafstand:*maat::
-var:bovenafstand:*maat::
-var:onderafstand:*maat::
-var:linkermargeafstand:*maat::
-var:rechtermargeafstand:*maat::
-var:linkerrandafstand:*maat::
-var:rechterrandafstand:*maat::
-var:rugoffset:*maat::
-var:kopoffset:*maat::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:markering:aan,uit,kleur::
-var:plaats:links,midden,rechts,onder,boven, enkelzijdig,dubbelzijdig::
-var:schaal:*maat::
-var:nx:*getal::
-var:ny:*getal::
-var:dx:*maat::
-var:dy:*maat::
-var:regels:*getal::
-var:grid:ja,nee::
-stopsetup
-
-startsetup
-com:paslayoutaan:
-typ:vals/vars/:
-val:*getal::
-var:hoogte:*maat,max::
-var:regels:*getal::
-stopsetup
-
-startsetup
-com:toongrid:
-typ::
-stopsetup
-
-startsetup
-com:plaatsopgrid:
-typ:val/arg/:
-ivl:verplaatsopgrid::
-stopsetup
-
-startsetup
-com:verplaatsopgrid:
-typ:val/:
-val:boven,beide,onder:beide:
-stopsetup
-
-startsetup
-com:startproject:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:startomgeving:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:startprodukt:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:startonderdeel:
-typ:fil/stp/:
-val:*file::
-stopsetup
-
-startsetup
-com:geenfilesmeer:
-typ::
-stopsetup
-
-startsetup
-com:stelinterliniein:
-typ:val/vars/:
-val:reset,klein,middel,groot,aan,uit:klein:
-var:hoogte:*getal::
-var:diepte:*getal::
-var:regel:*maat::
-var:boven:*getal::
-var:onder:*getal::
-stopsetup
-
-startsetup
-com:stelnummeringin:
-typ:vars/:
-var:variant:enkelzijdig,dubbelzijdig::
-var:plaats:hoofd,voet, links,rechts,midden, marge,kantlijn,inlinker,inrechter::
-var:conversie:cijfers,letters,Letters,romeins,Romeins::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:links:*tekst::
-var:rechts:*tekst::
-var:wijze:pertekst,per*sectie::
-var:tekst:*tekst::
-var:nummerscheider:*tekst::
-var:tekstscheider:*tekst::
-var:*sectienummer:ja,nee::
-var:scheider:*tekst::
-var:status:start,stop::
-var:commando:*\commando#1::
-stopsetup
-
-startsetup
-com:stelsmallerin:
-typ:vars/:
-var:links:*maat::
-var:rechts:*maat::
-var:midden:*maat::
-stopsetup
-
-startsetup
-com:definieer:
-typ:val/cmd/arg/:
-val:*getal:0:
-stopsetup
-
-startsetup
-com:gebruikcommandos:
-typ:arg/:
-stopsetup
-
-startsetup
-com:definieerstartstop:
-typ:val/vars/:
-var:voor:*commando::
-var:na:*commando::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:commandos:*commando::
-stopsetup
-
-startsetup
-com:stelkoppenin:
-typ:vars/:
-var:sectienummer:ja,nee::
-var:variant:normaal,inmarge,midden,tekst::
-var:scheider:*tekst::
-var:commando:*\commando#1#2::
-stopsetup
-
-startsetup
-com:stelblokkopjesin:
-typ:vars/:
-var:plaats:boven,onder,geen,hoog,laag,midden::
-var:breedte:passend,max,*maat::
-var:kopletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:nummer:ja,nee::
-var:tussen:*commando::
-var:uitlijnen:links,midden,rechts,nee::
-var:conversie:cijfers,letters,Letters,romeins,Romeins::
-var:wijze:pertekst,per*sectie::
-stopsetup
-
-startsetup
-com:stelblokkopjein:
-typ:val/vars/:
-ivr:stelblokkopjesin::
-stopsetup
-
-startsetup
-com:stelplaatsblokkenin:
-typ:vars/:
-var:plaats:links,rechts,midden::
-var:breedte:passend,*maat::
-var:voor:*commando::
-var:na:*commando::
-var:marge:*maat::
-var:voorwit:repeat/klein,repeat/middel,repeat/groot,geen::
-var:nawit:repeat/klein,repeat/middel,repeat/groot,geen::
-var:zijvoorwit:repeat/klein,repeat/middel,repeat/groot,geen::
-var:zijnawit:repeat/klein,repeat/middel,repeat/groot,geen::
-var:nboven:*getal::
-var:nonder:*getal::
-var:nregels:*getal::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:stelplaatsblokkensplitsenin:
-typ:vars/:
-var:conversie:cijfers,letters,Letters,romeins,Romeins::
-var:regels:*getal::
-stopsetup
-
-startsetup
-com:splitsplaatsblok:
-typ:vars/arg/arg/:
-ivr:stelplaatsblokkensplitsenin::
-stopsetup
-
-startsetup
-com:stelnaastplaatsenin:
-typ:var/:
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:startnaast:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stelkoppeltekenin:
-typ:var/:
-var:teken:--,---,-,\normalpenalty 10000\ ,),(,=,/::
-stopsetup
-
-startsetup
-com:stelpositionerenin:
-typ:vars/:
-var:status:start,overlay::
-var:eenheid:cm,pt,em,mm,ex,sp,in::
-var:factor:*getal::
-var:schaal:*getal::
-var:offset:ja,nee::
-var:xstap:absoluut,relatief::
-var:ystap:absoluut,relatief::
-stopsetup
-
-startsetup
-com:startpositioneren:
-typ:stp/:
-stopsetup
-
-startsetup
-com:rooster:
-typ:vars/:
-var:x:*getal::
-var:y:*getal::
-var:nx:*getal::
-var:ny:*getal::
-var:dx:*getal::
-var:dy:*getal::
-var:xstap:*getal::
-var:ystap:*getal::
-var:offset:ja,nee::
-var:factor:*getal::
-var:schaal:*getal::
-var:eenheid:cm,pt,em,mm,ex,sp,in::
-var:plaats:links,midden::
-stopsetup
-
-startsetup
-com:pagina:
-typ:vals/:
-val:ja,opmaak,nee,voorkeur,grotevoorkeur, links,rechts,blokkeer,laatste,viertal, even,oneven,blanko,leeg,reset:ja:
-stopsetup
-
-startsetup
-com:stelrefererenin:
-typ:var/:
-var:status:start,stop::
-var:*sectienummer:ja,nee::
-var:prefix:+,-,*tekst::
-var:interactie:label,tekst,alles,symbool::
-var:breedte:*maat::
-var:links:*commando::
-var:rechts:*commando::
-var:converteerfile:ja,nee::
-stopsetup
-
-startsetup
-com:stelurlin:
-typ:vars/:
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:urlvariant:geen,beide,voor,na::
-var:urlspatie:ja,nee::
-stopsetup
-
-startsetup
-com:schrijfnaarreferentielijst:
-typ:val/arg/arg/:
-val:*naam::
-stopsetup
-
-startsetup
-com:plaatsreferentielijst:
-typ:vals/:
-val:*naam::
-stopsetup
-
-startsetup
-com:definieerreferentielijst:
-typ:val/vars/:
-val:*naam::
-ivr:stelreferentielijstin::
-stopsetup
-
-startsetup
-com:stelreferentielijstin:
-typ:vals/vars/:
-val:*naam::
-var:status:start,stop::
-var:criterium:*sectie,lokaal,vorige,alles::
-var:commando:*commando::
-var:voor:*commando::
-var:na:*commando::
-stopsetup
-
-startsetup
-com:schrijfnaarlijst:
-typ:val/arg/arg/:
-val:*sectie,*naam::
-stopsetup
-
-startsetup
-com:schrijftussenlijst:
-typ:val/arg/:
-val:*sectie,*naam::
-stopsetup
-
-startsetup
-com:geenlijst:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:plaatslijst:
-typ:vals/vars/:
-val:*naam::
-ivr:stellijstin::
-stopsetup
-
-startsetup
-com:bepaallijstkenmerken:
-typ:vals/vars/:
-val:*naam::
-ivr:stellijstin::
-stopsetup
-
-startsetup
-com:definieerlijst:
-typ:val/val/vars/:
-val:*naam::
-val:*naam::
-ivr:stellijstin::
-stopsetup
-
-startsetup
-com:stellijstin:
-typ:vals/vars/:
-val:*naam::
-var:status:start,stop::
-var:variant:a,b,c,...,geen,commando::
-var:koppeling:aan,uit::
-var:criterium:*sectie,lokaal,vorige,alles::
-var:paginaovergangen:*lijst::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:nummerletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:tekstletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:paginaletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:kleur:*naam::
-var:commando:*\commando#1#2#3::
-var:nummercommando:*\commando#1::
-var:tekstcommando:*\commando#1::
-var:paginacommando:*\commando#1::
-var:interactie:sectienummer,tekst,paginanummer,alles::
-var:voor:*commando::
-var:na:*commando::
-var:tussen:*commando::
-var:links:*tekst::
-var:rechts:*tekst::
-var:label:ja,nee::
-var:prefix:ja,nee::
-var:paginanummer:ja,nee::
-var:*sectienummer:ja,nee::
-var:titeluitlijnen:ja,nee::
-var:marge:*maat::
-var:breedte:*maat,passend::
-var:hoogte:*maat,passend,ruim::
-var:diepte:*maat,passend,ruim::
-var:afstand:*maat::
-var:scheider:*tekst::
-var:symbool:geen,1,2,3,...::
-var:expansie:ja,nee,commando::
-var:maxbreedte:*maat::
-ivr:omlijnd::
-stopsetup
-
-startsetup
-com:definieersamengesteldelijst:
-typ:val/vals/vars/:
-val:*naam::
-val:*lijst::
-ivr:stelsamengesteldelijstin::
-stopsetup
-
-startsetup
-com:stelsamengesteldelijstin:
-typ:val/vars/:
-val:*naam::
-var:niveau:1,2,3,4,*sectie,huidige::
-ivr:stellijstin::
-stopsetup
-
-startsetup
-com:plaats<<samengesteldelijst>>:
-typ:val/vars/:
-val:*naam::
-ivr:stelsamengesteldelijstin::
-stopsetup
-
-startsetup
-com:volledige<<samengesteldelijst>>:
-typ:val/vars/:
-val:*naam::
-ivr:stelsamengesteldelijstin::
-stopsetup
-
-startsetup
-com:stelnummerenin:
-typ:vars/:
-var:wijze:pertekst,per*sectie::
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:stelformulesin:
-typ:vars/:
-var:plaats:links,rechts::
-var:links:*tekst::
-var:rechts:*tekst::
-stopsetup
-
-startsetup
-com:publicatie:
-typ:ref/:
-stopsetup
-
-startsetup
-com:stelpublicatiesin:
-typ:vars/:
-var:variant:apa,normaal::
-ivr:steldoornummerenin::
-stopsetup
-
-startsetup
-com:stelregelsin:
-typ:vars/:
-var:voor:*commando::
-var:na:*commando::
-var:tussen:*commando::
-var:inspringen:ja,nee,even,oneven::
-stopsetup
-
-startsetup
-com:startregels:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stelregelnummerenin:
-typ:vars/:
-var:conversie:cijfers,letters,Letters,romeins,Romeins, tekst::
-var:start:*getal::
-var:stap:*getal::
-var:breedte:*maat::
-var:plaats:intekst,inmarge::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:prefix:*tekst::
-var:refereren:aan,uit::
-stopsetup
-
-startsetup
-com:startregelnummeren:
-typ:val/stp/:
-val:verder::
-stopsetup
-
-startsetup
-com:startregel:
-typ:ref/stp/:
-stopsetup
-
-startsetup
-com:eenregel:
-typ:ref/:
-stopsetup
-
-startsetup
-com:inregel:
-typ:ref/:
-stopsetup
-
-startsetup
-com:stelinmargein:
-typ:val/vars/:
-val:links,rechts,*getal::
-var:plaats:links,rechts,beide::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:voor:*commando::
-var:na:*commando::
-var:uitlijnen:binnen,buiten,links,rechts,midden,normaal,nee,ja::
-var:regel:*getal::
-var:afstand:*maat::
-var:scheider:*tekst::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:stelpaginanummerin:
-typ:vars/:
-var:nummer:*getal::
-var:status:start,stop,handhaaf::
-stopsetup
-
-startsetup
-com:stelsubpaginanummerin:
-typ:vars/:
-var:wijze:pertekst,per*sectie::
-var:status:start,stop,geen::
-stopsetup
-
-startsetup
-com:stelblankoin:
-typ:val/:
-val:normaal,standaard,regel,*maat, groot,middel,klein, vast,flexibel:normaal:
-stopsetup
-
-startsetup
-com:definieerblanko:
-typ:val/val/:
-val:*naam::
-ivl:stelblankoin::
-stopsetup
-
-startsetup
-com:definieerpapierformaat:
-typ:val/vars/:
-val:*naam::
-var:breedte:*maat::
-var:hoogte:*maat::
-var:offset:*maat::
-var:schaal:*getal::
-stopsetup
-
-startsetup
-com:stelpapierformaatin:
-typ:vals/vals/:
-val:A3,A4,A5,A6,letter,...,CD,*naam, liggend,gespiegeld,geroteerd,90,180,270:A4:
-val:A3,A4,A5,A6,letter,...,*naam, liggend,gespiegeld,geroteerd,negatief,90,180,270:A4:
-stopsetup
-
-startsetup
-com:stelarrangerenin:
-typ:vals/:
-val:blokkeer, 2*16,2*8,2*4,2*2,2UP,2DOWN, gespiegeld,geroteerd,dubbelzijdig,negatief,90,180,270::
-stopsetup
-
-startsetup
-com:toonprint:
-typ:vals/vals/vars/:
-ivr:stelpapierformaatin::
-ivr:stelpapierformaatin::
-ivr:stellayoutin::
-stopsetup
-
-startsetup
-com:definieerbeeldmerk:
-typ:val/val/val/vars/:
-val:*naam::
-val:boven,hoofd,voet,onder::
-val:geen,pagina, linkerrand,linkermarge, links,midden,rechts, rechtermarge,rechterrand::
-var:commando:*commando,*tekst::
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:plaatsbeeldmerken:
-typ:vals/:
-val:*naam::
-stopsetup
-
-startsetup
-com:stelwitruimtein:
-typ:val/:
-val:geen,klein,middel,groot,regel,vast,herstel,*maat:geen:
-stopsetup
-
-startsetup
-com:stelinspringenin:
-typ:vals/:
-val:geen,klein,middel,groot,volgende,eerste,*maat:geen:
-stopsetup
-
-startsetup
-com:definieersectieblok:
-typ:val/vars/:
-val:*naam::
-ivr:stelsectieblokin::
-stopsetup
-
-startsetup
-com:stelsectieblokin:
-typ:val/vars/:
-val:*naam::
-var:nummer:ja,nee::
-var:pagina:ja,rechts::
-var:voor:*commando::
-var:na:*commando::
-stopsetup
-
-startsetup
-com:definieersectie:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:stelsectiein:
-typ:val/vars/:
-val:*naam::
-var:conversie:cijfers,letters,Letters,romeins,Romeins::
-var:vorigenummer:ja,nee::
-stopsetup
-
-startsetup
-com:stelkopin:
-typ:val/vars/:
-val:*sectie::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:tekstletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:nummerletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:nummer:ja,nee::
-var:eigennummer:ja,nee::
-var:pagina:links,rechts,ja::
-var:doorgaan:ja,nee::
-var:hoofd:geen,leeg,hoog,geenmarkering::
-var:voor:*commando::
-var:tussen:*commando::
-var:na:*commando::
-var:variant:normaal,inmarge,midden,tekst::
-var:commando:*\commando#1#2::
-var:nummercommando:*\commando#1::
-var:tekstcommando:*\commando#1::
-var:prefix:+,-,*tekst::
-var:plaatskop:ja,nee::
-var:verhoognummer:ja,nee,*file::
-var:uitlijnen:links,rechts,normaal,ruim::
-var:tolerantie:zeerstreng,streng,soepel,zeersoepel,rek::
-var:springvolgendein:ja,nee::
-var:file:*naam::
-var:expansie:ja,commando,nee::
-stopsetup
-
-startsetup
-com:stelkopnummerin:
-typ:val/val/:
-val:*sectie::
-val:*getal,+*getal,-*getal::
-stopsetup
-
-startsetup
-com:kopnummer:
-typ:val/:
-val:*sectie::
-stopsetup
-
-startsetup
-com:bepaalkopnummer:
-typ:val/:
-val:*sectie::
-stopsetup
-
-startsetup
-com:huidigekopnummer:
-typ::
-stopsetup
-
-startsetup
-com:volgende<<sectie>>:
-typ::
-stopsetup
-
-startsetup
-com:definieerkop:
-typ:val/val/:
-val:*naam::
-val:*sectie::
-stopsetup
-
-startsetup
-com:stelopsommingin:
-typ:val/vals/vars/:
-val:*getal,elk::
-val:standaard,repeat/ruim,repeat/aanelkaar,opelkaar, vanelkaar,afsluiter,aansluitend,opmarge,inmarge, autointro,los:standaard:
-var:marge:nee,standaard,*maat::
-var:breedte:*maat::
-var:afstand:*maat::
-var:factor:*getal::
-var:items:*getal::
-var:voor:*commando::
-var:tussen:*commando::
-var:na:*commando::
-var:kopvoor:*commando::
-var:kopna:*commando::
-var:kopletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:marletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:symletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:afsluiter:*tekst::
-var:n:*getal::
-var:symbool:*getal::
-var:uitlijnen:links,rechts,normaal::
-var:springvolgendein:ja,nee::
-stopsetup
-
-startsetup
-com:startopsomming:
-typ:vals/vars/stp/:
-val:a,A,KA,n,N,m,r,R,KR,*getal,verder, standaard,repeat/ruim,repeat/aanelkaar,opelkaar, afsluiter,aansluitend,opmarge,inmarge,intro,kolommen:standaard:
-ivr:stelopsommingin::
-stopsetup
-
-startsetup
-com:som:
-typ:refs/:
-stopsetup
-
-startsetup
-com:but:
-typ:ref/:
-stopsetup
-
-startsetup
-com:its:
-typ:refs/:
-stopsetup
-
-startsetup
-com:ran:
-typ:arg/:
-stopsetup
-
-startsetup
-com:kop:
-typ:refs/:
-stopsetup
-
-startsetup
-com:mar:
-typ:refs/arg/:
-stopsetup
-
-startsetup
-com:sub:
-typ:refs/:
-stopsetup
-
-startsetup
-com:sym:
-typ:arg/:
-stopsetup
-
-startsetup
-com:nop:
-typ::
-stopsetup
-
-startsetup
-com:definieerregister:
-typ:val/val/:
-val:*naam enkelvoud::
-val:*naam meervoud::
-stopsetup
-
-startsetup
-com:stelregisterin:
-typ:val/val/vars/:
-val:*naam enkelvoud::
-val:*naam::
-var:n:*getal::
-var:balanceren:ja,nee::
-var:uitlijnen:ja,nee::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:paginaletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:tekstletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:aanduiding:ja,nee::
-var:koppeling:ja,nee::
-var:*sectienummer:ja,nee::
-var:criterium:*sectie,lokaal,alles::
-var:afstand:*maat::
-var:symbool:1,2,...,n,a,...,geen::
-var:interactie:paginanummer,tekst::
-var:expansie:ja,commando,nee::
-var:refereren:aan,uit::
-var:commando:*\commando#1::
-var:plaats:links,midden,rechts::
-var:maxbreedte:*maat::
-var:onbekendeverwijzing:leeg,geen::
-stopsetup
-
-startsetup
-com:<<register>>:
-typ:val/idxs/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:start<<register>>:
-typ:val/idxs/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:schrijfnaarregister:
-typ:val/val/idxs/:
-val:*naam enkelvoud::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:gekoppelde<<register>>:
-typ:val/idx/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:koppelregister:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:zie<<register>>:
-typ:val/arg/idxs/:
-val:*tekst::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:volledige<<register>>:
-typ:vars/:
-ivr:stelregisterin::
-stopsetup
-
-startsetup
-com:plaats<<register>>:
-typ:vars/:
-ivr:stelregisterin::
-stopsetup
-
-startsetup
-com:definieersynoniemen:
-typ:val/val/val/val/:
-val:*naam enkelvoud::
-val:*naam meervoud::
-val:*commando::
-val:*commando::
-stopsetup
-
-startsetup
-com:stelsynoniemenin:
-typ:val/vars/:
-val:*naam::
-var:tekstletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:synoniemletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:plaats:links,rechts,boven,aanelkaar, inmarge,inlinker,inrechter::
-var:breedte:*maat::
-var:status:start,stop::
-var:criterium:alles,gebruikt::
-var:conversie:ja,nee::
-var:expansie:ja,commando,nee::
-var:commando:*\commando#1#2#3::
-stopsetup
-
-startsetup
-com:<<synoniem>>:
-typ:val/arg/arg/:
-val:*tekst::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:volledigelijstmet<<synoniemen>>:
-typ::
-stopsetup
-
-startsetup
-com:plaatslijstmet<<synoniemen>>:
-typ::
-stopsetup
-
-startsetup
-com:laad<<synoniemen>>:
-typ::
-stopsetup
-
-startsetup
-com:definieersorteren:
-typ:val/val/val/:
-val:*naam enkelvoud::
-val:*naam meervoud::
-val:*commando::
-stopsetup
-
-startsetup
-com:stelsorterenin:
-typ:val/vars/:
-val:*naam::
-var:voor:*commando::
-var:na:*commando::
-var:commando:*\commando#1::
-var:status:start,stop::
-var:criterium:alles,gebruikt::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:expansie:ja,commando,nee::
-stopsetup
-
-startsetup
-com:<<sorteer>>:
-typ:val/arg/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:volledigelijstmet<<sorteren>>:
-typ::
-stopsetup
-
-startsetup
-com:plaatslijstmet<<sorteren>>:
-typ::
-stopsetup
-
-startsetup
-com:laad<<sorteren>>:
-typ::
-stopsetup
-
-startsetup
-com:definieeropmaak:
-typ:val/vars/:
-val:*naam::
-ivr:stelopmaakin::
-stopsetup
-
-startsetup
-com:startopmaak:
-typ:val/vars/stp/:
-val:*naam::
-ivr:stelopmaakin::
-stopsetup
-
-startsetup
-com:stelopmaakin:
-typ:val/vars/:
-val:*naam::
-var:breedte:*maat::
-var:hoogte:*maat::
-var:voffset:*maat::
-var:hoffset:*maat::
-var:pagina:links,ja,rechts::
-var:commandos:*commando::
-var:dubbelzijdig:ja,nee,leeg::
-var:hoofdstatus:normaal,stop,start,leeg,geen,geenmarkering::
-var:voetstatus:normaal,stop,start,leeg,geen,geenmarkering::
-var:tekststatus:normaal,stop,start,leeg,geen,geenmarkering::
-var:bovenstatus:stop,start::
-var:onderstatus:stop,start::
-stopsetup
-
-startsetup
-com:start<<naam>>opmaak:
-typ:stp/:
-stopsetup
-
-startsetup
-com:versie:
-typ:val/:
-val:definitief,concept,voorlopig:definitief:
-stopsetup
-
-startsetup
-com:huidigedatum:
-typ:vals/:
-val:dag,maand,MAAND,weekdag,WEEKDAG,jaar, dd,mm,jj,yy,d,m,j,y,kenmerk:dag,maand,jaar:
-stopsetup
-
-startsetup
-com:datum:
-typ:vars/vals/:
-var:d:*getal::
-var:m:*getal::
-var:y:*getal::
-ivl:huidigedatum::
-stopsetup
-
-startsetup
-com:kenmerkdatum:
-typ::
-stopsetup
-
-startsetup
-com:inspringen:
-typ:vals/:
-val:nooit,niet,nee,ja,altijd,eerste,volgende:nooit:
-stopsetup
-
-startsetup
-com:nietinspringen:
-typ::
-stopsetup
-
-startsetup
-com:blanko:
-typ:vals/:
-val:repeat/klein,repeat/middel,repeat/groot, geenwit,terug,wit,blokkeer,forceer,reset, regel,halveregel,formule,vast,flexibel:groot:
-stopsetup
-
-startsetup
-com:startopelkaar:
-typ:val/stp/:
-val:blanko::
-stopsetup
-
-startsetup
-com:startvanelkaar:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startregelcorrectie:
-typ:stp/:
-stopsetup
-
-startsetup
-com:corrigeerwitruimte:
-typ:arg/:
-stopsetup
-
-startsetup
-com:startuitstellen:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startlokaal:
-typ:stp/:
-stopsetup
-
-startsetup
-com:startsmaller:
-typ:vals/stp/:
-val:repeat/links,repeat/midden,repeat/rechts:midden:
-stopsetup
-
-startsetup
-com:startverbergen:
-typ:stp/:
-stopsetup
-
-startsetup
-com:steluitlijnenin:
-typ:val/:
-val:breedte,links,rechts,midden,binnen,buiten, breed,ruim,hoogte,onder,regel,reset::
-stopsetup
-
-startsetup
-com:startuitlijnen:
-typ:stp/val/:
-ivr:steluitlijnenin::
-stopsetup
-
-startsetup
-com:stelspatieringin:
-typ:val/:
-val:ruim,opelkaar::
-stopsetup
-
-startsetup
-com:steltolerantiein:
-typ:vals/:
-val:horizontaal,vertikaal, rek,zeerstreng,streng,soepel,zeersoepel:zeerstreng:
-stopsetup
-
-startsetup
-com:soortpagina:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:verwerkpagina:
-typ:vals/val/:
-val:*naam::
-val:ja,nee:ja:
-stopsetup
-
-startsetup
-com:koppelpagina:
-typ:vals/vars/:
-val:*naam::
-var:optie:dubbelzijdig::
-var:voor:*commando::
-var:na:*commando::
-stopsetup
-
-startsetup
-com:positioneer:
-typ:poss/arg/:
-val:*getal::
-val:*getal::
-val:*tekst::
-stopsetup
-
-startsetup
-com:stelrastersin:
-typ:vars/:
-var:methode:punt,lijn,extern::
-var:resolutie:*getal::
-var:factor:*getal::
-var:raster:*getal::
-stopsetup
-
-startsetup
-com:stelachtergrondenin:
-typ:val/vals/vars/:
-val:boven,hoofd,tekst,voet,onder, pagina,linkerpagina,rechterpagina::
-val:linkerrand,linkermarge,tekst,rechtermarge,rechterrand::
-var:status:start,stop,herhaal::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:startbuffer:
-typ:val/stp/:
-val:*naam::
-stopsetup
-
-startsetup
-com:haalbuffer:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:typebuffer:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:definieerbuffer:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:stelbufferin:
-typ:val/vars/:
-val:*naam::
-var:voor:*commando::
-var:na:*commando::
-stopsetup
-
-startsetup
-com:definieerblok:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:geenblokkenmeer:
-typ::
-stopsetup
-
-startsetup
-com:verbergblokken:
-typ:vals/vals/:
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:handhaafblokken:
-typ:vals/vals/:
-val:*naam::
-val:alles,*naam::
-stopsetup
-
-startsetup
-com:gebruikblokken:
-typ:vals/vals/:
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:verwerkblokken:
-typ:vals/vals/:
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:selecteerblokken:
-typ:vals/vals/var/:
-val:*naam::
-val:*naam::
-var:criterium:alles,*sectie::
-stopsetup
-
-startsetup
-com:stelblokin:
-typ:vals/vars/:
-val:*naam::
-var:voor:*commando::
-var:na:*commando::
-var:binnen:*commando::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:file:*file::
-stopsetup
-
-startsetup
-com:startformule:
-typ:stp/:
-val:*formule::
-stopsetup
-
-startsetup
-com:wiskunde:
-typ:arg/:
-val:*formule::
-stopsetup
-
-startsetup
-com:plaatsformule:
-typ:refs/arg/dis/:
-val:*tekst::
-val:*formule::
-stopsetup
-
-startsetup
-com:plaatssubformule:
-typ:refs/arg/dis/:
-val:*tekst::
-val:*formule::
-stopsetup
-
-startsetup
-com:plaats<<blok>>:
-typ:val/refs/arg/arg/:
-val:links,rechts,hier,boven,onder, inlinker,inrechter,inmarge,marge, pagina,naast,altijd,forceer,lang:hier:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:reserveer<<blok>>:
-typ:vars/val/refs/arg/:
-var:hoogte:*maat::
-var:breedte:*maat::
-var:kader:aan,uit::
-val:links,rechts,hier,boven,onder, inlinker,inrechter,inmarge,marge, pagina,naast,altijd,forceer:hier:
-val:*tekst::
-stopsetup
-
-startsetup
-com:definieerplaatsblok:
-typ:val/val/:
-val:*naam enkelvoud::
-val:*naam meervoud::
-stopsetup
-
-startsetup
-com:stelplaatsblokin:
-typ:val/vars/:
-val:*naam::
-var:hoogte:*maat::
-var:breedte:*maat::
-var:paginaovergangen:*lijst::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:start<<blok>>tekst:
-typ:val/ref/arg/arg/stp/:
-val:links,rechts,hoog,midden,laag,offset,lang::
-val:*tekst::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:plaatslijstmet<<blokken>>:
-typ::
-stopsetup
-
-startsetup
-com:volledigelijstmet<<blokken>>:
-typ::
-stopsetup
-
-startsetup
-com:label:
-typ:val/arg/arg/arg/arg/arg/arg/:
-val:smal,breed:breed:
-val:*tekst::
-val:*tekst::
-val:*tekst::
-val:*tekst::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:kenmerk:
-typ:vars/:
-var:bet:*tekst::
-var:ken:*tekst::
-var:dat:*tekst::
-var:van:*tekst::
-var:aan:*tekst::
-var:ref:*tekst::
-stopsetup
-
-startsetup
-com:selecteerpapier:
-typ:vars/:
-var:soort:1,2::
-stopsetup
-
-startsetup
-com:koppelpapier:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:chem:
-typ:arg/arg/arg/:
-val:*tekst::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:breuk:
-typ:arg/arg/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:punten:
-typ:val/:
-val:*getal::
-stopsetup
-
-startsetup
-com:woonplaats:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:items:
-typ:vars/args/:
-ivr:stelitemsin::
-stopsetup
-
-startsetup
-com:stelitemsin:
-typ:vars/:
-var:plaats:links,rechts,inmarge,boven,onder::
-var:symbool:1,2,...,n,a,...,*tekst,geen::
-var:breedte:*maat::
-var:n:*getal,onbekend::
-var:voor:*commando::
-var:tussen:*commando::
-var:uitlijnen:links,rechts,midden,marge::
-var:na:*commando::
-stopsetup
-
-startsetup
-com:startcitaat:
-typ:vals/stp/:
-val:repeat/links,repeat/midden,repeat/rechts:midden:
-stopsetup
-
-startsetup
-com:citaat:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:citeer:
-typ:arg/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:stelciterenin:
-typ:vars/:
-var:voor:*commando::
-var:na:*commando::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-stopsetup
-
-startsetup
-com:toevoegen:
-typ:val/:
-val:klein,middel,groot:middel:
-stopsetup
-
-startsetup
-com:definieeralineas:
-typ:val/vars/:
-val:*naam::
-var:n:*getal::
-var:lijn:aan,uit::
-var:hoogte:passend,*maat::
-var:voor:*commando::
-var:na:*commando::
-var:binnen:*commando::
-var:afstand:*maat::
-var:tolerantie:zeerstreng,streng,soepel,zeersoepel,rek::
-var:uitlijnen:links,rechts,midden::
-stopsetup
-
-startsetup
-com:<<alinea>>:
-typ::
-stopsetup
-
-startsetup
-com:start<<alinea>>:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stelalineasin:
-typ:val/val/vars/:
-val:*naam::
-val:*getal,elk::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:breedte:*maat::
-var:hoogte:*maat::
-var:uitlijnen:links,rechts,midden,breedte::
-var:tolerantie:zeerstreng,streng,soepel,zeersoepel,rek::
-var:afstand:*maat::
-var:voor:*commando::
-var:na:*commando::
-var:binnen:*commando::
-var:commando:*commando::
-var:lijn:aan,uit::
-stopsetup
-
-startsetup
-com:steltabin:
-typ:vars/:
-var:monster:*tekst::
-var:breedte:*maat::
-var:kopletter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:plaats:links,rechts::
-stopsetup
-
-startsetup
-com:tab:
-typ:arg/nop/par/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:startdocument:
-typ:val/stp/:
-val:*naam::
-stopsetup
-
-startsetup
-com:brieven:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:labels:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:stelbrievenin:
-typ:vals/:
-val:formeel,informeel,rekening,ls, hoog,midden,laag:formeel,laag:
-stopsetup
-
-startsetup
-com:stelsheetsin:
-typ:vars/:
-var:variant:*getal::
-var:tekst:*tekst::
-var:formaat:klein,middel,groot::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:nummer:*getal,aansluitend::
-stopsetup
-
-startsetup
-com:sheet:
-typ:val/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:stelstickersin:
-typ:vars/:
-var:variant:a::
-var:n:*getal,alles::
-var:plaats:marge,links,rechts,midden::
-stopsetup
-
-startsetup
-com:definieertabulatie:
-typ:val/val/val/:
-val:*naam::
-val:*naam::
-val:*tekst::
-stopsetup
-
-startsetup
-com:starttabulatie:
-typ:val/vars/stp/:
-val:*tekst::
-ivr:gebruikexternfiguur::
-stopsetup
-
-startsetup
-com:steltabulatiein:
-typ:val/vars/:
-val:*naam::
-var:eenheid:*maat::
-var:inspringen:ja,nee::
-var:voor:*commando::
-var:na:*commando::
-var:binnen:*commando::
-var:EQ:*tekst::
-var:lijnkleur:*naam::
-var:uitlijnen:links,midden,rechts,normaal::
-var:lijndikte:*maat::
-var:afstand:blanko,diepte,*maat,klein,middel,groot,geen::
-stopsetup
-
-startsetup
-com:steltabellenin:
-typ:vars/:
-var:afstand:klein,middel,groot::
-var:korps:5pt,...,12pt,klein,groot::
-var:HL:*getal,klein,middel,groot,geen::
-var:VL:*getal,klein,middel,groot,geen::
-var:diepte:*getal,strut::
-var:hoogte:*getal,strut::
-var:lijndikte:*maat::
-var:lijnkleur:*naam::
-var:uitlijnen:rechts,midden,links,normaal::
-var:commandos:*commando::
-var:uitlijnen:links,midden,rechts,normaal::
-var:achtergrond:raster,kleur,geen::
-var:achtergrondraster:*getal::
-var:achtergrondkleur:*naam::
-stopsetup
-
-startsetup
-com:starttabel:
-typ:val/stp/:
-val:*tekst,*naam::
-stopsetup
-
-startsetup
-com:starttabellen:
-typ:val/stp/:
-val:*tekst,*naam::
-stopsetup
-
-startsetup
-com:definieertabelvorm:
-typ:val/val/val/val/:
-val:*naam::
-val:*tekst::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:gebruikexternefiles:
-typ:val/vars/:
-val:*naam::
-var:korps:5pt,...,12pt,klein,groot::
-var:file:*file::
-stopsetup
-
-startsetup
-com:gebruikexternefile:
-typ:val/val/val/vars/:
-val:*naam::
-val:*naam::
-val:*file::
-var:korps:5pt,...,12pt,klein,groot::
-stopsetup
-
-startsetup
-com:gebruikexternfiguur:
-typ:val/val/vars/:
-val:*naam::
-val:*file::
-var:schaal:*getal::
-var:factor:max,passend,ruim::
-var:bfactor:*getal,max,ruim,passend::
-var:hfactor:*getal,max,ruim,passend::
-var:breedte:*maat::
-var:hoogte:*maat::
-var:kader:aan,uit::
-var:preset:ja,nee::
-var:scherm:*file::
-var:preview:ja,nee::
-var:herhaal:ja,nee::
-var:object:ja,nee::
-var:type:eps,mps,pdf,tif,png,jpg,mov,tex::
-var:methode:eps,mps,pdf,tif,png,jpg,mov,tex::
-stopsetup
-
-startsetup
-com:externfiguur:
-typ:val/vars/:
-val:*file::
-ivr:gebruikexternfiguur::
-stopsetup
-
-startsetup
-com:stelexternefigurenin:
-typ:var/:
-var:optie:kader,leeg,test::
-var:object:ja,nee::
-var:hokjes:aan,uit::
-var:ymax:*getal::
-var:xmax:*getal::
-var:gebied:*tekst::
-var:plaats:lokaal,globaal::
-stopsetup
-
-startsetup
-com:toonexternefiguren:
-typ:vars/:
-var:variant:a,b,c::
-stopsetup
-
-startsetup
-com:naam:
-typ:arg/:
-val:*naam::
-stopsetup
-
-startsetup
-com:startlegenda:
-typ:val/tex/{leg}nop/sep/nop/sep/nop/sep/tex/{leg}stp/:
-val:twee::
-val:*tekst::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:startgegeven:
-typ:tex/{geg}nop/sep/nop/sep/nop/sep/tex/{geg}stp/:
-val:*tekst::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:roteer:
-typ:vars/arg/:
-ivr:stelroterenin::
-stopsetup
-
-startsetup
-com:stelroterenin:
-typ:vars/:
-var:rotatie:*getal::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:spiegel:
-typ:arg/:
-stopsetup
-
-startsetup
-com:schaal:
-typ:vars/arg/:
-var:sx:*getal::
-var:sy:*getal::
-stopsetup
-
-startsetup
-com:stelcombinatiesin:
-typ:vars/:
-var:voor:commando::
-var:tussen:commando::
-var:na:commando::
-var:afstand:*maat::
-var:hoogte:*maat,passend::
-var:breedte:*maat,passend::
-stopsetup
-
-startsetup
-com:startcombinatie:
-typ:val/stp/:
-val:*n*m::
-stopsetup
-
-startsetup
-com:plaatsnaastelkaar:
-typ:arg/arg/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:plaatsonderelkaar:
-typ:arg/arg/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:startoverlay:
-typ:arg/arg/stp/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:startoverzicht:
-typ:vals/stp/:
-val:*naam::
-stopsetup
-
-startsetup
-com:stelinteractieschermin:
-typ:vars/:
-var:breedte:*maat,passend,max::
-var:hoogte:*maat,passend,max::
-var:rugwit:*maat::
-var:kopwit:*maat::
-var:rugoffset:*maat::
-var:kopoffset:*maat::
-var:optie:max,bookmark::
-var:wachttijd:*getal,geen::
-stopsetup
-
-startsetup
-com:scherm:
-typ::
-stopsetup
-
-startsetup
-com:stelpaginaovergangenin:
-typ:vals/:
-val:reset, *getal::
-stopsetup
-
-startsetup
-com:stelinteractiein:
-typ:vars/:
-var:status:start,stop::
-var:menu:aan,uit::
-var:pagina:ja,nee::
-var:klik:ja,nee::
-var:scherm:nieuw::
-var:openactie:*verwijzing::
-var:sluitactie:*verwijzing::
-var:bereken:*naam::
-var:strut:ja,nee::
-var:breedte:*maat::
-var:hoogte:*maat::
-var:diepte:*maat::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...*commando::
-var:kleur:*naam::
-var:contrastkleur:*naam::
-var:symboolset:*naam::
-var:titel:*tekst::
-var:subtitel:*tekst::
-var:auteur:*tekst::
-var:datum:*tekst::
-stopsetup
-
-startsetup
-com:stelinteractiemenuin:
-typ:vals/vars/dests/:
-val:links,rechts,boven,onder,*naam::
-var:voor:*commando::
-var:na:*commando::
-var:tussen:*commando::
-var:links:*commando::
-var:rechts:*commando::
-var:midden:*commando::
-var:status:start,stop,geen::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...*commando::
-var:kleur:*naam::
-var:afstand:overlay,*maat::
-var:zelfdepagina:ja,leeg,nee,geen::
-var:onbekendeverwijzing:ja,leeg,nee,geen::
-var:linkeroffset:*maat::
-var:rechteroffset:*maat::
-var:bovenoffset:*maat::
-var:onderoffset:*maat::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:definieerinteractiemenu:
-typ:val/val/vars/:
-val:links,rechts,boven,onder,*naam::
-val:links,rechts,boven,onder,*naam::
-ivr:stelinteractiemenuin::
-stopsetup
-
-startsetup
-com:startinteractiemenu:
-typ:val/stp/:
-val:*naam::
-stopsetup
-
-startsetup
-com:blokkeerinteractiemenu:
-typ:val/refs/:
-val:links,rechts,boven,onder,*naam::
-stopsetup
-
-startsetup
-com:gebruikexterndocument:
-typ:val/val/val/:
-val:*naam::
-val:file::
-val:*tekst::
-stopsetup
-
-startsetup
-com:gebruikURL:
-typ:val/val/val/val/:
-val:*naam::
-val:*tekst::
-val:file::
-val:*tekst::
-stopsetup
-
-startsetup
-com:koppeldocument:
-typ:val/val/val/:
-val:*naam::
-val:file::
-val:*naam::
-val:*tekst::
-stopsetup
-
-startsetup
-com:uit:
-typ:ref/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:interactiebalk:
-typ:vars/:
-ivr:stelinteractiebalkin::
-stopsetup
-
-startsetup
-com:interactiebuttons:
-typ:vars/vals/:
-ivr:stelinteractiebalkin::
-val:*naam::
-stopsetup
-
-startsetup
-com:stelinteractiebalkin:
-typ:vars/:
-var:status:start,stop::
-var:variant:a,b,c,d,e,f,g::
-var:symbool:ja,nee::
-var:breedte:*maat,hoogte,passend::
-var:hoogte:*maat,hoogte,passend::
-var:diepte:*maat::
-var:kleur:*naam::
-var:stap:*getal,klein,middel,groot::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:synchroniseer:
-typ::
-stopsetup
-
-startsetup
-com:startsynchronisatie:
-typ:stp/:
-stopsetup
-
-startsetup
-com:stelsynchronisatiebalkin:
-typ:vars/:
-var:variant:pagina,lokaal::
-var:breedte:*maat,hoogte,passend::
-var:hoogte:*maat::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-var:kleur:*naam::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:synchronisatiebalk:
-typ:val/vars/:
-val:*naam::
-var:variant:pagina,lokaal::
-ivr:stelsynchronisatiebalkin::
-stopsetup
-
-startsetup
-com:stelsynchronisatiein:
-typ:vars/:
-var:status:start,stop::
-stopsetup
-
-startsetup
-com:definieerprofiel:
-typ:vals/vals/:
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:stelprofielenin:
-typ:vars/:
-var:optie:test::
-stopsetup
-
-startsetup
-com:startprofiel:
-typ:vals/stp/:
-val:*naam::
-stopsetup
-
-startsetup
-com:volgprofiel:
-typ:arg/val/:
-val:*tekst::
-val:*naam::
-stopsetup
-
-startsetup
-com:plaatsbookmarks:
-typ:vals/vals/:
-val:*naam::
-stopsetup
-
-startsetup
-com:bookmark:
-typ:val/arg/:
-val:*naam::
-stopsetup
-
-startsetup
-com:startversie:
-typ:vals/stp/:
-val:*getal::
-stopsetup
-
-startsetup
-com:stelversiesin:
-typ:vars/:
-var:nummer:*getal::
-var:letter:normaal,vet,schuin,vetschuin,type,kap,klein...,*commando::
-stopsetup
-
-startsetup
-com:markeerversie:
-typ::
-stopsetup
-
-startsetup
-com:selecteerversie:
-typ::
-stopsetup
-
-startsetup
-com:definieerversie:
-typ:val/vals/:
-val:*naam::
-val:*getal::
-stopsetup
-
-startsetup
-com:volgversie:
-typ:arg/val/:
-val:*tekst::
-val:*naam::
-stopsetup
-
-startsetup
-com:volgprofielversie:
-typ:arg/val/val/:
-val:*tekst::
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:definieerprogramma:
-typ:val/val/val/:
-val:*naam::
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:stelprogrammasin:
-typ:vars/:
-var:gebied:*tekst::
-stopsetup
-
-startsetup
-com:programma:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:startfiguur:
-typ:val/val/vars/stp/:
-val:*naam::
-val:*file::
-var:factor:*getal::
-var:kader:aan,uit::
-stopsetup
-
-startsetup
-com:refereer/figuur:
-typ:poss/poss/val/:
-val:*getal::
-val:*getal::
-val:*getal::
-val:*getal::
-val:*tekst::
-stopsetup
-
-startsetup
-com:markeer/figuur:
-typ:poss/poss/val/:
-val:*getal::
-val:*getal::
-val:*getal::
-val:*getal::
-val:*tekst::
-stopsetup
-
-startsetup
-com:toelichting:
-typ:poss/poss/vars/arg/:
-val:*getal::
-val:*getal::
-val:*getal::
-val:*getal::
-ivr:stelomlijndin::
-val:*tekst::
-stopsetup
-
-startsetup
-com:naar:
-typ:arg/arg/refs/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:naarbox:
-typ:arg/refs/:
-val:*tekst::
-stopsetup
-
-startsetup
-com:button:
-typ:vars/arg/refs/:
-ivr:stelbuttonsin::
-val:*tekst::
-stopsetup
-
-startsetup
-com:stelbuttonsin:
-typ:vars/:
-var:status:start,stop::
-ivr:stelomlijndin::
-stopsetup
-
-startsetup
-com:menubutton:
-typ:val/vars/arg/refs/:
-ivr:stelomlijndin::
-val:*tekst::
-stopsetup
-
-startsetup
-com:stelcommentaarin:
-typ:vars/:
-var:breedte:*maat::
-var:hoogte:*maat::
-var:kleur:*naam::
-var:titel:*tekst::
-var:spatie:ja,nee::
-var:symbool:normaal,Nieuw,Ballon,Toevoeging,Help,Paragraaf,Sleutel::
-stopsetup
-
-startsetup
-com:startcommentaar:
-typ:val/vars/stp/:
-val:*naam::
-ivr:stelcommentaarin::
-stopsetup
-
-startsetup
-com:commentaar:
-typ:val/vars/arg/:
-val:*naam::
-ivr:stelcommentaarin::
-stopsetup
-
-startsetup
-com:definieerveld:
-typ:val/val/val/vals/val/:
-val:*naam::
-val:*naam:radio,check,push,line,text,popup,choice,combo:
-val:*naam::
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:definieersubveld:
-typ:val/val/vals/:
-val:*naam::
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:copieerveld:
-typ:val/vals/:
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:kloonveld:
-typ:val/vals/val/vals/:
-val:*naam::
-val:*naam::
-val:*naam::
-val:*naam::
-stopsetup
-
-startsetup
-com:veld:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:passendveld:
-typ:val/:
-val:*naam::
-stopsetup
-
-startsetup
-com:invulveld:
-typ:val/arg/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:suggestie:
-typ:val/arg/arg/:
-val:links,rechts,midden::
-val:*tekst::
-stopsetup
-
-startsetup
-com:toonvelden:
-typ:vals/:
-val:*naam::
-stopsetup
-
-startsetup
-com:registreervelden:
-typ::
-stopsetup
-
-startsetup
-com:stelveldin:
-typ:val/vals/vars/vars/vars/:
-val:*naam::
-val:label,horizontaal,vertikaal,kader::
-ivr:omlijnd::
-ivr:stelveldenin::
-stopsetup
-
-startsetup
-com:stelveldenin:
-typ:vals/val/vars/vars/vars/:
-val:*naam::
-val:reset,label,horizontaal,vertikaal,kader::
-ivr:omlijnd::
-var:n:*getal::
-var:afstand:*maat::
-var:voor:*commando::
-var:na:*commando::
-var:tussen:*commando::
-var:kleur:*naam::
-var:letter:normaal,vet,schuin,vetschuin,type::
-var:uitlijnen:links,midden,rechts::
-var:optie:alleenleesbaar,verplicht,beschermd,gesorteerd, nietbeschikbaar, verborgen,printbaar::
-var:klikin:*verwijzing::
-var:klikuit:*verwijzing::
-var:gebiedin:*verwijzing::
-var:gebieduit:*verwijzing::
-var:natoets:*verwijzing::
-var:formatteer:*verwijzing::
-var:valideer:*verwijzing::
-var:bereken:*verwijzing::
-var:veldoffset:*maat::
-var:veldkaderkleur:*naam::
-var:veldachtergrondkleur:*naam::
-stopsetup
-
-startsetup
-com:definieerveldstapel:
-typ:val/vals/vars/:
-val:*naam::
-val:*naam::
-ivr:stelveldenin::
-stopsetup
-
-startsetup
-com:veldstapel:
-typ:val/vals/vars/:
-val:*naam::
-val:*naam::
-ivr:stelveldenin::
-stopsetup
-
-startsetup
-com:clip:
-typ:vars/arg/:
-ivr:stelclipin::
-stopsetup
-
-startsetup
-com:stelclipin:
-typ:vars/:
-var:nx:*getal::
-var:ny:*getal::
-var:x:*getal::
-var:y:*getal::
-var:breedte:*maat::
-var:hoogte:*maat::
-var:hoffset:*maat::
-var:voffset:*maat::
-var:mp:*naam::
-stopsetup
-
-startsetup
-com:plaatslegenda:
-typ:arg/arg/:
-val:*tekst::
-val:*tekst::
-stopsetup
-
-startsetup
-com:stellegendain:
-typ:vars/:
-var:n:*getal::
-var:afstand:*maat::
-var:tussen:*commando::
-var:breedte:*maat::
-var:hoogte:*maat::
-var:plaats:rechts,onder::
-var:korps:5pt,...,12pt,klein,groot::
-stopsetup
-
diff --git a/context/perltk/cont_mis.pm b/context/perltk/cont_mis.pm
deleted file mode 100644
index 6bd449bf0..000000000
--- a/context/perltk/cont_mis.pm
+++ /dev/null
@@ -1,69 +0,0 @@
-#D \module
-#D [ file=cont\_mis.pm,
-#D version=1999.05.05,
-#D title=General modules,
-#D subtitle=all kind of subs,
-#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 licen-en.pdf for
-#C details.
-
-#D Not yet documented, source will be cleaned up.
-
-package cont_mis ;
-
-use strict ;
-
-my ($message, $separator, $content) ;
-
-format =
-@>>>>>>>>>>>>>>>>>>>>> @ @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
-$message,$separator,$content
-.
-
-sub report
- { ($message, $separator, $content) = @_ ; write }
-
-sub crlf { print "\n" }
-sub banner { crlf ; report (shift , '/', shift) ; crlf }
-sub message { report (shift , ':', shift) }
-sub help { report (shift , ' ', shift) }
-sub status { message ('status' , shift) }
-sub warning { message ('warning' , shift) }
-sub error { message ('error' , shift) }
-sub continue { message ('' , shift) }
-
-sub hex_color
- { my ($r,$g,$b) = @_ ;
- if ($r>1) { $r=0xffff } else { $r = 0xffff*$r }
- if ($g>1) { $g=0xffff } else { $g = 0xffff*$g }
- if ($b>1) { $b=0xffff } else { $b = 0xffff*$b }
- local $_ = sprintf "%4x%4x%4x", $r, $g, $b ;
- s/ /0/go ;
- return $_ }
-
-sub InterfaceFound
- { local $_ = shift ;
- if (/^\%.*interface=(.*?)\b/)
- { return $1 }
- elsif (/\\(starttekst|stoptekst|startonderdeel)/)
- { return 'nl' }
- elsif (/\\(stelle|verwende|umgebung|benutze)/)
- { return 'de' }
- elsif (/\\(stel|gebruik|omgeving)/)
- { return 'nl' }
- elsif (/\\(use|setup|environment)/)
- { return 'en' }
- elsif (/(hoogte|breedte|letter)=/)
- { return 'nl' }
- elsif (/(height|width|style)=/)
- { return 'en' }
- elsif (/(hoehe|breite|schrift)=/)
- { return 'de' }
- else
- { return '' } }
-
-1;
diff --git a/context/perltk/cont_set.pm b/context/perltk/cont_set.pm
deleted file mode 100644
index 55b630d36..000000000
--- a/context/perltk/cont_set.pm
+++ /dev/null
@@ -1,649 +0,0 @@
-#D \module
-#D [ file=cont\_set.pm,
-#D version=1999.04.01,
-#D title=General modules,
-#D subtitle=showing \CONTEXT\ commands,
-#D author=Hans Hagen,
-#D date=\currentdate,
-#D copyright={PRAGMA / Hans Hagen \& Ton Otten},
-#D suggestions={Tobias Burnus \& Taco Hoekater}]
-#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 As always: thanks to Taco and Tobias for testing this
-#D module and providing suggestions and code snippets as
-#D well as haunting bugs.
-
-package cont_set ;
-
-#D This module (package) deals with providing help information
-#D about the \CONTEXT\ commands. The data needed is derived
-#D from the setup files by \CONTEXT\ itself. The data is
-#D stored in files with suffix \type {tws} (tex work setup).
-#D This module introduces some subroutines:
-#D
-#D \starttabulatie[|Tl|p|]
-#D \NC \type {set\_setup\_interface} \NC sets the primary interface
-#D to search in \NC \NR
-#D \NC \type {set\_setup\_title} \NC sets the title of the main
-#D window title \NC \NR
-#D \NC \type {setups\_found} \NC locate the \type {tws} files
-#D using the \type {kpsewhich}
-#D program \NC \NR
-#D \NC \type {show\_setups} \NC allocate the radio buttons
-#D that can be used to select a
-#D command set \NC \NR
-#D \NC \type {load\_setup(filename)} \NC load the names \type {tws}
-#D file \NC \NR
-#D \NC \type {load\_setups} \NC all found command files can
-#D be loaded at once \NC \NR
-#D \NC \type {setup\_found(filename)} \NC this routine returns~1 when
-#D the file is loaded \NC \NR
-#D \NC \type {update\_setup} \NC when we browse the list with
-#D commands, this routine takes care
-#D of updating the text area \NC \NR
-#D \NC \type {change\_setup} \NC we can manually set the
-#D command set we want to browse,
-#D and this routine takes care of
-#D this \NC \NR
-#D \NC \type {show\_setup(command)} \NC context sensitive help can be
-#D provided by calling this sub \NC \NR
-#D \stoptabulatie
-#D
-#D First we load some packages and set some constants.
-
-use Tk ;
-use Tk::ROText ;
-use Config ;
-
-use strict;
-
-use subs qw/ update_setup / ;
-
-my $dosish = ($Config{'osname'} =~ /dos|win/i) ;
-my $default_size = $dosish ? 9 : 12 ;
-
-my $textfont = "Courier $default_size " ;
-my $userfont = "Courier $default_size italic" ;
-my $buttonfont = "Helvetica $default_size bold " ;
-
-unless ($dosish)
- { $textfont = "-adobe-courier-bold-r-normal--$default_size-120-75-75-m-70-iso8859-1" ;
- $userfont = "-adobe-courier-bold-o-normal--$default_size-120-75-75-m-70-iso8859-1" ;
- $buttonfont = "-adobe-helvetica-bold-r-normal--$default_size-120-75-75-p-69-iso8859-1" }
-
-my $s_vertical = 30 ;
-my $s_horizontal = 72 ;
-my $c_horizontal = 24 ;
-
-#D The main window is not resizable, but the text area and
-#D command list will have scrollbars.
-
-my $mw = MainWindow -> new ( -title => 'ConTeXt commands' ) ;
-
-$mw -> resizable ('n', 'n') ;
-
-sub SetupWindow { return $mw } ;
-
-my $sw = $mw -> Scrolled ( 'ROText' ,
- -scrollbars => 'se' ,
- -height => $s_vertical ,
- -width => $s_horizontal ,
- -wrap => 'none' ,
- -background => 'ivory1' ,
- -font => $textfont ) ;
-
-my $cw = $mw -> Scrolled ( 'Listbox' ,
- -scrollbars => 'e' ,
- -font => $textfont ,
- -width => $c_horizontal ,
- -selectbackground => 'gray' ,
- -background => 'ivory1' ,
- -selectmode => 'browse' ) ;
-
-#D The (optional) file buttons are packed in a frame.
-
-my $fw = $mw -> Frame () ;
-
-my %lw ;
-
-#D We can search for commands, using:
-
-my $request = $fw -> Entry ( -font => $textfont ,
- -background => 'ivory1' ,
- -width => 20 ) ;
-
-#D And the whole bunch of widgets are packed in the main
-#D window.
-
-$fw -> pack ( -fill => 'x' ,
- -side => 'top' ) ;
-$sw -> pack ( #-fill => 'both' ,
- #-expand => 1 ,
- -side => 'left' ) ;
-$cw -> pack ( -fill => 'both' ,
- -expand => 1 ) ;
-
-#D We scan for available setup files, with suffix \type {tws}.
-#D These should be somewhere on the system, grouped in one
-#D directory. At least the english file \type {cont-en.tws}
-#D should be found.
-
-my $tws_path = '' ;
-my @setup_files = ('cont-en.tws') ;
-my $setup_file = $setup_files[0] ;
-my $setup_interface = 'en' ;
-my $old_setup_file = '' ;
-
-sub set_setup_interface
- { $setup_interface = shift }
-
-sub set_setup_title
- { $mw -> configure ( -title => shift ) }
-
-sub setups_found
- { $tws_path = `kpsewhich --format='other text files' --progname=context cont-en.tws` ;
- $tws_path =~ s/cont-en\.tws.*// ;
- chop $tws_path ;
- @setup_files = glob ("$tws_path*.tws") ;
- if (@setup_files)
- { foreach (@setup_files) { s/\.tws// ; s/.*\/// }
- $setup_file = $setup_files[0] ;
- return 1 }
- else
- { return 0 } }
-
-#D The setup files can be shown and chosen.
-
-sub show_setups
- { foreach (@setup_files)
- { $lw{$_} = $fw -> Radiobutton ( -text => lc $_ ,
- -value => $_ ,
- -font => $buttonfont ,
- -selectcolor => 'ivory1' ,
- -indicatoron => 0 ,
- command => \&change_setup ,
- -variable => \$setup_file ) ;
- $lw{$_} -> pack ( -padx => '2p',
- -pady => '2p',
- -side => 'left' ) }
- $request -> pack ( -padx => '6p',
- -pady => '2p',
- -side => 'left' ) }
-
-$cw -> bind ('<B1-Motion>', \&update_setup ) ;
-$cw -> bind ('<1>' , \&update_setup ) ;
-$cw -> bind ('<Key>' , \&update_setup ) ;
-
-$sw -> tag ('configure', 'user' , -font => $userfont ) ;
-$sw -> tag ('configure', 'command' , -foreground => 'green3' ) ;
-$sw -> tag ('configure', 'variable' , -font => $userfont ) ;
-$sw -> tag ('configure', 'default' , -underline => 1 ) ;
-$sw -> tag ('configure', 'symbol' , -foreground => 'blue3' ) ;
-$sw -> tag ('configure', 'or' , -foreground => 'yellow3' ) ;
-$sw -> tag ('configure', 'argument' , -foreground => 'red3' ) ;
-$sw -> tag ('configure', 'par' , -lmargin1 => '4m' ,
- -lmargin2 => '6m' ) ;
-
-my %setups ;
-my %commands ;
-my %loadedsetups ;
-my %positions ;
-my %crosslinks ;
-
-my $current_setup = '' ;
-
-#D Setups are organized in files called \type {*.tws} and
-#D alike. Several files can be loaded simultaneously. When
-#D loading, we grab whole paragraphs. The variables and values
-#D belonging to a command, are stored in the hash table \type
-#D {setups}, one per language. The command templates are
-#D stored in \type {commands}.
-#D
-#D A \type {tws} file is generated by \CONTEXT\ from the setup
-#D definition files. Only \CONTEXT\ knows the current meaning
-#D of commands and keywords. The files are generating by
-#D simply saying something like:
-#D
-#D \starttypen
-#D texexec --interface=en setupd
-#D texexec --interface=de setupd
-#D texexec --interface=nl setupd
-#D texexec --interface=cz setupd
-#D \stoptypen
-#D
-#D This results in files formatted as:
-#D
-#D \starttypen
-#D startsetup
-#D com:setupcolors
-#D typ:vars/
-#D var:state:start,stop,global,local:
-#D var:conversion:yes,no,always:
-#D var:reduction:yes,no:
-#D var:rgb:yes,no:
-#D var:cmyk:yes,no:
-#D stopsetup
-#D \stoptypen
-#D
-#D This format can be stored rather efficient and parsed rather
-#D fast. What more do we need.
-
-sub load_setup
- { my $filename = shift ;
- unless (keys %{$commands{$filename}})
- { local $/ = 'stopsetup' ; # in plaats van '' ivm unix ; (taco)
- $current_setup = '' ;
- if (open(SETUP, "$tws_path$filename.tws" ))
- { my $position = 0 ;
- while (<SETUP>)
- { chomp ;
- s/startsetup//mso ;
- s/stopsetup//mso ; # redundant geworden
- s/\r\n //gms ; # in plaats van s/ //gms ; (taco)
- s/com\:(.*?)\:\s(.*)//mso ;
- my $string = $1 ;
- my $command = $1 ;
- my $setup = $2 ;
- ++$position ;
- $string =~ s/(.*?)\<\<(.*?)\>\>(.*?)/$1$2$3/o ;
- $setups {$filename}{$string} = $setup ;
- $commands {$filename}{$string} = $command ;
- $positions {$filename}{$string} = $position ;
- $crosslinks{$filename}[$position] = $string }
- close (SETUP) } }
- my @list = sort {lc $a cmp lc $b} keys %{$commands{$filename}} ;
- $cw -> delete ('0.0', 'end') ;
- $cw -> insert ('end', @list) ;
- $cw -> selectionSet ('0.0', '0.0') ;
- $cw -> activate ('0.0') ;
- $setup_file = $filename ;
- update_setup }
-
-sub load_setups
- { foreach my $setup (@setup_files) { load_setup ($setup) } }
-
-#D The core of this module deals with transforming the
-#D definitions like shown earlier. Details on the format
-#D can be found in the file \type {setupd.tex}. We use the
-#D \type {Tk::Text} automatic hanging identation features.
-#D The next subs are examples of the kind you write once
-#D and never look at again.
-
-my @arguments = () ;
-my $nested_setup = 0 ;
-my $continue_setup = 0 ;
-my $argument = 0 ;
-my $stopsuffix = '' ;
-my $stopcommand = '' ;
-
-my %arg ;
-
-$arg {repeat} = '//n*/' ;
-$arg {arg} = 'argument/{/.../}' ;
-$arg {args} = 'argument/{/..,...,../}' ;
-$arg {dis} = 'argument/$$/.../$$' ;
-$arg {idx} = 'argument/{/.../}' ;
-$arg {idxs} = 'argument/{/..+...+../}' ;
-$arg {mat} = 'argument/$/...:$' ;
-$arg {nop} = '//.../' ;
-$arg {fil} = '//.../' ;
-$arg {pos} = 'symbol/(/.../)' ;
-$arg {poss} = 'symbol/(/...,.../)' ;
-$arg {sep} = 'command//\\\\/' ;
-$arg {ref} = 'symbol/[/ref/]' ;
-$arg {refs} = 'symbol/[/ref,../]' ;
-$arg {val} = 'symbol/[/.../]' ;
-$arg {vals} = 'symbol/[/..,...,../]' ;
-$arg {var} = 'symbol/[/..=../]' ;
-$arg {vars} = 'symbol/[/..,..=..,../]' ;
-$arg {cmd} = 'command//\cmd/' ;
-$arg {dest} = 'symbol/[/..ref/]' ;
-$arg {dests} = 'symbol/[/..,..refs,../]' ;
-$arg {trip} = 'symbol/[/x:y:z=/]' ;
-$arg {trips} = 'symbol/[/x:y:z=,../]' ;
-$arg {wrd} = 'argument/{/.../}' ;
-$arg {wrds} = 'argument/{/......./}' ;
-$arg {par} = 'command//\par/' ;
-$arg {stp} = '//stop/' ;
-$arg {par} = 'command///' ;
-
-sub show_command
- { my $command = shift ;
- local $_ = $commands{$setup_file}{$command} ;
- if ($command eq $_)
- { $sw -> insert ('end', "\\$command", 'command' ) }
- elsif (/(.*?)\<\<(.*?)\>\>(.*?)/o)
- { $sw -> insert ('end', "\\", 'command' ) ;
- if ($1) { $sw -> insert ('end', $1, 'command' ) }
- if ($2) { $sw -> insert ('end', $2, ['command','user'] ) }
- if ($3) { $sw -> insert ('end', $3, 'command' ) }
- $stopsuffix = $2 } }
-
-sub show_left_argument
- { local $_ = shift ;
- my @thearg = split (/\//, $arg{$arguments[$_]}) ;
- $sw -> insert ('end', $thearg[1], ['par',$thearg[0]] ) }
-
-sub show_middle_argument
- { local $_ = shift ;
- my @thearg = split (/\//, $arg{$arguments[$_]}) ;
- if ($thearg[1])
- { $sw -> insert ('end', $thearg[2], 'par' ) }
- else
- { $sw -> insert ('end', $thearg[2], ['par',$thearg[0]] ) } }
-
-sub show_right_argument
- { local $_ = shift ;
- my @thearg = split (/\//, $arg{$arguments[$_]}) ;
- $sw -> insert ('end', $thearg[3], ['par',$thearg[0]] ) ;
- ++$argument }
-
-sub show_reference
- { if (($nested_setup<=1)&&(defined($arguments[$argument])))
- { if ($arguments[$argument]=~/ref/)
- { $sw -> insert ('end', "\n" ) ;
- show_left_argument ($argument) ;
- show_middle_argument ($argument) ;
- show_right_argument ($argument) } } }
-
-sub show_stop_command
- { my $before_stop = shift ;
- if ($stopcommand)
- { if ($stopsuffix)
- { $sw -> insert ('end', '\\stop', 'command' ) ;
- $sw -> insert ('end', $stopsuffix, ['command','user'] ) }
- else
- { $sw -> insert ('end', $stopcommand, 'command' ) } } }
-
-sub show_whatever_left
- { while ($argument<@arguments)
- { $sw -> insert ('end', "\n" ) ;
- show_left_argument ($argument) ;
- show_middle_argument ($argument) ;
- show_right_argument ($argument) ;
- ++$argument }
- if ($stopcommand)
- { $sw -> insert ('end', "\n...\n...\n...\n", 'par') ;
- show_stop_command } }
-
-sub do_update_setup # type: 0=all 1=vars 2=vals
- { my ($command, $type) = @_ ;
- my $setup = $setups{$setup_file}{$command} ;
- my $default = '' ;
- my $key = '' ;
- my $meaning = '' ;
- my @values = () ;
- local $_ ;
- ++$nested_setup ;
- while ($setup=~/(typ|var|val|ivr|ivl)\:(.*?)\:\s/mgo)
- { $key = $1 ;
- $meaning = $2 ;
- if (($key=~/var/o)&&($type!=2))
- { $_ = $meaning ; s/(.*?)\:(.*?)\:(.*)//o ;
- if (($nested_setup>1)&&(!$2)) { next }
- $key = $1 ;
- if ($3) { $default = $3 } else { $default = '' }
- $_= $2 ; s/\s//go ; @values = split (/,/,$_) ;
- if ($continue_setup)
- { $sw -> insert ('end', ",\n ", 'par') }
- else
- { $continue_setup = 1 ;
- $sw -> insert ('end', "\n", 'par') ;
- show_left_argument($argument) }
- $sw -> insert ('end', $key , 'par' ) ;
- $sw -> insert ('end', '=', ['symbol','par'] ) ;
- #while (1)
- while (@values)
- { my $value = shift @values ;
- if ($value =~ /^\*/o)
- { $value =~ s/^\*//o ;
- $sw -> insert ('end', lc $value, ['variable','par'] ) }
- elsif ($value eq $default)
- { $sw -> insert ('end', $value, ['default','par'] ) }
- else
- { $sw -> insert ('end', $value, 'par' ) }
- if (@values)
- { $sw -> insert ('end', '|' , ['or','par'] ) }
- else
- { last } } }
- elsif (($key=~/val/o)&&($type!=1))
- { $_ = $meaning ; s/(.*)\:(.*)//o ;
- if (($nested_setup>1)&&(!$2)) { next }
- $_ = $1 ; s/\s//go ; @values = split (/,/,$_) ;
- if ($2) { $default = $2 } else { $default = '' }
- if ($continue_setup)
- { $continue_setup = 0 ;
- show_right_argument($argument) }
- $sw -> insert ('end', "\n" , 'par') ;
- show_left_argument($argument) ;
- #while (1)
- while (@values)
- { unless (@values) { last }
- my $value = shift (@values) ;
- if ($value =~ /^\*/o)
- { $value =~ s/^\*//o ;
- $sw -> insert ('end', lc $value, ['variable','par'] ) }
- elsif ($value eq $default)
- { $sw -> insert ('end', $value, ['default','par'] ) }
- else
- { $sw -> insert ('end', $value, 'par' ) }
- if (@values)
- { $sw -> insert ('end', ', ', 'par' ) }
- else
- { last } }
- show_right_argument($argument) }
- elsif ($key=~/typ/o)
- { if ($nested_setup==1)
- { show_command ($command) ;
- my $arguments = $meaning ;
- if ($arguments=~/stp/)
- { $_ = $command ;
- s/start(.*)/$1/o ;
- $stopcommand = "\\stop$_" ;
- $arguments =~ s/stp//go }
- @arguments = split (/\//,$arguments) ;
- if (@arguments)
- { for (my $i=0;$i<@arguments;$i++)
- { show_left_argument ($i) ;
- show_middle_argument ($i) ;
- show_right_argument ($i) }
- if ($stopcommand)
- { $sw -> insert ('end', ' ... ') ;
- show_stop_command }
- $sw -> insert ('end', "\n\n") ;
- show_command ($command) }
- $argument = 0 ;
- $continue_setup = 0 } }
- elsif ($key=~/ivr/o)
- { $meaning =~ s/(.*)\:(.*)//o ;
- do_update_setup ($1,1) }
- elsif ($key=~/ivl/o)
- { $meaning =~ s/(.*)\:(.*)//o ;
- do_update_setup ($1,2) }
- show_reference }
- --$nested_setup ;
- if (($continue_setup)&&(!$nested_setup))
- { show_right_argument ;
- show_whatever_left } }
-
-#D Now the real work is done, we only have to define a few
-#D housekeeping routines. The next sub adapts the text area
-#D to the current selected command and normally is bound to
-#D the list browsing commands.
-
-sub update_setup
- { $old_setup_file = $setup_file ;
- if (keys %{$commands{$setup_file}})
- { my $key ;
- unless ($cw->curselection)
- { $cw -> selectionSet('0.0','0.0') }
- $key = $cw -> get($cw->curselection) ;
- if ($current_setup ne $key)
- { $current_setup = $key ;
- $sw -> delete ('1.0', 'end' ) ;
- $nested_setup = 0 ;
- $argument = 0 ;
- $stopcommand = '' ;
- $stopsuffix = '' ;
- do_update_setup ($key,0) ;
- $mw -> raise ;
- $mw -> focus } } }
-
-#D In editors we want to provide context sensitive help
-#D information. The next sub first tries to locate the
-#D commands asked for in the setup data currently selected,
-#D and when not found takes a look at all the loaded files.
-
-sub show_setup
- { my $asked_for = shift ;
- unless ($asked_for) { return }
- my $found = 0 ;
- $asked_for =~ s/^\\// ;
- if ($setup_interface)
- { $found = 0 ;
- foreach my $name (@setup_files)
- { if (($name=~/\-$setup_interface/)&&(exists($commands{$name}{$asked_for})))
- { $found = 1 ;
- $setup_file = $name ;
- last } } }
- if (!($found)&&(exists($commands{$setup_file}{$asked_for})))
- { $found = 1 }
- else
- { $found = 0 ;
- foreach my $name (@setup_files)
- { if (exists($commands{$name}{$asked_for}))
- { $found = 1 ;
- $setup_file = $name ;
- last } } }
- if ($found)
- { my @list = sort {lc $a cmp lc $b} keys %{$commands{$setup_file}} ;
- $cw -> delete ('0.0', 'end') ;
- $cw -> insert ('end', @list) ;
- $found = 0 ;
- foreach (@list) { if ($_ eq $asked_for) { last } ++$found }
- my $index = "$found.0" ;
- $cw -> selectionSet ($index, $index) ;
- $cw -> activate ($index) ;
- $cw -> see ($index) ;
- update_setup ;
- $mw -> raise ;
- $mw -> focus } }
-
-#D Whenever a new set of commands is selected (by means of the
-#D buttons on top the screen) the list and text are to be
-#D updated.
-
-sub change_setup
- { my $command = '' ;
- if ($old_setup_file)
- { unless ($cw->curselection)
- { $cw -> selectionSet('0.0','0.0') }
- $command = $cw -> get($cw->curselection) ;
- my $position = $positions{$old_setup_file}{$command} ;
- $command = $crosslinks{$setup_file}[$position] }
- load_setup($setup_file) ;
- my @list = sort {lc $a cmp lc $b} keys %{$commands{$setup_file}} ;
- $cw -> delete ('0.0', 'end') ;
- $cw -> insert ('end', @list) ;
- if ($command)
- { show_setup($command) }
- else
- { $cw -> selectionClear ('0.0','end') ;
- $cw -> selectionSet ('0.0', '0.0') ;
- $cw -> see ('0.0') ;
- $cw -> activate ('0.0') }
- update_setup ;
- $mw -> raise ;
- $mw -> focus }
-
-#D Sometimes we want to make sure the dat is loaded indeed:
-
-sub setup_found
- { my $filename = shift ;
- if (-e "$tws_path$filename.tws")
- { $setup_file = $filename ;
- return 1 }
- else
- { return 0 } }
-
-#D The next feature is dedicated to Tobias, who suggested
-#D it, and Taco, who saw it as yet another proof of the
-#D speed of \PERL. It's also dedicated to Ton, who needs it
-#D for translating the big manual.
-
-sub handle_request
- { my $index = $cw -> index('end') ;
- unless ($index) { return }
- my $req = $request -> get ;
- unless ($req) { return }
- $req =~ s/\\//o ;
- $req =~ s/\s//go ;
- $request -> delete('0','end') ;
- $request -> insert('0',$req) ;
- unless ($req) { return }
- my ($l,$c) = split (/\./,$index) ;
- for (my $i=0;$i<=$l;$i++)
- { $index = "$i.0" ;
- my $str = $cw -> get ($index, $index) ;
- if ($str =~ /^$req/)
- { $cw -> selectionClear ('0.0','end') ;
- $cw -> selectionSet ($index, $index) ;
- $cw -> activate ($index) ;
- $cw -> see ($index) ;
- update_setup ;
- $mw -> raise ;
- $mw -> focus ;
- return } } }
-
-$request -> bind ('<Return>', sub { handle_request } ) ;
-
-sub insert_request
- { my ($self, $chr) = @_ ;
- if ($self ne $request)
- { $request -> insert ('end', $chr) }
- handle_request }
-
-foreach my $chr ('a'..'z','A'..'Z')
- { $mw -> bind ( "<KeyPress-$chr>", sub { insert_request(shift, $chr) } ) }
-
-$mw -> bind ( "<backslash>", sub { insert_request(shift, "\\") } ) ;
-
-sub delete_request
- { my $self = shift ;
- if ($self ne $request)
- { my $to = $request -> index ('end') ;
- my $from = $to - 1 ;
- if ($from<0) { $from = 0 }
- $request -> delete ($from,$to) }
- handle_request }
-
-$mw -> bind ( "<BackSpace>", sub { delete_request } ) ;
-
-sub new_request
- { $request -> delete (0,'end') ;
- handle_request }
-
-$mw -> bind ( "<space>", sub { new_request } ) ;
-
-#D Just in case:
-
-sub raise_setup
- { $mw -> raise }
-
-sub dont_exit
- { $mw -> protocol( 'WM_DELETE_WINDOW' => sub { } ) }
-
-#D An example use is:
-#D
-#D \starttypen
-#D load_setup ("cont-$nl") ;
-#D show_setup ('omlijnd') ;
-#D MainLoop () ;
-#D \stoptypen
-#D
-#D Now everything is done, we return 1:
-
-1 ;
diff --git a/context/perltk/texexec.pl b/context/perltk/texexec.pl
deleted file mode 100644
index c80cb87a0..000000000
--- a/context/perltk/texexec.pl
+++ /dev/null
@@ -1,1408 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
- if 0;
-
-#D We started with a hack provided by Thomas Esser. This
-#D expression replaces the unix specific line \type
-#D {#!/usr/bin/perl}.
-
-# in a few versions DetermineNOfPdfPages is obsolete
-
-# nog doen: automatisch log scannen op overfull en missing
-# fastmode tzt anders: \iffastmode \fi
-
-#D \module
-#D [ file=texexec.pl,
-#D version=1999.11.03,
-#D title=running \ConTeXt,
-#D subtitle=\TEXEXEC,
-#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 licen-en.pdf for
-#C details.
-
-# Thanks to Tobias Burnus for the german translations.
-# Thanks to Thomas Esser for hooking it into web2c
-# Thanks to Taco Hoekwater for suggesting improvements
-
-use Cwd ;
-use Time::Local ;
-use Config ;
-use Getopt::Long ;
-
-use strict ;
-
-#D In this script we will launch some programs and other
-#D scripts. \TEXEXEC\ uses an ini||file to sort out where
-#D those programs are stored. Two boolean variables keep
-#D track of the way to call the programs. In \TEXEXEC,
-#D \type {$dosish} keeps track of the operating system.
-#D It will be no surprise that Thomas Esser provided me
-#D the neccessary code to accomplish this.
-
-my $dosish = ($Config{'osname'} =~ /dos|win/i) ;
-
-my $TeXUtil = 'texutil' ;
-my $SGMLtoTeX = 'sgml2tex' ;
-my $FDFtoTeX = 'fdf2tex' ;
-
-$Getopt::Long::passthrough = 1 ; # no error message
-$Getopt::Long::autoabbrev = 1 ; # partial switch accepted
-
-my $AddEmpty = '' ;
-my $Alone = 0 ;
-my $Arrange = 0 ;
-my $BackSpace = '0pt' ;
-my $CenterPage = 0 ;
-my $ConTeXtInterface = 'unknown' ;
-my $Convert = '' ;
-my $DoMPTeX = 0 ;
-my $EnterBatchMode = 0 ;
-my $Environment = '' ;
-my $FastMode = 0 ;
-my $FinalMode = 0 ;
-my $Format = '' ;
-my $HelpAsked = 0 ;
-my $MainBodyFont = 'standard' ;
-my $MainLanguage = 'standard' ;
-my $MakeFormats = 0 ;
-my $Markings = 0 ;
-my $Mode = '' ;
-my $NoArrange = 0 ;
-my $NoDuplex = 0 ;
-my $NOfRuns = 7 ;
-my $NoMPMode = 0 ;
-my $OutputFormat = 'standard' ;
-my $Pages = '' ;
-my $PageScale = '1000' ; # == 1.0
-my $PaperFormat = 'standard' ;
-my $PaperOffset = '0pt' ;
-my $PassOn = '' ;
-my $PdfArrange = 0 ;
-my $PdfSelect = 0 ;
-my $PdfCombine = 0 ;
-my $PrintFormat = 'standard' ;
-my $ProducePdf = 0 ;
-my $Result = 0 ;
-my $RunOnce = 0 ;
-my $Selection = '' ;
-my $Combination = '2*4' ;
-my $SilentMode = 0 ;
-my $TeXProgram = '' ;
-my $TeXTranslation = '' ;
-my $TextWidth = '0pt' ;
-my $TopSpace = '0pt' ;
-my $TypesetFigures = 0 ;
-my $TypesetListing = 0 ;
-my $TypesetModule = 0 ;
-my $UseColor = 0 ;
-my $Verbose = 0 ;
-my $PdfCopy = 0 ;
-
-&GetOptions
- ( "arrange" => \$Arrange ,
- "batch" => \$EnterBatchMode ,
- "color" => \$UseColor ,
- "centerpage" => \$CenterPage ,
- "convert=s" => \$Convert ,
- "environment=s" => \$Environment ,
- "fast" => \$FastMode ,
- "final" => \$FinalMode ,
- "format=s" => \$Format ,
- "help" => \$HelpAsked ,
- "interface=s" => \$ConTeXtInterface ,
- "language=s" => \$MainLanguage ,
- "bodyfont=s" => \$MainBodyFont ,
- "make" => \$MakeFormats ,
- "mode=s" => \$Mode ,
- "module" => \$TypesetModule ,
- "figures=s" => \$TypesetFigures ,
- "listing" => \$TypesetListing ,
- "mptex" => \$DoMPTeX ,
- "noarrange" => \$NoArrange ,
- "nomp" => \$NoMPMode ,
- "once" => \$RunOnce ,
- "output=s" => \$OutputFormat ,
- "pages=s" => \$Pages ,
- "paper=s" => \$PaperFormat ,
- "passon=s" => \$PassOn ,
- "pdf" => \$ProducePdf ,
- "pdfarrange" => \$PdfArrange ,
- "pdfselect" => \$PdfSelect ,
- "pdfcombine" => \$PdfCombine ,
- "pdfcopy" => \$PdfCopy ,
- "scale=s" => \$PageScale ,
- "selection=s" => \$Selection ,
- "combination=s" => \$Combination ,
- "noduplex" => \$NoDuplex ,
- "paperoffset=s" => \$PaperOffset ,
- "backspace=s" => \$BackSpace ,
- "topspace=s" => \$TopSpace ,
- "markings" => \$Markings ,
- "textwidth=s" => \$TextWidth ,
- "addempty=s" => \$AddEmpty ,
-
- "print=s" => \$PrintFormat ,
- "results=s" => \$Result ,
- "runs=s" => \$NOfRuns ,
- "silent" => \$SilentMode ,
- "tex=s" => \$TeXProgram ,
- "verbose" => \$Verbose ,
- "alone" => \$Alone ) ;
-
-$SIG{INT} = "IGNORE" ;
-
-if ($PdfArrange||$PdfSelect||$PdfCopy||$PdfCombine)
- { $ProducePdf = 1 ;
- $RunOnce = 1 }
-
-if ($ProducePdf)
- { $OutputFormat = "pdf" }
-
-if ($RunOnce||$Pages||$TypesetFigures||$TypesetListing)
- { $NOfRuns = 1 }
-
-my $Program = " TeXExec 1.9 - ConTeXt / PRAGMA ADE 1997-2000" ;
-
-print "\n$Program\n\n";
-
-my $pathslash = '/' ; if ($0 =~ /\\/) { $pathslash = "\\" }
-my $cur_path = ".$pathslash" ;
-my $own_path = $0 ; $own_path =~ s/texexec\.(pl|bat|)//io ;
-
-sub checked_path
- { my $path = shift ;
- if ((defined($path))&&($path ne ''))
- { $path =~ s/[\/\\]/$pathslash/go ;
- $path =~ s/[\/\\]*$//go ;
- $path .= $pathslash }
- else
- { $path = '' }
- return $path }
-
-sub checked_file
- { my $path = shift ;
- if ((defined($path))&&($path ne ''))
- { $path =~ s/[\/\\]/$pathslash/go }
- else
- { $path = '' }
- return $path }
-
-sub CheckPath
- { my ($Key, $Value) = @_ ;
- if ($Value =~ /\//)
- { $Value = checked_path($Value) ;
- unless (-d $Value)
- { print " error : $Key set to unknown path $Value\n" } } }
-
-# set <variable> to <value>
-# for <script> set <variable> to <value>
-# except for <script> set <variable> to <value>
-
-my $IniPath = '' ;
-
-#D The kpsewhich program is not available in all tex distributions, so
-#D we have to locate it before running it (as suggested by Thomas).
-
-my @paths ;
-
-if ($ENV{PATH} =~ /\;/)
- { @paths = split(/\;/,$ENV{PATH}) }
-else
- { @paths = split(/\:/,$ENV{PATH}) }
-
-my $kpsewhich = '' ;
-
-if ($IniPath eq '')
- { foreach (@paths)
- { my $p = checked_path($_) . 'kpsewhich' ;
- if ((-e $p)||(-e $p . '.exe'))
- { $kpsewhich = $p ;
- $IniPath = `$kpsewhich --format="other text files" -progname=context texexec.ini` ;
- chomp($IniPath) ;
- last } }
- if ($Verbose)
- { if ($IniPath eq '')
- { print " locating ini file : kpsewhich not found in path\n" }
- else
- { print " locating ini file : found by kpsewhich\n" } } }
-
-#D Now, when we didn't find the \type {kpsewhich}, we have
-#D to revert to some other method. We could have said:
-#D
-#D\starttypen
-#D unless ($IniPath)
-#D { $IniPath = `perl texpath.pl texexec.ini` }
-#D \stoptypen
-#D
-#D But loading perl (for the second time) take some time. Instead of
-#D providing a module, which can introduce problems with loading, I
-#D decided to copy the code of \type {texpath} into this file.
-
-use File::Find ;
-
-my ($ReportPath, $ReportName, $ReportFile) = (0,0,1) ;
-my ($FileToLocate, $PathToStartOn) = ('','') ;
-my ($LocatedPath, $LocatedName, $LocatedFile) = ('','','') ;
-
-sub DoLocateFile # we have to keep on pruning
- { if (lc $_ eq $FileToLocate)
- { $LocatedPath = $File::Find::dir ;
- $LocatedName = $_ ;
- $LocatedFile = $File::Find::name }
- if ($LocatedName) { $File::Find::prune = 1 } }
-
-sub LocatedFile
- { $PathToStartOn = shift ;
- $FileToLocate = lc shift ;
- if ($FileToLocate eq '')
- { $FileToLocate = $PathToStartOn ;
- $PathToStartOn = $own_path }
- ($LocatedPath, $LocatedName, $LocatedFile) = ('','','') ;
- if ($FileToLocate ne '')
- { if (-e $cur_path . $FileToLocate)
- { $LocatedPath = $cur_path ;
- $LocatedName = $FileToLocate ;
- $LocatedFile = $cur_path . $FileToLocate }
- else
- { $_ = checked_path($PathToStartOn) ;
- if (-e $_ . $FileToLocate)
- { $LocatedPath = $_ ;
- $LocatedName = $FileToLocate ;
- $LocatedFile = $_ . $FileToLocate }
- else
- { $_ = checked_path($PathToStartOn) ;
- if (/(.*?[\/\\]texmf[\/\\]).*/i)
- { my $SavedRoot = $1 ;
- File::Find::find(\&DoLocateFile, checked_path($1 . 'context/')) ;
- unless ($LocatedFile)
- { File::Find::find(\&DoLocateFile, $SavedRoot) } }
- else
- { $_ = checked_path($_) ;
- File::Find::find(\&DoLocateFile, $_) } } } }
- return ($LocatedPath, $LocatedName, $LocatedFile) }
-
-#D So now we can say:
-
-unless ($IniPath)
- { ($LocatedPath, $LocatedName, $IniPath) = LocatedFile($own_path,'texexec.ini') ;
- if ($Verbose)
- { if ($IniPath eq '')
- { print " locating ini file : not found by searching\n" }
- else
- { print " locating ini file : found by searching\n" } } }
-
-#D The last resorts:
-
-unless ($IniPath)
- { if ($ENV{TEXEXEC_INI_FILE})
- { $IniPath = checked_path($ENV{TEXEXEC_INI_FILE}) . 'texexec.ini' ;
- unless (-e $IniPath) { $IniPath = '' } }
- if ($Verbose)
- { if ($IniPath eq '')
- { print " locating ini file : no environment variable set\n" }
- else
- { print " locating ini file : found by environment variable\n" } } }
-
-unless ($IniPath)
- { $IniPath = $own_path . 'texexec.ini' ;
- unless (-e $IniPath) { $IniPath = '' }
- if ($Verbose)
- { if ($IniPath eq '')
- { print " locating ini file : not found in own path\n" }
- else
- { print " locating ini file : found in own path\n" } } }
-
-#D Now we're ready for loading the initialization file! We
-#D also define some non strict variables. Using \type {$Done}
-#D permits assignments.
-
-my %Done ;
-
-unless ($IniPath)
- { $IniPath = 'texexec.ini' }
-
-if (open(INI, $IniPath))
- { if ($Verbose)
- { print " reading : $IniPath\n" }
- while (<INI>)
- { if (!/^[a-zA-Z\s]/oi)
- { }
- elsif (/except for\s+(\S+)\s+set\s+(\S+)\s*to\s*(.*)\s*/goi)
- { my $one = $1 ; my $two= $2 ; my $three = $3 ;
- if ($one ne $Done{"TeXShell"})
- { $three =~ s/^[\'\"]// ; $three =~ s/[\'\"]$// ; $three =~ s/\s*$// ;
- if ($Verbose)
- { print " setting : '$two' to '$three' except for '$one'\n" }
- $Done{"$two"} = $three ;
- CheckPath ($two, $three) } }
- elsif (/for\s+(\S+)\s+set\s+(\S+)\s*to\s*(.*)\s*/goi)
- { my $one = $1 ; my $two= $2 ; my $three = $3 ; $three =~ s/\s*$// ;
- if ($one eq $Done{"TeXShell"})
- { $three =~ s/^[\'\"]// ; $three =~ s/[\'\"]$// ;
- if ($Verbose)
- { print " setting : '$two' to '$three' for '$one'\n" }
- $Done{"$two"} = $three ;
- CheckPath ($two, $three) } }
- elsif (/set\s+(\S+)\s*to\s*(.*)\s*/goi)
- { my $one = $1 ; my $two= $2 ;
- unless (defined($Done{"$one"}))
- { $two =~ s/^[\'\"]// ; $two =~ s/[\'\"]$// ; $two =~ s/\s*$// ;
- if ($Verbose)
- { print " setting : '$one' to '$two' for 'all'\n" }
- $Done{"$one"} = $two ;
- CheckPath ($one, $two) } } }
- close (INI) ;
- if ($Verbose)
- { print "\n" } }
-elsif ($Verbose)
- { print " warning : $IniPath not found, did you read 'texexec.rme'?\n" ;
- exit 1 }
-else
- { print " warning : $IniPath not found, try 'texexec --verbose'\n" ;
- exit 1 }
-
-sub IniValue
- { my ($Key,$Default) = @_ ;
- if (defined($Done{$Key})) { $Default = $Done{$Key} }
- if ($Verbose)
- { print " used setting : $Key = $Default\n" }
- return $Default }
-
-my $TeXShell = IniValue('TeXShell' , '' ) ;
-my $SetupPath = IniValue('SetupPath' , '' ) ;
-my $UserInterface = IniValue('UserInterface' , 'en' ) ;
-my $UsedInterfaces = IniValue('UsedInterfaces' , 'en' ) ;
-my $MpExecutable = IniValue('MpExecutable' , 'mpost' ) ;
-my $MpToTeXExecutable = IniValue('MpToTeXExecutable' , 'mpto' ) ;
-my $DviToMpExecutable = IniValue('DviToMpExecutable' , 'dvitomp' ) ;
-my $TeXProgramPath = IniValue('TeXProgramPath' , '' ) ;
-my $TeXFormatPath = IniValue('TeXFormatPath' , '' ) ;
-my $ConTeXtPath = IniValue('ConTeXtPath' , '' ) ;
-my $TeXScriptsPath = IniValue('TeXScriptsPath' , '' ) ;
-my $TeXExecutable = IniValue('TeXExecutable' , 'tex' ) ;
-my $TeXVirginFlag = IniValue('TeXVirginFlag' , '-ini' ) ;
-my $TeXPassString = IniValue('TeXPassString' , '' ) ;
-my $TeXFormatFlag = IniValue('TeXFormatFlag' , '' ) ;
-
-my $FmtLanguage = IniValue('FmtLanguage' , '' ) ;
-my $FmtBodyFont = IniValue('FmtBodyFont' , '' ) ;
-my $TcXPath = IniValue('TcXPath' , '' ) ;
-
-if (($FmtLanguage)&&($MainLanguage eq 'standard'))
- { $MainLanguage = $FmtLanguage }
-if (($FmtBodyFont)&&($MainBodyFont eq 'standard'))
- { $MainBodyFont = $FmtBodyFont }
-
-if ($Verbose) { print "\n" }
-
-unless ($TeXFormatFlag)
- { if ($dosish) { $TeXFormatFlag = "&" } else { $TeXFormatFlag = "\\&" } }
-
-if ($TeXProgram)
- { $TeXExecutable = $TeXProgram }
-
-my $fmtutil = '' ;
-
-if ($Alone)
- { if ($Verbose)
- { print " generating format : not using fmtutil\n" } }
-elsif ($TeXShell =~ /tetex|fptex/i)
- { foreach (@paths)
- { my $p = checked_path($_) . 'fmtutil' ;
- if (-e $p)
- { $fmtutil = $p ; last }
- elsif (-e $p . '.exe')
- { $fmtutil = $p . '.exe' ; last } }
- if ($Verbose)
- { if ($fmtutil eq '')
- { print " locating fmtutil : not found in path\n" }
- else
- { print " locating fmtutil : found\n" } } }
-
-unless ($TeXScriptsPath)
- { $TeXScriptsPath = $own_path }
-
-unless ($ConTeXtPath)
- { $ConTeXtPath = $TeXScriptsPath }
-
-if ($ENV{"HOME"})
- { if ($SetupPath) { $SetupPath .= "," }
- $SetupPath .= $ENV{"HOME"} }
-
-if ($TeXFormatPath) { $TeXFormatPath =~ s/[\/\\]$// ; $TeXFormatPath .= '/' }
-if ($ConTeXtPath) { $ConTeXtPath =~ s/[\/\\]$// ; $ConTeXtPath .= '/' }
-if ($SetupPath) { $SetupPath =~ s/[\/\\]$// ; $SetupPath .= '/' }
-if ($TeXScriptsPath) { $TeXScriptsPath =~ s/[\/\\]$// ; $TeXScriptsPath .= '/' }
-
-my %OutputFormats ;
-
-$OutputFormats{pdf} = "pdftex" ;
-$OutputFormats{pdftex} = "pdftex" ;
-$OutputFormats{dvips} = "dvips" ;
-$OutputFormats{dvipsone} = "dvipsone" ;
-$OutputFormats{acrobat} = "acrobat" ;
-$OutputFormats{dviwindo} = "dviwindo" ;
-$OutputFormats{dviview} = "dviview" ;
-
-my @ConTeXtFormats = ("nl", "en", "de", "cz", "uk") ;
-
-my %ConTeXtInterfaces ;
-
-$ConTeXtInterfaces{nl} = "nl" ; $ConTeXtInterfaces{dutch} = "nl" ;
-$ConTeXtInterfaces{en} = "en" ; $ConTeXtInterfaces{english} = "en" ;
-$ConTeXtInterfaces{de} = "de" ; $ConTeXtInterfaces{german} = "de" ;
-$ConTeXtInterfaces{cz} = "cz" ; $ConTeXtInterfaces{czech} = "cz" ;
-$ConTeXtInterfaces{uk} = "uk" ; $ConTeXtInterfaces{brittish} = "uk" ;
-$ConTeXtInterfaces{xx} = "xx" ; $ConTeXtInterfaces{experimental} = "xx" ;
-
-my %Help ;
-
-$Help{ARRANGE} = " --arrange process and arrange\n" ;
-$Help{BATCH} = " --batch run in batch mode (don't pause)\n" ;
-$Help{CENTERPAGE} = " --centerpage center the page on the paper\n" ;
-$Help{COLOR} = " --color enable color (when not yet enabled)\n" ;
-$Help{CONVERT} = " --convert converts file first\n" ;
-$Help{convert} =
-$Help{CONVERT} . " =xml : XML => TeX\n"
- . " =sgml : SGML => TeX\n" ;
-$Help{ENVIRONMENT} = " --environment load some environments first\n" ;
-$Help{environment} =
-$Help{ENVIRONMENT} . " =name : list of environments\n" ;
-$Help{FAST} = " --fast skip as much as possible\n" ;
-$Help{FIGURES} = " --figures typeset figure directory\n" ;
-$Help{figures} =
-$Help{FIGURES} . " =a : room for corrections\n"
- . " =b : just graphics\n"
- . " =c : one (cropped) per page\n"
- . " --paperoffset room left at paper border\n" ;
-$Help{FINAL} = " --final add a final run without skipping\n" ;
-$Help{FORMAT} = " --format fmt file\n" ;
-$Help{format} =
-$Help{FORMAT} . " =name : format file (memory dump) \n" ;
-$Help{INTERFACE} = " --interface user interface\n" ;
-$Help{interface} =
-$Help{INTERFACE} . " =en : English\n"
- . " =nl : Dutch\n"
- . " =de : German\n"
- . " =cz : Czech\n"
- . " =uk : Brittish\n" ;
-$Help{LANGUAGE} = " --language main hyphenation language \n" ;
-$Help{language} =
-$Help{LANGUAGE} . " =xx : standard abbreviation \n" ;
-$Help{LISTING} = " --listing produce a verbatim listing\n" ;
-$Help{listing} =
-$Help{LISTING} . " --backspace inner margin of the page\n" .
- " --topspace top/bottom margin of the page\n" ;
-$Help{MAKE} = " --make build format files \n" ;
-$Help{make} =
-$Help{MAKE} . " --language patterns to include\n" .
- " --bodyfont bodyfont to preload\n" ;
-$Help{MODE} = " --mode running mode \n" ;
-$Help{mode} =
-$Help{MODE} . " =list : modes to set\n" ;
-$Help{MODULE} = " --module typeset tex/pl/mp module\n" ;
-$Help{MPTEX} = " --mptex run an MetaPost btex-etex cycle\n" ;
-$Help{NOARRANGE} = " --noarrange process but ignore arrange\n" ;
-$Help{NOMP} = " --nomp don't run MetaPost\n" ;
-$Help{ONCE} = " --once run TeX only once (no TeXUtil either)\n" ;
-$Help{OUTPUT} = " --output specials to use\n" ;
-$Help{output} =
-$Help{OUTPUT} . " =pdftex\n"
- . " =dvips\n"
- . " =dvipsone\n"
- . " =dviwindo\n"
- . " =dviview\n" ;
-$Help{PASSON} = ' --passon switches to pass to TeX ("--src" for MikTeX)' . "\n" ;
-$Help{PAGES} = " --pages pages to output\n" ;
-$Help{pages} =
-$Help{PAGES} . " =odd : odd pages\n" .
- " =even : even pages\n" .
- " =x,y:z : pages x and y to z\n" ;
-$Help{PAPER} = " --paper paper input and output format\n" ;
-$Help{paper} =
-$Help{PAPER} . " =a4a3 : A4 printed on A3\n" .
- " =a5a4 : A5 printed on A4\n" ;
-$Help{PDF} = " --pdf produce PDF directly using pdf(e)tex\n" ;
-$Help{PDFARRANGE} = " --pdfarrange arrange pdf pages\n" ;
-$Help{pdfarrange} =
-$Help{PDFARRANGE} . " --paperoffset room left at paper border\n" .
- " --paper paper format\n" .
- " --noduplex single sided\n" .
- " --backspace inner margin of the page\n" .
- " --topspace top/bottom margin of the page\n" .
- " --markings add cutmarks\n" .
- " --addempty add empty page after\n" .
- " --textwidth width of the original (one sided) text\n" ;
-$Help{PDFCOPY} = " --pdfcopy scale pages down/up\n" ;
-$Help{pdfcopy} =
-$Help{PDFCOMBINE} = " --pdfcombine combine pages to one page\n" ;
-$Help{pdfcombine} =
-$Help{PDFCOMBINE} . " --paperformat paper format\n" .
- " --combination n*m pages per page\n" .
- " --paperoffset room left at paper border\n" ;
-$Help{PDFCOPY} . " --scale new page scale\n" ;
-$Help{PDFSELECT} = " --pdfselect select pdf pages\n" ;
-$Help{pdfselect} =
-$Help{PDFSELECT} = " --selection pages to select\n" .
- " =odd : odd pages\n" .
- " =even : even pages\n" .
- " =x,y:z : pages x and y to z\n" ;
- " --paperoffset room left at paper border\n" .
- " --paperformat paper format\n" .
- " --backspace inner margin of the page\n" .
- " --topspace top/bottom margin of the page\n" .
- " --markings add cutmarks\n" .
- " --addempty add empty page after\n" .
- " --textwidth width of the original (one sided) text\n" ;
-$Help{PRINT} = " --print page imposition scheme\n" ;
-$Help{print} =
-$Help{PRINT} . " =up : 2 pages per sheet doublesided \n" .
- " =down : 2 rotated pages per sheet doublesided \n" ;
-$Help{RESULT} = " --result resulting file \n" ;
-$Help{result} =
-$Help{RESULT} . " =name : filename \n" ;
-$Help{RUNS} = " --runs maximum number of TeX runs \n" ;
-$Help{runs} =
-$Help{RUNS} . " =n : number of runs\n" ;
-$Help{SILENT} = " --silent minimize (status) messages\n" ;
-$Help{TEX} = " --tex TeX binary \n" ;
-$Help{tex} =
-$Help{TEX} . " =name : binary of executable \n" ;
-$Help{VERBOSE} = " --verbose shows some additional info \n" ;
-$Help{HELP} = " --help show this or more, e.g. '--help interface'\n" ;
-
-if ($HelpAsked)
- { if (@ARGV)
- { foreach (@ARGV) { s/\-//go ; print "$Help{$_}\n" } }
- else
- { print $Help{ARRANGE} ;
- print $Help{BATCH} ;
- print $Help{CENTERPAGE} ;
- print $Help{COLOR} ;
- print $Help{CONVERT} ;
- print $Help{ENVIRONMENT} ;
- print $Help{FAST} ;
- print $Help{FIGURES} ;
- print $Help{FINAL} ;
- print $Help{FORMAT} ;
- print $Help{INTERFACE} ;
- print $Help{LISTING} ;
- print $Help{LANGUAGE} ;
- print $Help{MAKE} ;
- print $Help{MODE} ;
- print $Help{MODULE} ;
- print $Help{MPTEX} ;
- print $Help{NOARRANGE} ;
- print $Help{NOMP} ;
- print $Help{ONCE} ;
- print $Help{OUTPUT} ;
- print $Help{PAGES} ;
- print $Help{PAPER} ;
- print $Help{PASSON} ;
- print $Help{PDFARRANGE} ;
- print $Help{PDFCOMBINE} ;
- print $Help{PDFCOPY} ;
- print $Help{PDFSELECT} ;
- print $Help{PDF} ;
- print $Help{PRINT} ;
- print $Help{RESULT} ;
- print $Help{RUNS} ;
- print $Help{SILENT} ;
- print $Help{TEX} ;
- print $Help{VERBOSE} ;
- print "\n" ;
- print $Help{HELP} ;
- print "\n" }
- exit 0 }
-
-my $FinalRunNeeded = 0 ;
-
-sub RunPerlScript
- { my ($ScriptName, $Options) = @_ ;
- if ($dosish)
- { system ("perl $TeXScriptsPath$ScriptName.pl $Options") }
- else
- { system ("$ScriptName $Options") } }
-
-sub ConvertXMLFile
- { my $FileName = shift ; RunPerlScript($SGMLtoTeX, "$FileName.xml") }
-
-sub ConvertSGMLFile
- { my $FileName = shift ; RunPerlScript($SGMLtoTeX, "$FileName.sgm") }
-
-my $FullFormat = '' ;
-
-sub CheckOutputFormat
- { my $Ok = 1 ;
- if ($OutputFormat ne 'standard')
- { my @OutputFormat = split(/,/,$OutputFormat) ;
- foreach my $F (@OutputFormat)
- { if (defined($OutputFormats{lc $F}))
- { my $OF = $OutputFormats{lc $F} ;
- next if (",$FullFormat," =~ /\,$OF\,/) ;
- if ($FullFormat) { $FullFormat .= "," }
- $FullFormat .= "$OutputFormats{lc $F}" }
- else
- { $Ok = 0 } }
- if (!$Ok)
- { print $Help{output} }
- elsif ($FullFormat)
- { print OPT "\\setupoutput[$FullFormat]\n" } }
- unless ($FullFormat)
- { $FullFormat = $OutputFormat } } # 'standard' to terminal
-
-sub MakeOptionFile
- { my ($FinalRun, $FastDisabled, $JobName) = @_ ;
- open (OPT, ">$JobName.top") ;
- print OPT "\\unprotect\n" ;
- $MainLanguage = lc $MainLanguage ;
- unless ($MainLanguage eq "standard")
- { print OPT "\\setuplanguage[$MainLanguage]\n" }
-# my $Ok = 1 ;
-# if ($OutputFormat ne 'standard')
-# { my @OutputFormat = split(/,/,$OutputFormat) ;
-# foreach my $F (@OutputFormat)
-# { if (defined($OutputFormats{lc $F}))
-# { my $OF = $OutputFormats{lc $F} ;
-# next if (",$FullFormat," =~ /\,$OF\,/) ;
-# if ($FullFormat) { $FullFormat .= "," }
-# $FullFormat .= "$OutputFormats{lc $F}" }
-# else
-# { $Ok = 0 } }
-# if (!$Ok)
-# { print $Help{output} }
-# elsif ($FullFormat)
-# { print OPT "\\setupoutput[$FullFormat]\n" } }
-# unless ($FullFormat)
-# { $FullFormat = $OutputFormat } # 'standard' to terminal
-#
- if ($FullFormat ne 'standard')
- { print OPT "\\setupoutput[$FullFormat]\n" }
-#
- if ($EnterBatchMode)
- { print OPT "\\batchmode\n" }
- if ($UseColor)
- { print OPT "\\setupcolors[\\c!status=\\v!start]\n" }
- if ($NoMPMode)
- { print OPT "\\runMPgraphicsfalse\n" }
- if (($FastMode)&&(!$FastDisabled))
- { print OPT "\\fastmode\n" }
- if ($SilentMode)
- { print OPT "\\silentmode\n" }
- if ($SetupPath)
- { print OPT "\\setupsystem[\\c!gebied=\{$SetupPath\}]\n" }
- $_ = $PaperFormat ;
- unless (($PdfArrange)||($PdfSelect)||($PdfCombine)||($PdfCopy))
- { if (/.4.3/goi)
- { print OPT "\\stelpapierformaatin[A4][A3]\n" }
- elsif (/.5.4/goi)
- { print OPT "\\stelpapierformaatin[A5][A4]\n" }
- elsif (!/standard/)
- { print $Help{paper} } }
- if ($CenterPage)
- { print OPT "\\stellayoutin[\\c!plaats=\\v!midden,\\c!markering=\\v!aan]\n" }
- if ($NoArrange)
- { print OPT "\\stelarrangerenin[\\v!blokkeer]\n" }
- elsif ($Arrange)
- { $FinalRunNeeded = 1 ;
- unless ($FinalRun)
- { print OPT "\\stelarrangerenin[\\v!blokkeer]\n" } }
- else
- { $_ = $PrintFormat ;
- if (/.*up/goi)
- { $FinalRunNeeded = 1 ;
- if ($FinalRun)
- { print OPT "\\stelarrangerenin[2UP,\\v!geroteerd,\\v!dubbelzijdig]\n" } }
- elsif (/.*down/goi)
- { $FinalRunNeeded = 1 ;
- if ($FinalRun)
- { print OPT "\\stelarrangerenin[2DOWN,\\v!geroteerd,\\v!dubbelzijdig]\n" } }
- elsif (!/standard/goi) { print $Help{"print"} } }
- if ($Mode)
- { print OPT "\\enablemode[$Mode]\n" }
- if ($Pages)
- { if (lc $Pages eq "odd")
- { print OPT "\\chardef\\whichpagetoshipout=1\n" }
- elsif (lc $Pages eq "even")
- { print OPT "\\chardef\\whichpagetoshipout=2\n" }
- else
- { my @Pages = split (/\,/,$Pages) ;
- $Pages = '' ;
- foreach my $page (@Pages)
- { if ($page =~ /\:/)
- { my ($from,$to) = split (/\:/,$page) ;
- foreach (my $i=$from;$i<=$to;$i++)
- { $Pages .= $i . ',' } }
- else
- { $Pages .= $page . ',' } }
- chop $Pages ;
- print OPT "\\def\\pagestoshipout\{$Pages\}\n" } }
- print OPT "\\protect\n" ;
- if ($Environment)
- { foreach my $E ($Environment) { print OPT "\\omgeving $E\n" } }
- close (OPT) ;
- if (open(TMP,">cont-opt.bak")&&open(TMP,"<cont-opt.tex"))
- { while (<OPT>) { print TMP $_ } } }
-
-my $UserFileOk = 0 ;
-my @MainLanguages ;
-my $AllLanguages = '' ;
-
-sub MakeUserFile
- { $UserFileOk = 0 ;
- return if (($MainLanguage eq 'standard')&&
- ($MainBodyFont eq 'standard')) ;
- print " preparing user file : cont-fmt.tex\n" ;
- open (USR, ">cont-fmt.tex") ;
- print USR "\\unprotect\n" ;
- $AllLanguages = $MainLanguage ;
- if ($MainLanguage ne 'standard')
- { @MainLanguages = split (/\,/,$MainLanguage) ;
- foreach (@MainLanguages)
- { print USR "\\installlanguage[\\s!$_][\\c!status=\\v!start]\n" }
- $MainLanguage = $MainLanguages[0] ;
- print USR "\\setupcurrentlanguage[\\s!$MainLanguage]\n" }
- if ($MainBodyFont ne 'standard')
- { print USR "\\definefilesynonym[font-cmr][font-$MainBodyFont]\n" }
- print USR "\\protect\n" ;
- print USR "\\endinput\n" ;
- close (USR) ;
- ReportUserFile () ;
- print "\n" ;
- $UserFileOk = 1 }
-
-sub RestoreUserFile
- { unlink "cont-fmt.log" ;
- rename "cont-fmt.tex", "cont-fmt.log" ;
- ReportUserFile () }
-
-sub ReportUserFile
- { return unless ($UserFileOk) ;
- print "\n" ;
- if ($MainLanguage ne 'standard')
- { print " additional patterns : $AllLanguages\n" ;
- print " default language : $MainLanguage\n" }
- if ($MainBodyFont ne 'standard')
- { print " default bodyfont : $MainBodyFont\n" } }
-
-sub CompareFiles
- { my ($File1, $File2) = @_ ;
- my $Str1 = my $Str2 = '' ;
- if ((-s $File1 eq -s $File2)&&(open(TUO1,$File1))&&(open(TUO2,$File2)))
- { while(1)
- { $Str1 = <TUO1> ;
- $Str2 = <TUO2> ;
- if ($Str1 eq $Str2)
- { unless ($Str1) { close(TUO1) ; close(TUO2) ; return 1 } }
- else
- { close(TUO1) ; close(TUO2) ; return 0 } } }
- else
- { return 0 } }
-
-my $ConTeXtVersion = "unknown" ;
-my $ConTeXtModes = '' ;
-
-sub ScanPreamble
- { my ($FileName) = @_ ;
- open (TEX, $FileName) ;
- while (<TEX>)
- { chomp ;
- if (/^\%.*/)
- { if (/tex=([a-z]*)/goi) { $TeXExecutable = $1 }
- if (/translat.*?=([\:\/0-9\-a-z]*)/goi) { $TeXTranslation = $1 }
- if (/program=([a-z]*)/goi) { $TeXExecutable = $1 }
- if (/modes=([a-z\,]*)/goi) { $ConTeXtModes = $1 }
- if (/output=([a-z\,]*)/goi) { $OutputFormat = $1 }
- if ($ConTeXtInterface eq "unknown")
- { if (/format=([a-z]*)/goi) { $ConTeXtInterface = $ConTeXtInterfaces{$1} }
- if (/interface=([a-z]*)/goi) { $ConTeXtInterface = $ConTeXtInterfaces{$1} } }
- if (/version=([a-z]*)/goi) { $ConTeXtVersion = $1 } }
- else
- { last } }
- close(TEX) }
-
-sub ScanContent
- { my ($ConTeXtInput) = @_ ;
- open (TEX, $ConTeXtInput) ;
- while (<TEX>)
- { if (/\\(starttekst|stoptekst|startonderdeel)/)
- { $ConTeXtInterface = "nl" ; last }
- elsif (/\\(stelle|verwende|umgebung|benutze)/)
- { $ConTeXtInterface = "de" ; last }
- elsif (/\\(stel|gebruik|omgeving)/)
- { $ConTeXtInterface = "nl" ; last }
- elsif (/\\(use|setup|environment)/)
- { $ConTeXtInterface = "en" ; last }
- elsif (/(hoogte|breedte|letter)=/)
- { $ConTeXtInterface = "nl" ; last }
- elsif (/(height|width|style)=/)
- { $ConTeXtInterface = "en" ; last }
- elsif (/(hoehe|breite|schrift)=/)
- { $ConTeXtInterface = "de" ; last }
- elsif (/externfiguur/)
- { $ConTeXtInterface = "nl" ; last }
- elsif (/externalfigure/)
- { $ConTeXtInterface = "en" ; last }
- elsif (/externeabbildung/)
- { $ConTeXtInterface = "de" ; last } }
- close (TEX) }
-
-if ($ConTeXtInterfaces{$ConTeXtInterface})
- { $ConTeXtInterface = $ConTeXtInterfaces{$ConTeXtInterface} }
-
-my $Problems = 0 ;
-
-sub RunTeX
- { my $JobName = shift ;
- my $StartTime = time ;
- my $cmd ;
- my $TeXProgNameFlag ;
- if (!$dosish)
- { $TeXProgramPath = '' ;
- $TeXFormatPath = '' ;
- if (!$TeXProgNameFlag&&($Format=~/^cont/))
- { $TeXProgNameFlag = "-progname=context" } }
- $cmd = "$TeXProgramPath$TeXExecutable $TeXProgNameFlag " .
- "$TeXPassString $PassOn " ;
- if ($TeXTranslation ne '')
- { $cmd .= "-translate-file=$TeXTranslation " }
- $cmd .= "$TeXFormatFlag$TeXFormatPath$Format $JobName" ;
- if ($Verbose) { print "\n$cmd\n\n" }
- $Problems = system ( "$cmd" ) ;
- my $StopTime = time - $StartTime ;
- print "\n run time : $StopTime seconds\n" ;
- return $Problems }
-
-sub PushResult
- { if ($Result)
- { print " outputfile : $Result\n" ;
- unlink ("texexec.tuo") ; rename ("$_[0].tuo", "texexec.tuo") ;
- unlink ("texexec.log") ; rename ("$_[0].log", "texexec.log") ;
- unlink ("texexec.dvi") ; rename ("$_[0].dvi", "texexec.dvi") ;
- unlink ("texexec.pdf") ; rename ("$_[0].pdf", "texexec.pdf") ;
- if (-f "$Result.tuo")
- { unlink ("$_[0].tuo") ;
- rename ("$Result.tuo", "$_[0].tuo") } } }
-
-sub PopResult
- { if ($Result)
- { unlink ("$Result.tuo") ; rename ("$_[0].tuo", "$Result.tuo") ;
- unlink ("$Result.log") ; rename ("$_[0].log", "$Result.log") ;
- unlink ("$Result.dvi") ; rename ("$_[0].dvi", "$Result.dvi") ;
- unlink ("$Result.pdf") ; rename ("$_[0].pdf", "$Result.pdf") ;
- rename ("texexec.tuo", "$_[0].tuo") ;
- rename ("texexec.log", "$_[0].log") ;
- rename ("texexec.dvi", "$_[0].dvi") ;
- rename ("texexec.pdf", "$_[0].pdf") } }
-
-sub RunConTeXtFile
- { my ($JobName) = @_ ;
- $JobName =~ s/\\/\//goi ;
- if (-e "$JobName.tex")
- { ScanPreamble ("$JobName.tex") ;
- if ($ConTeXtInterface eq "unknown")
- { ScanContent ("$JobName.tex") }
- if ($ConTeXtInterface eq "unknown")
- { $ConTeXtInterface = $UserInterface }
- if (lc $Convert eq "xml")
- { print " xml input : $JobName.xml\n" ;
- ConvertXMLFile ($JobName) }
- elsif (lc $Convert eq "sgml")
- { print " sgml input : $JobName.sgm\n" ;
- ConvertSGMLFile ($JobName) }
- CheckOutputFormat ;
- my $StopRunning = 0 ;
- if ($Format eq '')
- { $Format = "cont-$ConTeXtInterface" }
- print " executable : $TeXProgramPath$TeXExecutable\n" ;
- print " format : $TeXFormatPath$Format\n" ;
- print " inputfile : $JobName\n" ;
- print " output : $FullFormat\n" ;
- print " interface : $ConTeXtInterface\n" ;
- if ($TeXTranslation ne '')
- { print " translation : $TeXTranslation\n" }
- my $Options = '' ;
- if ($FastMode) { $Options .= " fast" }
- if ($FinalMode) { $Options .= " final" }
- if ($Verbose) { $Options .= " verbose" }
- if ($TypesetListing) { $Options .= " listing" }
- if ($TypesetModule) { $Options .= " module" }
- if ($TypesetFigures) { $Options .= " figures" }
- if ($MakeFormats) { $Options .= " make" }
- if ($RunOnce) { $Options .= " once" }
- if ($UseColor) { $Options .= " color" }
- if ($EnterBatchMode) { $Options .= " batch" }
- if ($NoMPMode) { $Options .= " nomp" }
- if ($CenterPage) { $Options .= " center" }
- if ($Arrange) { $Options .= " arrange" }
- if ($NoArrange) { $Options .= " no-arrange" }
- if ($Options)
- { print " options :$Options\n" }
- if ($ConTeXtModes)
- { print " possible modes : $ConTeXtModes\n" }
- if ($Mode)
- { print " current mode : $Mode\n" }
- else
- { print " current mode : all\n" }
- if ($Environment)
- { print " environments : $Environment\n" }
- PushResult($JobName) ;
- $Problems = 0 ;
- my $TeXRuns = 0 ;
- if (($PdfArrange)||($PdfSelect)||($RunOnce))
- { MakeOptionFile (1, 1, $JobName) ;
- print "\n" ;
- $Problems = RunTeX($JobName) ;
- PopResult($JobName) }
- else
- { while (!$StopRunning&&($TeXRuns<$NOfRuns)&&(!$Problems))
- { MakeOptionFile (0, 0, $JobName) ;
- ++$TeXRuns ;
- print " TeX run : $TeXRuns\n\n" ;
- $Problems = RunTeX($JobName) ;
- if ((!$Problems)&&($NOfRuns>1))
- { if (!$NoMPMode)
- { my $MPJobName = '' ;
- if (-e "$JobName-mpgraph.mp")
- { $MPJobName = "$JobName-mpgraph.mp" }
- elsif (-e "mpgraph.mp")
- { $MPJobName = "mpgraph.mp" }
- if ($MPJobName ne "")
- { if (open(MP, "$MPJobName"))
- { $_ = <MP> ;
- my $RuntimeGraphic = /runtime generated graphic/i ;
- close(MP) ;
- if (!$RuntimeGraphic)
- { if ($MpExecutable ne '')
- { print " generating graphics : metaposting MPJobName\n" ;
- $Problems = system ("$MpExecutable $MPJobName") }
- else
- { print " generating graphics : metapost cannot be run\n" } } } } }
- unless ($Problems)
- { unlink "$JobName.tup" ;
- rename "$JobName.tuo", "$JobName.tup" ;
- print " sorting and checking : running texutil\n" ;
-my $TcXSwitch = '' ;
-if ($TcXPath ne '') { $TcXSwitch = "--tcxpath=$TcXPath" }
- RunPerlScript
- ($TeXUtil, "--ref --ij --high $TcXPath $JobName" );
- if (-e "$JobName.tuo")
- { $StopRunning =
- CompareFiles("$JobName.tup", "$JobName.tuo") }
- else
- { $StopRunning = 1 } # otherwise potential loop
- if (!$StopRunning)
- { print "\n utility file analysis : another run needed\n" } } } }
- if ((!$Problems)&&(($FinalMode||$FinalRunNeeded))&&($NOfRuns>1))
- { MakeOptionFile (1, $FinalMode, $JobName) ;
- print " final TeX run : $TeXRuns\n\n" ;
- $Problems = RunTeX($JobName) }
- unlink "$JobName.tup" ; # previous tuo file
- unlink "$JobName.top" ; # runtime option file
- PopResult($JobName) } } }
-
-sub RunSomeTeXFile
- { my ($JobName) = @_ ;
- if (-e "$JobName.tex")
- { PushResult($JobName) ;
- print " executable : $TeXProgramPath$TeXExecutable\n" ;
- print " format : $TeXFormatPath$Format\n" ;
- print " inputfile : $JobName\n" ;
- $Problems = RunTeX($JobName) ;
- PopResult($JobName) } }
-
-my $ModuleFile = "texexec" ;
-my $ListingFile = "texexec" ;
-my $FiguresFile = "texexec" ;
-my $ArrangeFile = "texexec" ;
-my $SelectFile = "texexec" ;
-my $CopyFile = "texexec" ;
-my $CombineFile = "texexec" ;
-
-sub RunModule
- { my ($FileName) = @_ ;
- if ((-e "$FileName.tex")||(-e "$FileName.pl")||(-e "$FileName.mp")||
- (-e "$FileName.pm"))
- { RunPerlScript ($TeXUtil,
- "--documents $FileName.pl $FileName.pm $FileName.mp $FileName.tex" ) ;
- print " module : $FileName\n\n" ;
- open (MOD, ">$ModuleFile.tex") ;
- print MOD "% format=dutch \n" ;
- print MOD "\\starttekst \n" ;
- print MOD "\\input modu-abr \n" ;
- print MOD "\\input modu-arg \n" ;
- print MOD "\\input modu-env \n" ;
- print MOD "\\input modu-mod \n" ;
- print MOD "\\input modu-pap \n" ;
- print MOD "\\def\\ModuleNumber{1}\n" ;
- print MOD "\\input $FileName.ted \n" ;
- print MOD "\\stoptekst \n" ;
- close (MOD) ;
- $ConTeXtInterface = "nl" ;
- RunConTeXtFile($ModuleFile) ;
- if ($FileName ne $ModuleFile)
- { foreach my $FileSuffix ("dvi", "pdf", "tui", "tuo", "log")
- { unlink ("$FileName.$FileSuffix") ;
- rename ("$ModuleFile.$FileSuffix", "$FileName.$FileSuffix") } }
- unlink ("$ModuleFile.tex") } }
-
-sub RunFigures
- { my @Files = @_ ;
- $TypesetFigures = lc $TypesetFigures ;
- return unless ($TypesetFigures =~ /[abc]/o) ;
- unlink "$FiguresFile.pdf" ;
- if (@Files) { RunPerlScript ($TeXUtil, "--figures @Files" ) }
- open (FIG, ">$FiguresFile.tex") ;
- print FIG "% format=english\n" ;
- print FIG "\\starttext\n" ;
- print FIG "\\setuplayout\n" ;
- print FIG " [topspace=1.5cm,backspace=1.5cm,\n" ;
- print FIG " header=1.5cm,footer=0pt,\n" ;
- print FIG " width=middle,height=middle]\n" ;
- print FIG "\\showexternalfigures[alternative=$TypesetFigures,offset=$PaperOffset]\n" ;
- print FIG "\\stoptext\n" ;
- close(FIG) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($FiguresFile) }
-
-sub RunListing
- { my $FileName = shift ;
- return unless -f $FileName ;
- print " input file : $FileName\n" ;
- if ($BackSpace eq "0pt")
- { $BackSpace="1.5cm" }
- else
- { print " backspace : $BackSpace\n" }
- if ($TopSpace eq "0pt")
- { $TopSpace="1.5cm" }
- else
- { print " topspace : $TopSpace\n" }
- open (LIS, ">$ListingFile.tex") ;
- print LIS "% format=english\n" ;
- print LIS "\\starttext\n" ;
- print LIS "\\setupbodyfont[11pt,tt]\n" ;
- print LIS "\\setuplayout\n" ;
- print LIS " [topspace=$TopSpace,backspace=$BackSpace,\n" ;
- print LIS " header=0cm,footer=1.5cm,\n" ;
- print LIS " width=middle,height=middle]\n" ;
- print LIS "\\setupfootertexts[$FileName][pagenumber]\n" ;
- print LIS "\\typefile\{$FileName\}\n" ;
- print LIS "\\stoptext\n" ;
- close(LIS) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($ListingFile) }
-
-sub DetermineNOfPdfPages
- { my $FileName = shift ;
- my $NOfPages = 0 ;
- if (($FileName =~ /\.pdf$/io)&&(open(PDF,$FileName)))
- { binmode PDF ;
- my $PagesFound = 0 ;
- while (<PDF>)
- { if (/\/Type \/Pages/o)
- { $PagesFound = 1 }
- if ($PagesFound)
- { if (/\/Count\s*(\d*)/o)
- { if ($1>$NOfPages) { $NOfPages = $1 } }
- elsif (/endobj/o)
- { $PagesFound = 0 } } }
- close ( PDF ) }
- return $NOfPages }
-
-sub RunArrange
- { my @files = @_ ;
- print " backspace : $BackSpace\n" ;
- print " topspace : $TopSpace\n" ;
- print " paperoffset : $PaperOffset\n" ;
- if ($AddEmpty eq '')
- { print " empty pages added : none\n" }
- else
- { print " empty pages added : $AddEmpty\n" }
- if ($TextWidth eq '0pt')
- { print " textwidth : unknown\n" }
- else
- { print " textwidth : $TextWidth\n" }
- open (ARR, ">$ArrangeFile.tex") ;
- print ARR "% format=english\n" ;
- if ($PaperFormat ne 'standard')
- { print " paperformat : $PaperFormat\n" ;
- print ARR "\\setuppapersize[$PaperFormat][$PaperFormat]\n" }
- print ARR "\\definepapersize\n" ;
- print ARR " [offset=$PaperOffset]\n";
- print ARR "\\setuplayout\n" ;
- print ARR " [backspace=$BackSpace,\n" ;
- print ARR " topspace=$TopSpace,\n" ;
- if ($Markings)
- { print ARR " marking=on,\n" ;
- print " cutmarkings : on\n" }
- print ARR " width=middle,\n" ;
- print ARR " height=middle,\n" ;
- print ARR " location=middle,\n" ;
- print ARR " header=0pt,\n" ;
- print ARR " footer=0pt]\n" ;
- if ($NoDuplex)
- { print " duplex : off\n" }
- else
- { print " duplex : on\n" ;
- print ARR "\\setuppagenumbering\n" ;
- print ARR " [alternative=doublesided]\n" }
- foreach my $FileName (@files)
- { my $NOfPages = DetermineNOfPdfPages($FileName) ;
- if ($NOfPages)
- { print " pdffile : $FileName\n" ;
- print " number of pages : $NOfPages\n\n" ;
- print ARR "\\insertpages\n" ;
- if ($AddEmpty eq '')
- { print ARR " [$FileName][n=$NOfPages,width=$TextWidth]\n" }
- else
- { print ARR " [$FileName][$AddEmpty][n=$NOfPages,width=$TextWidth]\n" } } }
- print ARR "\\stoptext\n" ;
- close (ARR) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($ModuleFile) }
-
-sub RunSelect
- { my $FileName = shift ;
- print " backspace : $BackSpace\n" ;
- print " topspace : $TopSpace\n" ;
- print " paperoffset : $PaperOffset\n" ;
- if ($TextWidth eq '0pt')
- { print " textwidth : unknown\n" }
- else
- { print " textwidth : $TextWidth\n" }
- open (SEL, ">$SelectFile.tex") ;
- print SEL "% format=english\n" ;
- if ($PaperFormat ne 'standard')
- { print " papersize : $PaperFormat\n" ;
- print SEL "\\setuppapersize[$PaperFormat][$PaperFormat]\n" }
- print SEL "\\definepapersize\n" ;
- print SEL " [offset=$PaperOffset]\n";
- print SEL "\\setuplayout\n" ;
- print SEL " [backspace=$BackSpace,\n" ;
- print SEL " topspace=$TopSpace,\n" ;
- if ($Markings)
- { print SEL " marking=on,\n" ;
- print " cutmarkings : on\n" }
- print SEL " width=middle,\n" ;
- print SEL " height=middle,\n" ;
- print SEL " location=middle,\n" ;
- print SEL " header=0pt,\n" ;
- print SEL " footer=0pt]\n" ;
- #print SEL "\\setuppagenumbering\n" ;
- #print SEL " [alternative=doublesided]\n" ;
- my $NOfPages = DetermineNOfPdfPages($FileName) ;
- if (($NOfPages)&&($Selection ne ''))
- { print " pdffile : $FileName\n" ;
- print " number of pages : $NOfPages\n\n" ;
- print SEL "\\filterpages\n" ;
- print SEL " [$FileName][$Selection][n=$NOfPages,width=$TextWidth]\n" }
- print SEL "\\stoptext\n" ;
- close (SEL) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($SelectFile) }
-
-sub RunCopy
- { my $FileName = shift ;
- print " scale : $PageScale\n" ;
- if ($PageScale<10) { $PageScale *= 1000 ; sprintf(".0f",$PageScale) }
- open (COP, ">$CopyFile.tex") ;
- print COP "% format=english\n" ;
- print COP "\\getfiguredimensions\n" ;
- print COP " [$FileName][page=1]\n" ;
- print COP "\\definepapersize\n" ;
- print COP " [copy]\n" ;
- print COP " [width=\\naturalfigurewidth,\n" ;
- print COP " height=\\naturalfigureheight]\n" ;
- print COP "\\setuppapersize\n" ;
- print COP " [copy][copy]\n" ;
- print COP "\\setuplayout\n" ;
- print COP " [location=middle,\n" ;
- print COP " topspace=0pt,\n" ;
- print COP " backspace=0pt,\n" ;
- print COP " header=0pt,\n" ;
- print COP " footer=0pt,\n" ;
- print COP " width=middle,\n" ;
- print COP " height=middle]\n" ;
- print COP "\\starttext\n" ;
- my $NOfPages = DetermineNOfPdfPages($FileName) ;
- if ($NOfPages)
- { print " pdffile : $FileName\n" ;
- print " number of pages : $NOfPages\n\n" ;
- print COP "\\copypages[$FileName][n=$NOfPages,scale=$PageScale]\n" }
- print COP "\\stoptext\n" ;
- close (COP) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($CopyFile) }
-
-sub RunCombine
- { my $FileName = shift ;
- my ($nx,$ny) = split (/\*/,$Combination,2) ;
- return unless ($nx&&$ny) ;
- print " combination : $Combination\n" ;
- open (COM, ">$CombineFile.tex") ;
- print COM "% format=english\n" ;
- if ($PaperFormat ne 'standard')
- { print " papersize : $PaperFormat\n" ;
- print COM "\\setuppapersize\n" ;
- print COM " [$PaperFormat][$PaperFormat]\n" }
- if ($PaperOffset eq '0pt')
- { $PaperOffset = '1cm' }
- print " paper offset : $PaperOffset\n" ;
- print COM "\\setuplayout\n" ;
- print COM " [topspace=$PaperOffset,\n" ;
- print COM " backspace=$PaperOffset,\n" ;
- print COM " header=0pt,\n" ;
- print COM " footer=1cm,\n" ;
- print COM " width=middle,\n" ;
- print COM " height=middle]\n" ;
- print COM "\\setupfootertexts\n" ;
- print COM " [$FileName\\space---\\space\\currentdate\\space---\\space\\pagenumber]\n" ;
- print COM "\\starttext\n" ;
- my $NOfPages = DetermineNOfPdfPages($FileName) ;
- if ($NOfPages)
- { print " pdffile : $FileName\n" ;
- print " number of pages : $NOfPages\n\n" ;
- print COM "\\combinepages[$FileName][n=$NOfPages,nx=$nx,ny=$ny]\n" }
- print COM "\\stoptext\n" ;
- close (COM) ;
- $ConTeXtInterface = "en" ;
- RunConTeXtFile($CombineFile) }
-
-sub RunOneFormat
- { my ($FormatName) = @_ ;
- my @TeXFormatPath ;
- my $TeXPrefix = '' ;
- if ($fmtutil ne '')
- { my $cmd = "$fmtutil --byfmt $FormatName" ;
- if ($Verbose) { print "\n$cmd\n\n" }
- MakeUserFile ; # this works only when the path is kept
- $Problems = system ( "$cmd" ) ;
- RestoreUserFile }
- else
- { $Problems = 1 }
- if ($Problems)
- { if ($TeXExecutable =~ /etex|eetex|pdfetex|pdfeetex/io)
- {$TeXPrefix = "*" }
- my $CurrentPath = cwd() ;
- if (($TeXFormatPath eq '')&&($kpsewhich ne ''))
- { $TeXFormatPath = `$kpsewhich --show-path=fmt` ;
- chomp $TeXFormatPath ;
- $TeXFormatPath =~ s/\.+\;//o ; # should be a sub
- $TeXFormatPath =~ s/\;.*//o ;
- $TeXFormatPath =~ s/\!//go ;
- $TeXFormatPath =~ s/\/\//\//go ;
- $TeXFormatPath =~ s/\\\\/\//go ;
- $TeXFormatPath =~ s/[\/\\]$// ;
- $TeXFormatPath .= '/' ;
- if (($TeXFormatPath ne '')&&$Verbose)
- { print " located formatpath : $TeXFormatPath\n" } }
- if ($TeXFormatPath ne '')
- { chdir "$TeXFormatPath" }
- MakeUserFile ;
- my $cmd = "$TeXProgramPath$TeXExecutable $TeXVirginFlag " .
- "$TeXPassString ${TeXPrefix}$FormatName" ;
- if ($Verbose) { print "\n$cmd\n\n" }
- system ( $cmd ) ;
- RestoreUserFile ;
- if (($TeXFormatPath ne '')&&($CurrentPath ne ''))
- { chdir $CurrentPath } } }
-
-sub RunFormats
- { my $ConTeXtFormatsPrefix;
- if (@ARGV)
- { @ConTeXtFormats = @ARGV }
- elsif ($UsedInterfaces ne '')
- { @ConTeXtFormats = split /\,/,$UsedInterfaces }
- if ($Format)
- { @ConTeXtFormats = $Format; $ConTeXtFormatsPrefix='' ; }
- else
- { $ConTeXtFormatsPrefix="cont-" ; }
- foreach my $Interface (@ConTeXtFormats)
- { RunOneFormat ("$ConTeXtFormatsPrefix$Interface") }
- print "\n" ;
- print " executable : $TeXProgramPath$TeXExecutable\n" ;
- print " format(s) : @ConTeXtFormats\n\n" ; }
-
-sub RunFiles
- { if ($PdfArrange)
- { my @arrangedfiles = () ;
- foreach my $JobName (@ARGV)
- { unless ($JobName =~ /.*\.pdf$/oi)
- { if (-f "$JobName.pdf")
- { $JobName .= ".pdf" }
- else
- { $JobName .= ".PDF" } }
- push @arrangedfiles, $JobName }
- if (@arrangedfiles)
- { RunArrange (@arrangedfiles) } }
- elsif (($PdfSelect)||($PdfCopy)||($PdfCombine))
- { my $JobName = $ARGV[0] ;
- if ($JobName ne '')
- { unless ($JobName =~ /.*\.pdf$/oi)
- { if (-f "$JobName.pdf")
- { $JobName .= ".pdf" }
- else
- { $JobName .= ".PDF" } }
- if ($PdfSelect)
- { RunSelect ($JobName) }
- elsif ($PdfCopy)
- { RunCopy ($JobName) }
- else
- { RunCombine ($JobName) } } }
- else
- { foreach my $JobName (@ARGV)
- { $JobName =~ s/\.tex//goi ;
- if ($TypesetModule)
- { unless ($Format) { RunModule ($JobName) } }
- else
- { if (($Format eq '')||($Format =~ /^cont.*/io))
- { RunConTeXtFile ($JobName) }
- else
- { RunSomeTeXFile ($JobName) } }
- unless (-s "$JobName.log") { unlink ("$JobName.log") }
- unless (-s "$JobName.tui") { unlink ("$JobName.tui") } } } }
-
-sub RunMP
- { if (($MpExecutable)&&($MpToTeXExecutable)&&($DviToMpExecutable))
- { foreach my $RawMpName (@ARGV)
- { my ($MpName, $Rest) = split (/\./, $RawMpName, 2) ;
- if (-e "$MpName.mp")
- { if (open(MP, "$MpName.mp"))
- { local $/ = "\0777" ; $_ = <MP> ; close(MP) ;
- if (/(btex|etex|verbatimtex)/)
- { print " metapost to tex : $MpName\n" ;
- $Problems = system ("$MpToTeXExecutable $MpName.mp > $MpName.tex" ) ;
- if (-e "$MpName.tex"&& !$Problems)
- { if (($Format eq '')||($Format =~ /^cont.*/io))
- { RunConTeXtFile ($MpName) }
- else
- { RunSomeTeXFile ($MpName) }
- if (-e "$MpName.dvi"||!$Problems)
- { print " dvi to metapost : $MpName\n" ;
- $Problems = system ("$DviToMpExecutable $MpName") } } } }
-
- print " metapost : $MpName\n" ;
- $Problems = system ("$MpExecutable $MpName" ) } } } }
-
-if ($TypesetListing)
- { RunListing (@ARGV) }
-elsif ($TypesetFigures)
- { RunFigures (@ARGV) }
-elsif ($DoMPTeX)
- { RunMP }
-elsif ($MakeFormats)
- { RunFormats }
-elsif (@ARGV)
- { RunFiles }
-else
- { print $Help{HELP} ;
- unless ($Verbose) { print $Help{VERBOSE} } }
-
-if (-f "cont-opt.tex")
- { unlink ("cont-opt.bak") ;
- rename ("cont-opt.tex", "cont-opt.bak") }
-
-if ($Problems) { exit 1 }
diff --git a/context/perltk/texexec.rme b/context/perltk/texexec.rme
deleted file mode 100644
index a1dd2c3ab..000000000
--- a/context/perltk/texexec.rme
+++ /dev/null
@@ -1,115 +0,0 @@
-% == introduction ==
-%
-% This is 'texexec.ini', the file used by texexec to determine where
-% to find files, what TeX to use, what flags to pass, etc. Although
-% TeXexec tries to locate things itself, a little help is sometimes
-% needed. One can influence texexec by setting some variables. These
-% are only needed when the automatic determined settings fail.
-%
-% == interfacing ==
-%
-% UsedInterfaces nl,en the formats generated with --make
-% UserInterface nl the default format used
-%
-% == binaries ==
-%
-% TeXExecutable pdfetex the TeX binary to use
-% MpExecutable mpost the MetaPost binary to use
-% MpToTeXExecutable mpto the MetaPost to TeX converter
-% DviToMpExecutable dvitomp the DVI to MetaPost converter
-%
-% == flags ==
-%
-% TeXFormatFlag & the format introducer
-% TeXVirginFlag -ini the format generation switch
-%
-% == paths ==
-%
-% TeXFormatPath texmf/... fmt files
-% ConTeXtPath texmf/tex/context/base sources
-% SetupPath texmf/tex/base/user cont-sys/usr file
-% TeXScriptsPath texmf/context/perltk scripts
-%
-% == the main shell setting ==
-%
-% As shown below, one can define his/her own sections. We default to
-% the teTeX/fpTeX web2c based settings.
-
-set TeXShell to tetex
-%set TeXShell to fptex
-%set TeXShell to miktex
-%set TeXShell to private
-
-% == setting up the variables ==
-%
-% Here are some general defaults. They can be overruled later.
-
-set UsedInterfaces to en,nl,de,uk
-set UserInterface to en
-set TeXExecutable to tex
-set MpExecutable to mpost
-set MpToTeXExecutable to mpto
-set DviToMpExecutable to dvitomp
-
-% For teTeX the next settings will do.
-
-for tetex set UsedInterfaces to en,nl,de,uk
-for tetex set UserInterface to en
-for tetex set TeXExecutable to pdfetex
-
-% These also apply to fpTeX.
-
-for fptex set UsedInterfaces to en,nl,de,uk
-for fptex set UserInterface to en
-for fptex set TeXExecutable to pdfetex
-
-% MikTeX users probably have to set up some paths too.
-
-for miktex set UsedInterfaces to en,nl,de,uk
-for miktex set UserInterface to en
-for miktex set TeXExecutable to pdftex
-for miktex set TeXFormatFlag to &
-for miktex set TeXVirginFlag to --initialize
-
-% These are the settings used on some machines at PRAGMA ADE that
-% don't use the texmf tree. They can serve as an example for local
-% settings. Local settings should either be added to the previous
-% one, or go without the 'for' directives. Consider these
-% settings as an example.
-
-for private set UsedInterfaces to en,nl
-for private set UserInterface to nl
-for private set TeXExecutable to pdfetex
-for private set TeXFormatFlag to &
-for private set TeXVirginFlag to -ini
-for private set TeXFormatPath to t:/tex/web2c/fmt/
-for private set ConTeXtPath to t:/pragma/sources/
-for private set SetupPath to t:/pragma/perl/
-for private set TeXScriptsPath to t:/pragma/perl/
-
-% == read this too ==
-%
-% If this file is called 'texexec.rme', copy it to 'texexec.ini',
-% check the settings above, change them according to your TeX
-% distribution, and say:
-%
-% texexec --verbose
-%
-% When set up properly, you should see your local settings fly by.
-% When these settings are ok, the next call should work:
-%
-% texexec --make
-%
-% and you should be able to process a file by saying
-%
-% texexec filename
-%
-% See 'mtexexec.pdf' for more information on the flags you can use with
-% 'texexec'. Also make sure you have the 'texutil' script installed in
-% the same path as 'texexec'.
-
-% Experimental
-%
-% set TcXPath to d:/tex/texmf/web2c
-% set FmtLanguage to pl
-% set FmtBodyFont to plr
diff --git a/context/perltk/texshow.pl b/context/perltk/texshow.pl
deleted file mode 100644
index a3c8f519a..000000000
--- a/context/perltk/texshow.pl
+++ /dev/null
@@ -1,90 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
- if 0;
-
-#D \module
-#D [ file=texshow.pl,
-#D version=1999.03.30,
-#D title=\TEXSHOW,
-#D subtitle=showing \CONTEXT\ commands,
-#D author=Hans Hagen,
-#D date=\currentdate,
-#D copyright={PRAGMA / Hans Hagen \& Ton Otten},
-#D suggestions={Tobias Burnus \& Taco Hoekwater}]
-#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 We need to find the module path. We could have used:
-#D
-#D \starttypen
-#D use FindBin ;
-#D use lib $FindBin::Bin ;
-#D \stoptypen
-#D
-#D But because we're sort of depending on \WEBC\ anyway, the
-#D next few lines are more appropriate:
-
-BEGIN
- { $cont_pm_path = `kpsewhich --format='other text files' --progname=context cont_mis.pm` ;
- $cont_pm_path =~ s/cont_mis\.pm.*// ;
- chop $cont_pm_path }
-
-use lib $cont_pm_path ;
-
-#D Now we can load some modules:
-
-use Getopt::Long ;
-
-$Getopt::Long::passthrough = 1 ; # no error message
-$Getopt::Long::autoabbrev = 1 ; # partial switch accepted
-
-&GetOptions
- ( "help" => \$ShowHelp ,
- "interface" => \$Interface ) ;
-
-cont_mis::banner ('TeXShow 0.1 - ConTeXt', 'PRAGMA ADE 1999') ;
-
-if ($ShowHelp)
- { cont_mis::help ('--help', "print this help") ;
- cont_mis::help ('--interface', "primary interface") ;
- cont_mis::help ('string', "show info about command 'string'") ;
- cont_mis::help ('string lg', "show info about 'string' in language 'lg'") ;
- cont_mis::crlf () ;
- exit 0 }
-
-use cont_mis ;
-use cont_set ;
-
-use Tk ;
-
-#D This scripts is rather simple, because most of the action
-#D takes place in the module \type {cont_set.pm}.
-
-cont_mis::status ('searching for setup files') ;
-
-if (cont_set::setups_found)
- { cont_mis::status ('loading setups') ;
- cont_set::load_setups ;
- cont_mis::status ('preparing display') ;
- cont_set::show_setups ;
- $command = $ARGV[0] ;
- $interface = $ARGV[1] ;
- if ($interface)
- { $Interface = $interface }
- if ($Interface)
- { cont_set::set_setup_interface($Interface) ;
- cont_mis::message ('primary interface', $Interface) }
- if ($command)
- { cont_mis::message ('searching command', $command) ;
- cont_set::show_setup ($command) }
- else
- { cont_mis::warning ('no command specified') ;
- cont_set::set_setup_title('TeXShow : ConTeXt commands') }
- cont_mis::status ('entering main loop') ;
- MainLoop () }
-else
- { cont_mis::error ('no setup files found') }
-
-END { cont_mis::crlf ;
- cont_mis::status ('closing down') }
diff --git a/context/perltk/texutil.pl b/context/perltk/texutil.pl
deleted file mode 100644
index 1a0de68f5..000000000
--- a/context/perltk/texutil.pl
+++ /dev/null
@@ -1,2432 +0,0 @@
-eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q'
- if 0;
-
-#D We started with a hack provided by Thomas Esser. This
-#D expression replaces the unix specific line \type
-#D {#!/usr/bin/perl}.
-
-#D \module
-#D [ file=texutil.pl,
-#D version=1999.03.14, % 1999.11.05
-#D title=pre- and postprocessing utilities,
-#D subtitle=\TEXUTIL,
-#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 licen-en.pdf for
-#C details.
-
-# Thanks to Tobias Burnus for the german translations.
-# Thanks to Thomas Esser for hooking it into web2c
-# Thanks to Taco Hoekwater for making the file -w proof
-# Thanks to Alex Knowles and friends for the right JPG specs
-# Thanks to Sebastian Rahtz for the eps to PDF method
-
-# undocumented:
-#
-# --analyze file.pdf : reports some statistics
-# --purge [jobname] : removes temporary files
-
-#D This is \TEXUTIL, a utility program (script) to be used
-#D alongside the \CONTEXT\ macro package. This \PERL\ script is
-#D derived from the \MODULA\ version and uses slightly better
-#D algoritms for sanitizing \TEX\ specific (sub|)|strings.
-#D
-#D This implementation has some features not found in the
-#D binary version, like scanning illustrations other than \EPS.
-#D I would suggest to keep an eye on the version number:
-
-$Program = "TeXUtil 7.3 - ConTeXt / PRAGMA ADE 1992-2000" ;
-
-#D By the way, this is my first \PERL\ script, which means
-#D that it will be improved as soon as I find new and/or more
-#D suitable solutions in the \PERL\ manuals. As can be seen in
-#D the definition of \type{$Program}, this program is part of
-#D the \CONTEXT\ suite, and therefore can communicate with the
-#D users in english as well as some other languages. One can
-#D set his favourite language by saying something like:
-
-#D \starttypen
-#D perl texutil.pl --int=de --fig *.eps *.tif *.pdf *.png *.jpg
-#D \stoptypen
-#D
-#D or simpler:
-#D
-#D \starttypen
-#D perl texutil.pl --fig *.*
-#D \stoptypen
-
-#D Of course one can also say \type{--interface=nl}, which
-#D happens to be my native language.
-
-#D I won't go into too much detail on the algoritms used.
-#D The next few pages show the functionality as reported by the
-#D helpinformation and controled by command line arguments
-#D and can serve as additional documentation.
-
-#D \TEXUTIL\ can handle different tasks; which one is active
-#D depends on the command line arguments. These are handled by
-#D a \PERL\ system module. This means that, at least for the
-#D moment, there is no external control as provided by the
-#D \PRAGMA\ environment system.
-
-use Getopt::Long ;
-
-#D We don't want error messages and accept partial switches,
-#D which saves users some typing.
-
-$Getopt::Long::passthrough = 1 ; # no error message
-$Getopt::Long::autoabbrev = 1 ; # partial switch accepted
-
-#D We also predefine the interface language and set a boolean
-#D that keeps track of unknown options. \voetnoot {This feature
-#D is still to be implemented.}
-
-$UserInterface = "en" ;
-$UnknownOptions = 0 ;
-$TcXPath = '' ;
-
-#D Here come the options:
-
-&GetOptions
- ("references" => \$ProcessReferences,
- "ij" => \$ProcessIJ,
- "high" => \$ProcessHigh,
- "quotes" => \$ProcessQuotes,
- "tcxpath=s" => \$TcXPath,
- "documents" => \$ProcessDocuments,
- "type=s" => \$ProcessType,
- "outputfile=s" => \$ProcessOutputFile,
- "sources" => \$ProcessSources,
- "setups" => \$ProcessSetups,
- "templates" => \$ProcessTemplates,
- "infos" => \$ProcessInfos,
- "figures" => \$ProcessFigures,
- "epspage" =>\$ProcessEpsPage,
- "epstopdf" =>\$ProcessEpsToPdf,
- "logfile" => \$ProcessLogFile,
- "box" =>\$ProcessBox,
- "hbox" =>\$ProcessHBox,
- "vbox" =>\$ProcessVBox,
- "criterium=f" =>\$ProcessCriterium,
- "unknown" =>\$ProcessUnknown,
- "purge" => \$PurgeFiles,
- "analyze" => \$AnalyzeFile,
- "help" => \$ProcessHelp,
- "silent" => \$ProcessSilent,
- "verbose" => \$ProcessVerbose,
- "interface=s" => \$UserInterface) ;
-
-#D We need some hacks to suppress terminal output. This
-#D piece of code is based on page~193 of "Programming Perl".
-
-$ProgramLog = "texutil.log" ;
-
-sub RedirectTerminal
- { open SAVEDSTDOUT, ">&STDOUT" ;
- open STDOUT, ">$ProgramLog" ;
- select STDOUT; $| = 1 }
-
-#D And, indeed:
-
-if ($ProcessSilent)
- { RedirectTerminal }
-else
- { $ProcessVerbose = 0 }
-
-#D We can temporary open the terminal channel.
-
-sub OpenTerminal
- { close STDOUT ;
- open STDOUT, ">&SAVEDSTDOUT" }
-
-sub CloseTerminal
- { open SAVEDSTDOUT, ">&STDOUT" ;
- open STDOUT, ">>$ProgramLog" ;
- select STDOUT; $| = 1 }
-
-#D By default wildcards are expanded into a list. The
-#D subroutine below is therefore only needed when no file or
-#D pattern is given.
-
-$InputFile = "@ARGV" ; # niet waterdicht
-
-#sub CheckInputFiles
-# { my ($UserSuppliedPath) = @_ ;
-# @UserSuppliedFiles = map { split " " } sort lc $UserSuppliedPath }
-
-sub CheckInputFiles
- { @UserSuppliedFiles = glob $_[0] }
-
-#D The next subroutine takes care of the optional output
-#D filename (e.g. for figure dimensions).
-
-$ProcessOutputFile = "" ;
-
-my $Rubish ;
-
-sub SetOutputFile
- { ($OutFilNam, $OutFilSuf) = split (/\./, $_[0], 2) ;
- unless ($ProcessOutputFile eq "")
- { $ProcessOutputFile .= "." . $OutFilSuf ;
- ($OutFilNam, $OutFilSuf, $Rubish) = split (/\./, $ProcessOutputFile , 3)}
- $OutputFile = $OutFilNam . "." . $OutFilSuf }
-
-#D Sometimes we need to split filenames.
-
-my ($FileName, $FileSuffix) = ("","") ;
-
-sub SplitFileName
- { my $Rubish = "" ;
- if ($_[0] =~ /^\.\//)
- { ($Rubish, $FileName) = split ( /^\.\//, $_[0], 2) }
- else
- { $FileName = $_[0] }
- return split (/\./, $FileName, 2) }
-
-#D In order to support multiple interfaces, we save the
-#D messages in a hash table. As a bonus we can get a quick
-#D overview of the messages we deal with.
-
-my %MS ;
-
-sub Report
- { foreach $_ (@_)
- { if (! defined $MS{$_})
- { print $_ }
- else
- { print $MS{$_} }
- print " " }
- print "\n" }
-
-#D The messages are saved in a hash table and are called
-#D by name. This contents of this table depends on the
-#D interface language in use.
-
-#D \startcompressdefinitions
-
-if ($UserInterface eq "nl")
-
- { # begin of dutch section
-
- $MS{"ProcessingReferences"} = "commando's, lijsten en indexen verwerken" ;
- $MS{"MergingReferences"} = "indexen samenvoegen" ;
- $MS{"GeneratingDocumentation"} = "ConTeXt documentatie file voorbereiden" ;
- $MS{"GeneratingSources"} = "ConTeXt broncode file genereren" ;
- $MS{"FilteringDefinitions"} = "ConTeXt definities filteren" ;
- $MS{"CopyingTemplates"} = "TeXEdit toets templates copieren" ;
- $MS{"CopyingInformation"} = "TeXEdit help informatie copieren" ;
- $MS{"GeneratingFigures"} = "figuur file genereren" ;
- $MS{"FilteringLogFile"} = "log file filteren (poor mans version)" ;
-
- $MS{"SortingIJ"} = "IJ sorteren onder Y" ;
- $MS{"ConvertingHigh"} = "hoge ASCII waarden converteren" ;
- $MS{"ProcessingQuotes"} = "characters met accenten afhandelen" ;
- $MS{"ForcingFileType"} = "filetype instellen" ;
- $MS{"UsingEps"} = "EPS files afhandelen" ;
- $MS{"UsingTif"} = "TIF files afhandelen" ;
- $MS{"UsingPdf"} = "PDF files afhandelen" ;
- $MS{"UsingPng"} = "PNG files afhandelen" ;
- $MS{"UsingJpg"} = "JPG files afhandelen" ;
- $MS{"EpsToPdf"} = "EPS converteren naar PDF";
- $MS{"EpsPage"} = "EPS pagina instellen";
- $MS{"FilteringBoxes"} = "overfull boxes filteren" ;
- $MS{"ApplyingCriterium"} = "criterium toepassen" ;
- $MS{"FilteringUnknown"} = "onbekende ... filteren" ;
-
- $MS{"NoInputFile"} = "geen invoer file opgegeven" ;
- $MS{"NoOutputFile"} = "geen uitvoer file gegenereerd" ;
- $MS{"EmptyInputFile"} = "lege invoer file" ;
- $MS{"NotYetImplemented"} = "nog niet beschikbaar" ;
-
- $MS{"Action"} = " actie :" ;
- $MS{"Option"} = " optie :" ;
- $MS{"Error"} = " fout :" ;
- $MS{"Remark"} = " opmerking :" ;
- $MS{"SystemCall"} = " systeemaanroep :" ;
- $MS{"BadSystemCall"} = " foute systeemaanroep :" ;
- $MS{"MissingSubroutine"} = " onbekende subroutine :" ;
-
- $MS{"EmbeddedFiles"} = " gebruikte files :" ;
- $MS{"BeginEndError"} = " b/e fout in :" ;
- $MS{"SynonymEntries"} = " aantal synoniemen :" ;
- $MS{"SynonymErrors"} = " fouten :" ;
- $MS{"RegisterEntries"} = " aantal ingangen :" ;
- $MS{"RegisterErrors"} = " fouten :" ;
- $MS{"PassedCommands"} = " aantal commando's :" ;
-
- $MS{"MultiPagePdfFile"} = " te veel pagina's :" ;
- $MS{"MissingMediaBox"} = " geen mediabox :" ;
- $MS{"MissingBoundingBox"} = " geen boundingbox :" ;
-
- $MS{"NOfDocuments"} = " documentatie blokken :" ;
- $MS{"NOfDefinitions"} = " definitie blokken :" ;
- $MS{"NOfSkips"} = " overgeslagen blokken :" ;
- $MS{"NOfSetups"} = " gecopieerde setups :" ;
- $MS{"NOfTemplates"} = " gecopieerde templates :" ;
- $MS{"NOfInfos"} = " gecopieerde helpinfos :" ;
- $MS{"NOfFigures"} = " verwerkte figuren :" ;
- $MS{"NOfBoxes"} = " te volle boxen :" ;
- $MS{"NOfUnknown"} = " onbekende ... :" ;
-
- $MS{"InputFile"} = " invoer file :" ;
- $MS{"OutputFile"} = " outvoer file :" ;
- $MS{"FileType"} = " type file :" ;
- $MS{"EpsFile"} = " eps file :" ;
- $MS{"PdfFile"} = " pdf file :" ;
- $MS{"TifFile"} = " tif file :" ;
- $MS{"PngFile"} = " png file :" ;
- $MS{"JpgFile"} = " jpg file :" ;
- $MS{"MPFile"} = " metapost file :" ;
-
- $MS{"LoadedFilter"} = " geladen filter :" ;
- $MS{"RemappedKeys"} = " onderschepte keys :" ;
- $MS{"WrongFilterPath"} = " fout filter pad :" ;
-
- $MS{"Overfull"} = "te vol" ;
- $MS{"Entries"} = "ingangen" ;
- $MS{"References"} = "verwijzingen" ;
-
- } # end of dutch section
-
-elsif ($UserInterface eq "de")
-
- { # begin of german section
-
- $MS{"ProcessingReferences"} = "Verarbeiten der Befehle, Listen und Register" ;
- $MS{"MergingReferences"} = "Register verschmelzen" ;
- $MS{"GeneratingDocumentation"} = "Vorbereiten der ConTeXt-Dokumentationsdatei" ;
- $MS{"GeneratingSources"} = "Erstellen einer nur Quelltext ConTeXt-Datei" ;
- $MS{"FilteringDefinitions"} = "Filtern der ConTeXt-Definitionen" ;
- $MS{"CopyingTemplates"} = "Kopieren der TeXEdit-Test-key-templates" ;
- $MS{"CopyingInformation"} = "Kopieren der TeXEdit-Hilfsinformation" ;
- $MS{"GeneratingFigures"} = "Erstellen einer Abb-Uebersichtsdatei" ;
- $MS{"FilteringLogFile"} = "Filtern der log-Datei" ;
-
- $MS{"SortingIJ"} = "Sortiere IJ nach Y" ;
- $MS{"ConvertingHigh"} = "Konvertiere hohe ASCII-Werte" ;
- $MS{"ProcessingQuotes"} = "Verarbeiten der Akzentzeichen" ;
- $MS{"ForcingFileType"} = "Dateityp einstellen" ;
- $MS{"UsingEps"} = "EPS-Dateien verarbeite" ;
- $MS{"UsingTif"} = "TIF-Dateien verarbeite" ;
- $MS{"UsingPdf"} = "PDF-Dateien verarbeite" ;
- $MS{"UsingPng"} = "PNG-Dateien verarbeite" ;
- $MS{"UsingJpg"} = "JPG-Dateien verarbeite" ;
- $MS{"EpsToPdf"} = "convert EPS to PDF";
- $MS{"EpsPage"} = "setup EPS page";
-
- $MS{"FilteringBoxes"} = "Filtern der ueberfuellten Boxen" ;
- $MS{"ApplyingCriterium"} = "Anwenden des uebervoll-Kriteriums" ;
- $MS{"FilteringUnknown"} = "Filter unbekannt ..." ;
-
- $MS{"NoInputFile"} = "Keine Eingabedatei angegeben" ;
- $MS{"NoOutputFile"} = "Keine Ausgabedatei generiert" ;
- $MS{"EmptyInputFile"} = "Leere Eingabedatei" ;
- $MS{"NotYetImplemented"} = "Noch nicht verfuegbar" ;
-
- $MS{"Action"} = " Aktion :" ;
- $MS{"Option"} = " Option :" ;
- $MS{"Error"} = " Fehler :" ;
- $MS{"Remark"} = " Anmerkung :" ;
- $MS{"SystemCall"} = " system call :" ;
- $MS{"BadSystemCall"} = " bad system call :" ;
- $MS{"MissingSubroutine"} = " missing subroutine :" ;
- $MS{"SystemCall"} = " Systemaufruf :" ;
- $MS{"BadSystemCall"} = " Fehlerhafter Aufruf :" ;
- $MS{"MissingSubroutine"} = " Fehlende Unterroutine :" ;
-
- $MS{"EmbeddedFiles"} = " Eingebettete Dateien :" ;
- $MS{"BeginEndError"} = " Beg./Ende-Fehler in :" ;
- $MS{"SynonymEntries"} = " Synonymeintraege :" ;
- $MS{"SynonymErrors"} = " Fehlerhafte Eintraege :" ;
- $MS{"RegisterEntries"} = " Registereintraege :" ;
- $MS{"RegisterErrors"} = " Fehlerhafte Eintraege :" ;
- $MS{"PassedCommands"} = " Verarbeite Befehle :" ;
-
- $MS{"MultiPagePdfFile"} = " zu viele Seiten :" ;
- $MS{"MissingMediaBox"} = " fehlende mediabox :" ;
- $MS{"MissingBoundingBox"} = " fehlende boundingbox :" ;
-
- $MS{"NOfDocuments"} = " Dokumentbloecke :" ;
- $MS{"NOfDefinitions"} = " Definitionsbloecke :" ;
- $MS{"NOfSkips"} = "Uebersprungene Bloecke :" ;
- $MS{"NOfSetups"} = " Kopierte setups :" ;
- $MS{"NOfTemplates"} = " Kopierte templates :" ;
- $MS{"NOfInfos"} = " Kopierte helpinfos :" ;
- $MS{"NOfFigures"} = " Verarbeitete Abb. :" ;
- $MS{"NOfBoxes"} = " Zu volle Boxen :" ;
- $MS{"NOfUnknown"} = " Unbekannt ... :" ;
-
- $MS{"InputFile"} = " Eingabedatei :" ;
- $MS{"OutputFile"} = " Ausgabedatei :" ;
- $MS{"FileType"} = " Dateityp :" ;
- $MS{"EpsFile"} = " eps-Datei :" ;
- $MS{"PdfFile"} = " pdf-Datei :" ;
- $MS{"TifFile"} = " tif-Datei :" ;
- $MS{"PngFile"} = " png-Datei :" ;
- $MS{"JpgFile"} = " jpg-Datei :" ;
- $MS{"MPFile"} = " metapost-Datei :" ;
-
- $MS{"LoadedFilter"} = " loaded filter :" ; # tobias
- $MS{"RemappedKeys"} = " remapped keys :" ; # tobias
- $MS{"WrongFilterPath"} = " wrong filter path :" ; # tobias
-
- $MS{"Overfull"} = "zu voll" ;
- $MS{"Entries"} = "Eintraege" ;
- $MS{"References"} = "Referenzen" ;
-
- } # end of german section
-
-else
-
- { # begin of english section
-
- $MS{"ProcessingReferences"} = "processing commands, lists and registers" ;
- $MS{"MergingReferences"} = "merging registers" ;
- $MS{"GeneratingDocumentation"} = "preparing ConTeXt documentation file" ;
- $MS{"GeneratingSources"} = "generating ConTeXt source only file" ;
- $MS{"FilteringDefinitions"} = "filtering formal ConTeXt definitions" ;
- $MS{"CopyingTemplates"} = "copying TeXEdit quick key templates" ;
- $MS{"CopyingInformation"} = "copying TeXEdit help information" ;
- $MS{"GeneratingFigures"} = "generating figure directory file" ;
- $MS{"FilteringLogFile"} = "filtering log file" ;
-
- $MS{"SortingIJ"} = "sorting IJ under Y" ;
- $MS{"ConvertingHigh"} = "converting high ASCII values" ;
- $MS{"ProcessingQuotes"} = "handling accented characters" ;
- $MS{"ForcingFileType"} = "setting up filetype" ;
- $MS{"UsingEps"} = "processing EPS-file" ;
- $MS{"UsingTif"} = "processing TIF-file" ;
- $MS{"UsingPdf"} = "processing PDF-file" ;
- $MS{"UsingPng"} = "processing PNG-file" ;
- $MS{"UsingJpg"} = "processing JPG-file" ;
- $MS{"EpsToPdf"} = "convert EPS to PDF";
- $MS{"EpsPage"} = "setup EPS page";
-
- $MS{"FilteringBoxes"} = "filtering overfull boxes" ;
- $MS{"ApplyingCriterium"} = "applying overfull criterium" ;
- $MS{"FilteringUnknown"} = "filtering unknown ..." ;
-
- $MS{"NoInputFile"} = "no input file given" ;
- $MS{"NoOutputFile"} = "no output file generated" ;
- $MS{"EmptyInputFile"} = "empty input file" ;
- $MS{"NotYetImplemented"} = "not yet available" ;
-
- $MS{"Action"} = " action :" ;
- $MS{"Option"} = " option :" ;
- $MS{"Error"} = " error :" ;
- $MS{"Remark"} = " remark :" ;
- $MS{"SystemCall"} = " system call :" ;
- $MS{"BadSystemCall"} = " bad system call :" ;
- $MS{"MissingSubroutine"} = " missing subroutine :" ;
-
- $MS{"EmbeddedFiles"} = " embedded files :" ;
- $MS{"BeginEndError"} = " b/e error in :" ;
- $MS{"SynonymEntries"} = " synonym entries :" ;
- $MS{"SynonymErrors"} = " bad entries :" ;
- $MS{"RegisterEntries"} = " register entries :" ;
- $MS{"RegisterErrors"} = " bad entries :" ;
- $MS{"PassedCommands"} = " passed commands :" ;
-
- $MS{"MultiPagePdfFile"} = " too many pages :" ;
- $MS{"MissingMediaBox"} = " missing mediabox :" ;
- $MS{"MissingBoundingBox"} = " missing boundingbox :" ;
-
- $MS{"NOfDocuments"} = " document blocks :" ;
- $MS{"NOfDefinitions"} = " definition blocks :" ;
- $MS{"NOfSkips"} = " skipped blocks :" ;
- $MS{"NOfSetups"} = " copied setups :" ;
- $MS{"NOfTemplates"} = " copied templates :" ;
- $MS{"NOfInfos"} = " copied helpinfos :" ;
- $MS{"NOfFigures"} = " processed figures :" ;
- $MS{"NOfBoxes"} = " overfull boxes :" ;
- $MS{"NOfUnknown"} = " unknown ... :" ;
-
- $MS{"InputFile"} = " input file :" ;
- $MS{"OutputFile"} = " output file :" ;
- $MS{"FileType"} = " file type :" ;
- $MS{"EpsFile"} = " eps file :" ;
- $MS{"PdfFile"} = " pdf file :" ;
- $MS{"TifFile"} = " tif file :" ;
- $MS{"PngFile"} = " png file :" ;
- $MS{"JpgFile"} = " jpg file :" ;
- $MS{"MPFile"} = " metapost file :" ;
-
- $MS{"LoadedFilter"} = " loaded filter :" ;
- $MS{"RemappedKeys"} = " remapped keys :" ;
- $MS{"WrongFilterPath"} = " wrong filter path :" ;
-
- $MS{"Overfull"} = "overfull" ;
- $MS{"Entries"} = "entries" ;
- $MS{"References"} = "references" ;
-
- } # end of english section
-
-#D \stopcompressdefinitions
-
-#D Showing the banner (name and version of the program) and
-#D offering helpinfo is rather straightforward.
-
-sub ShowBanner
- { Report("\n $Program\n") }
-
-sub ShowHelpInfo
- { Report("HelpInfo") }
-
-#D The helpinfo is also saved in the hash table. This looks
-#D like a waste of energy and space, but the program gains
-#D readability.
-
-#D \startcompressdefinitions
-
-if ($UserInterface eq "nl")
-
- { # begin of dutch section
-
- $MS{"HelpInfo"} =
-
-" --references hulp file verwerken / tui->tuo \n" .
-" --ij : IJ als Y sorteren \n" .
-" --high : hoge ASCII waarden converteren \n" .
-" --quotes : quotes converteren \n" .
-" --tcxpath : tcx filter pad \n" .
-" \n" .
-" --documents documentatie file genereren / tex->ted \n" .
-" --sources broncode file genereren / tex->tes \n" .
-" --setups ConTeXt definities filteren / tex->texutil.tus \n" .
-" --templates TeXEdit templates filteren / tex->tud \n" .
-" --infos TeXEdit helpinfo filteren / tex->tud \n" .
-" \n" .
-" --figures eps figuren lijst genereren / *->texutil.tuf \n" .
-" --epspage : voorbereiden voor pdf \n" .
-" --epstopdf : omzetten naar pdf \n" .
-" \n" .
-" --logfile logfile filteren / log->$ProgramLog \n" .
-" --box : overfull boxes controleren \n" .
-" --criterium : overfull criterium in pt \n" .
-" --unknown :onbekende ... controleren \n" ;
-
- } # end of dutch section
-
-elsif ($UserInterface eq "de")
-
- { # begin of german section
-
- $MS{"HelpInfo"} =
-
-" --references Verarbeiten der Hilfsdatei / tui->tuo \n" .
-" --ij : Sortiere IJ als Y \n" .
-" --high : Konvertiere hohe ASCII-Werte \n" .
-" --quotes : Konvertiere akzentuierte Buchstaben \n" .
-" --tcxpath : tcx Filter Path \n" .
-" \n" .
-" --documents Erstelle Dokumentationsdatei / tex->ted \n" .
-" --sources Erstelle reine Quelltextdateien / tex->tes \n" .
-" --setups Filtere ConTeXt-Definitionen / tex->texutil.tus\n" .
-" --templates Filtere TeXEdit-templates / tex->tud \n" .
-" --infos Filtere TeXEdit-helpinfo / tex->tud \n" .
-" \n" .
-" --figures Erstelle eps-Abbildungsliste / *->texutil.tuf \n" .
-" --epspage : Bereite fuer pdf vor \n" .
-" --epstopdf : Konvertiere zu pdf \n" .
-" \n" .
-" --logfile Filtere log-Datei / log->$ProgramLog \n" .
-" --box : Ueberpruefe uebervolle Boxen \n" .
-" --criterium : Uebervoll-Kriterium in pt \n" .
-" --unknown : Ueberpruefe auf unbekannte ... \n" ;
-
- } # end of german section
-
-
-else
-
- { # begin of english section
-
- $MS{"HelpInfo"} =
-
-" --references process auxiliary file / tui->tuo \n" .
-" --ij : sort IJ as Y \n" .
-" --high : convert high ASCII values \n" .
-" --quotes : convert quotes characters \n" .
-" --tcxpath : tcx filter path \n" .
-" \n" .
-" --documents generate documentation file / tex->ted \n" .
-" --sources generate source only file / tex->tes \n" .
-" --setups filter ConTeXt definitions / tex->texutil.tus \n" .
-" --templates filter TeXEdit templates / tex->tud \n" .
-" --infos filter TeXEdit helpinfo / tex->tud \n" .
-" \n" .
-" --figures generate eps figure list / *->texutil.tuf \n" .
-" --epspage : prepare for pdf \n" .
-" --epstopdf : convert to pdf \n" .
-" \n" .
-" --logfile filter logfile / log->$ProgramLog \n" .
-" --box : check overful boxes \n" .
-" --criterium : overfull criterium in pt \n" .
-" --unknown : check unknown ... \n" ;
-
- } # end of english section
-
-#D \stopcompressdefinitions
-
-#D In order to sort strings correctly, we have to sanitize
-#D them. This is especially needed when we include \TEX\
-#D commands, quotes characters and compound word placeholders.
-#D
-#D \startopsomming[opelkaar]
-#D \som \type{\name}: csnames are stripped
-#D \som \type{{}}: are removed
-#D \som \type{\"e}: and alike are translated into \type{"e} etc.
-#D \som \type{"e}: is translated into an \type{e} and \type{b} etc.
-#D \som \type{||}: becomes \type{-}
-#D \som \type{\-}: also becomes \type{-}
-#D \stopopsomming
-#D
-#D Of course other accented characters are handled too. The
-#D appended string is responsible for decent sorting.
-#D
-#D \startPL
-#D $TargetString = SanitizedString ( $SourceString ) ;
-#D \stopPL
-#D
-#D The sort order depends on the ordering in array
-#D \type{$ASCII}:
-
-$ASCII{"^"} = "a" ; $ASCII{'"'} = "b" ; $ASCII{"`"} = "c" ;
-$ASCII{"'"} = "d" ; $ASCII{"~"} = "e" ; $ASCII{","} = "f" ;
-
-#sub SanitizedString
-# { my ($string) = $_[0] ;
-# if ($ProcessQuotes)
-# { $string =~ s/\\([\^\"\`\'\~\,])/$1/gio ;
-# $copied = $string ;
-# $copied =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$ASCII{$1}/gio ;
-# $string =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$2/gio ;
-# $string=$string.$copied }
-# $string =~ s/\\-|\|\|/\-/gio ;
-# $string =~ s/\\[a-zA-Z]*| |\{|\}//gio ;
-# return $string }
-
-#D YET UNDOCUMENTED
-
-my $SortN = 0 ; my @Filter ;
-
-# copied from texexec
-
-my @paths ;
-my $kpsewhich = '' ;
-my $pathslash = '/' ; if ($0 =~ /\\/) { $pathslash = "\\" }
-
-sub checked_path
- { my $path = shift ;
- if ((defined($path))&&($path ne ''))
- { $path =~ s/[\/\\]/$pathslash/go ;
- $path =~ s/[\/\\]*$//go ;
- $path .= $pathslash }
- else
- { $path = '' }
- return $path }
-
-if ($ENV{PATH} =~ /\;/)
- { @paths = split(/\;/,$ENV{PATH}) }
-else
- { @paths = split(/\:/,$ENV{PATH}) }
-
-# until here.
-
-sub InitializeKeys
- { my $filename = $ARGV[0] ;
- return unless (open(TEX,"$filename.tex")) ;
- for ($i=0;$i<=255;$i++)
- { @Filter[$i] = $i }
- if ($TcXPath eq '')
- { foreach (@paths)
- { my $p = checked_path($_) . 'kpsewhich' ;
- if ((-e $p)||(-e $p . '.exe'))
- { $kpsewhich = $p ; last } } }
- while (<TEX>)
- { chomp ;
- my $Filter ;
- if (/^\%/)
- { if (s/.*translat.*?=([\:\/0-9\-a-z]*)/$1/oi)
- { my $Translation = $_ ;
- if ($TcXPath ne '')
- { $TcXPath = checked_path($TcXPath) ;
- $Filter = "$TcXPath$pathslash$Translation.tcx" }
- elsif ($kpsewhich ne '')
- { $Filter = `$kpsewhich --format="web2c files" $Translation.tcx` ;
- chomp $Filter }
- else
- { last }
- if (open(ASC,$Filter))
- { Report ("LoadedFilter", $Translation) ;
- while (<ASC>)
- { if (/^(\d+)\s*(\d+)/)
- { @Filter[$2] = $1 } }
- close (ASC) }
- elsif ($TcXPath ne '')
- { Report ("WrongFilterPath", $TcXPath) }
- last } }
- else
- { last } }
- close (TEX) }
-
-sub HandleKey
- { ++$SortN ;
- $RestOfLine =~ s/\{(.*)\}/$1/o ;
- my ($lan, $enc, $str, $chr, $map, $alf) = split(/\}\s*\{/, $RestOfLine) ;
- if ($str =~ /^(\d+)/) { $str = ''.chr(@Filter[$1]) }
- $map = chr(ord($MAP[$i])+128) ;
- $STR[$SortN] = $str ;
- $CHR[$SortN] = $chr ;
- $MAP[$SortN] = $map ;
- $ALF{"$chr$map"} = $alf }
-
-sub FlushKeys
- { Report ("RemappedKeys", $SortN) }
-
-sub SanitizedString
- { my $string = shift ;
- if ($SortN)
- { my $copied = $string ;
- for ($i=1;$i<=$SortN;$i++)
- { my $s = $STR[$i] ;
- my $m = $MAP[$i] ;
- my $c = $CHR[$i] ;
- $string =~ s/($s)/$c/ge ;
- $copied =~ s/($s)/$m/eg }
- #print "$string $copied\n" ;
- $string .= "\x00";
- $string .= $copied }
- elsif ($ProcessQuotes)
- { $string =~ s/\\([\^\"\`\'\~\,])/$1/gio ;
- $copied = $string ;
- $copied =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$ASCII{$1}/gio ;
- $string =~ s/([\^\"\`\'\~\,])([a-zA-Z])/$2/gio ;
- $string .= "\x00";
- $string .= $copied }
- $string =~ s/\\-|\|\|/\-/gio ;
- $string =~ s/\\[a-zA-Z]*| |\{|\}//gio ;
- return $string }
-
-#D This subroutine looks a bit complicated, which is due to the
-#D fact that we want to sort for instance an accented \type{e}
-#D after the plain \type{e}, so the imaginary words
-#D
-#D \starttypen
-#D eerste
-#D \"eerste
-#D \"e\"erste
-#D eerst\"e
-#D \stoptypen
-#D
-#D come out in an acceptable order.
-
-#D We also have to deal with the typical \TEX\ sequences with
-#D the double \type{^}'s, like \type{^^45}. These hexadecimal
-#D coded characters are just converted.
-#D
-#D \startPL
-#D $TargetString = HighConverted ( $SourceString ) ;
-#D \stopPL
-
-sub HighConverted
- { my ($string) = $_[0] ;
- $string =~ s/\^\^([a-f0-9][a-f0-9])/chr hex($1)/geo ;
- return $string }
-
-#D \extras
-#D {references}
-#D
-#D \CONTEXT\ can handle many lists, registers (indexes),
-#D tables of whatever and references. This data is collected
-#D in one pass and processed in a second one. In between,
-#D relevant data is saved in the file \type{\jobname.tui}.
-#D This file also holds some additional information concerning
-#D second pass optimizations.
-#D
-#D The main task of \TEXUTIL\ is to sort lists and registers
-#D (indexes). The results are stored in again one file called
-#D \type{\jobname.tuo}.
-#D
-#D Just for debugging purposes the nesting of files loaded
-#D during the \CONTEXT\ run is stored. Of course this only
-#D applies to files that are handled by the \CONTEXT\ file
-#D structuring commands (projects, products, components and
-#D environments).
-#D
-#D We have to handle the entries:
-#D
-#D \starttypen
-#D f b {test}
-#D f e {test}
-#D \stoptypen
-#D
-#D and only report some status info at the end of the run.
-
-sub InitializeFiles
- { $NOfFiles = 0 ;
- $NOfBadFiles = 0 }
-
-sub HandleFile
- { $RestOfLine =~ s/.*\{(.*)\}/$1/gio ;
- ++$Files{$RestOfLine} }
-
-sub FlushFiles
- { print TUO "%\n" . "% $Program / Files\n" . "%\n" ;
- foreach $File (keys %Files)
- { print TUO "% $File ($Files{$File})\n" }
- print TUO "%\n" ;
- $NOfFiles = keys %Files ;
- Report("EmbeddedFiles", $NOfFiles) ;
- foreach $File (keys %Files)
- { unless (($Files{$File} % 2) eq 0)
- { ++$NOfBadFiles ;
- Report("BeginEndError", $File) } } }
-
-#D Commands don't need a special treatment. They are just
-#D copied. Such commands are tagged by a \type{c}, like:
-#D
-#D \starttypen
-#D c \thisisutilityversion{year.month.day}
-#D c \twopassentry{class}{key}{value}
-#D c \mainreference{prefix}{entry}{pagenumber}{realpage}{tag}
-#D c \listentry{category}{tag}{number}{title}{pagenumber}{realpage}
-#D c \initializevariable\realnumberofpages{number}
-#D \stoptypen
-#D
-#D For historic reasons we check for the presense of the
-#D backslash.
-
-sub InitializeCommands
- { print TUO "%\n" . "% $Program / Commands\n" . "%\n" ;
- $NOfCommands = 0 }
-
-sub HandleCommand
- { ++$NOfCommands ;
- $RestOfLine =~ s/^\\//go ;
- print TUO "\\$RestOfLine\n" }
-
-sub FlushCommands
- { Report ("PassedCommands", $NOfCommands) }
-
-#D Synonyms are a sort of key||value pairs and are used for
-#D ordered lists like abbreviations and units.
-#D
-#D \starttypen
-#D s e {class}{sanitized key}{key}{associated data}
-#D \stoptypen
-#D
-#D The sorted lists are saved as (surprise):
-#D
-#D \starttypen
-#D \synonymentry{class}{sanitized key}{key}{associated data}
-#D \stoptypen
-
-sub InitializeSynonyms
- { $NOfSynonyms = 0 ;
- $NOfBadSynonyms = 0 }
-
-#M \definieersynoniem [testname] [testnames] [\testmeaning]
-#M
-#M \stelsynoniemenin [testname] [criterium=alles]
-
-#D Let's first make clear what we can expect. Synonym
-#D entries look like:
-#D
-#D \startbuffer
-#D \testname [alpha] {\sl alpha} {a greek letter a}
-#D \testname {alpha} {another a}
-#D \testname [Beta] {\kap{beta}} {a greek letter b}
-#D \testname {beta} {indeed another b}
-#D \testname {gamma} {something alike g}
-#D \testname {delta} {just a greek d}
-#D \stopbuffer
-#D
-#D \typebuffer
-#D
-#D This not that spectacular list is to be sorted according
-#D to the keys (names). \haalbuffer
-
-sub HandleSynonym
- { ++$NOfSynonyms ;
- ($SecondTag, $RestOfLine) = split(/ /, $RestOfLine, 2) ;
- ($Class, $Key, $Entry, $Meaning) = split(/} \{/, $RestOfLine) ;
- chop $Meaning ;
- $Class = substr $Class, 1 ;
- if ($Entry eq "")
- { ++$NOfBadSynonyms }
- else
- { $SynonymEntry[$NOfSynonyms] =
- join ($JOIN,$Class,$Key,$Entry,$Meaning) } }
-
-#D Depending on the settings\voetnoot{One can call for
-#D all defined entries, call only the used ones, change
-#D layout, attach (funny) commands etc.} a list of
-#D {\em testnames} looks like:
-#D
-#D \plaatslijstmettestnames
-#D
-#D Watch the order in which these entries are sorted.
-
-sub FlushSynonyms
- { print TUO "%\n" . "% $Program / Synonyms\n" . "%\n" ;
- @SynonymEntry = sort { lc($a) cmp lc($b) } @SynonymEntry ;
- $NOfSaneSynonyms = 0 ;
- for ($n=1; $n<=$NOfSynonyms; $n++)
- { # check normally not needed
- if (($n==1)||($SynonymEntry[$n] ne $SynonymEntry[$n-1]))
- { ($Class, $Key, $Entry, $Meaning) =
- split(/$JOIN/, $SynonymEntry[$n]) ;
- ++$NOfSaneSynonyms ;
- print TUO "\\synonymentry{$Class}{$Key}{$Entry}{$Meaning}\n" } }
- Report("SynonymEntries", $NOfSynonyms, "->", $NOfSaneSynonyms, "Entries") ;
- if ($NOfBadSynonyms>0)
- { Report("SynonymErrors", $NOfBadSynonyms) } }
-
-#D Register entries need a bit more care, especially when they
-#D are nested. In the near future we will also handle page
-#D ranges.
-#D
-#D \starttypen
-#D r e {class}{tag}{sanitized key}{key}{pagenumber}{realpage}
-#D r s {class}{tag}{sanitized key}{key}{string}{pagenumber}
-#D r r {class}{tag}{sanitized key}{key}{string}{pagenumber}
-#D \stoptypen
-#D
-#D The last one indicates the start of a range.
-
-#D The first one is the normal entry, the second one concerns
-#D {\em see this or that} entries. Keys are sanitized, unless
-#D the user supplies a sanitized key. To save a lot of
-#D programming, all data concerning an entry is stored in one
-#D string. Subentries are specified as:
-#D
-#D \starttypen
-#D first&second&third
-#D first+second+third
-#D \stoptypen
-#D
-#D When these characters are needed for typesetting purposes, we
-#D can also use the first character to specify the separator:
-#D
-#D \starttypen
-#D &$x^2+y^2=r^2$
-#D +this \& that
-#D \stoptypen
-#D
-#D Subentries are first unpacked and next stored in a
-#D consistent way, which means that we can use both separators
-#D alongside each other. We leave it to the reader to sort
-#D out the dirty tricks.
-
-$SPLIT ="%%" ;
-$JOIN ="__" ;
-
-sub InitializeRegisters
- { $NOfEntries = 0 ;
- $NOfBadEntries = 0 }
-
-$ProcessType = "" ;
-
-$RegStat{"f"} = 1 ;
-$RegStat{"e"} = 2 ; # end up between from and to
-$RegStat{"t"} = 3 ;
-$RegStat{"s"} = 4 ;
-
-sub HandleRegister
- { ($SecondTag, $RestOfLine) = split(/ /, $RestOfLine, 2) ;
- ++$NOfEntries ;
- if ($SecondTag eq "s")
- { ($Class, $Location, $Key, $Entry, $SeeToo, $Page ) =
- split(/} \{/, $RestOfLine) ;
- chop $Page ;
- $Class = substr $Class, 1 ;
- $RealPage = 0 }
- else
- { ($Class, $Location, $Key, $Entry, $Page, $RealPage ) =
- split(/} \{/, $RestOfLine) ;
- chop $RealPage ;
- $Class = substr $Class, 1 ;
- $SeeToo = "" }
- #
- $_ = $Key ;
- if (/\:\:/)
- { ($PageHow,$Key) = split (/\:\:/) }
- else
- { $PageHow = "" }
- $_ = $Entry ;
- if (/\:\:/)
- { ($TextHow,$Entry) = split (/\:\:/) }
- else
- { $TextHow = "" }
- #
- if ($Key eq "")
- { $Key = SanitizedString($Entry) }
-if ($SortMethod ne '') { $ProcessHigh = 0 }
- if ($ProcessHigh)
- { $Key = HighConverted($Key) }
- $KeyTag = substr $Key, 0, 1 ;
- if ($KeyTag eq "&")
- { $Key =~ s/^\&//go ;
- $Key =~ s/([^\\])\&/$1$SPLIT/go }
- elsif ($KeyTag eq "+")
- { $Key =~ s/^\+//go ;
- $Key =~ s/([^\\])\+/$1$SPLIT/go }
- else
- { $Key =~ s/([^\\])\&/$1$SPLIT/go ;
- $Key =~ s/([^\\])\+/$1$SPLIT/go }
- $Key .= " " ; # so, "Word" comes for "Word Another Word"
- $EntryTag = substr $Entry, 0, 1 ;
- if ($EntryTag eq "&")
- { $Entry =~ s/^\&//go ;
- $Entry =~ s/([^\\])\&/$1$SPLIT/go }
- elsif ($EntryTag eq "+")
- { $Entry =~ s/^\+//go ;
- $Entry =~ s/([^\\])\+/$1$SPLIT/go }
- elsif ($KeyTag eq "&")
- { $Entry =~ s/([^\\])\&/$1$SPLIT/go }
- elsif ($KeyTag eq "+")
- { $Entry =~ s/([^\\])\+/$1$SPLIT/go }
- else
- { $Entry =~ s/([^\\])\&/$1$SPLIT/go ;
- $Entry =~ s/([^\\])\+/$1$SPLIT/go }
- $Key =~ s/^([^a-zA-Z])/ $1/go ;
- if ($ProcessIJ)
- { $Key =~ s/ij/yy/go }
- $LCKey = lc $Key ;
- $RegStatus = $RegStat{$SecondTag} ;
- $RealPageNumber= sprintf("%6i",$RealPage) ;
- $RegisterEntry[$NOfEntries] =
- join($JOIN,$Class,$LCKey,$Key,$TextHow,$Entry,$RegStatus,
- $RealPageNumber,$Location,$Page,$PageHow,$SeeToo) }
-
-#M \definieerregister [testentry] [testentries]
-
-#D The previous routine deals with entries like:
-#D
-#D \startbuffer
-#D \testentry {alpha}
-#D \testentry {beta}
-#D \testentry {gamma}
-#D \testentry {gamma}
-#D \testentry {delta}
-#D \testentry {epsilon}
-#D \testentry {alpha+first}
-#D \testentry {alpha+second}
-#D \testentry {alpha+second}
-#D \testentry {alpha+third}
-#D \testentry {alpha+second+one}
-#D \testentry {alpha+second+one}
-#D \testentry {alpha+second+two}
-#D \testentry {alpha+second+three}
-#D \testentry {gamma+first+one}
-#D \testentry {gamma+second}
-#D \testentry {gamma+second+one}
-#D
-#D \testentry {alpha+fourth}
-#D \testentry {&alpha&fourth}
-#D \testentry {+alpha+fourth}
-#D
-#D \testentry [alpha+fourth] {alpha+fourth}
-#D \testentry [&alpha&fourth&one] {&alpha&fourth&one}
-#D \testentry [+alpha+fourth+two] {&alpha&fourth&two}
-#D
-#D \testentry {\kap{alpha}+fifth}
-#D \testentry {\kap{alpha}+f\'ifth}
-#D \testentry {\kap{alpha}+f"ifth}
-#D
-#D \testentry [&betaformula] {&$a^2+b^2=c^2$}
-#D
-#D \testentry {zeta \& more}
-#D
-#D \testentry [pagehowto::key]{texthowto::entry}
-#D
-#D \stopbuffer
-#D
-#D \typebuffer
-#D
-#D \haalbuffer After being sorted, these entries are
-#D turned into something \TEX\ using:
-
-$RegisterEntry[0] = ("") ;
-
-sub How
- { return "$TextHow\:\:" . "$_[0]" }
-
-sub FlushRegisters
- { print TUO "%\n" . "% $Program / Registers\n" . "%\n" ;
- @RegisterEntry = sort { lc($a) cmp lc($b) } @RegisterEntry ;
- $NOfSaneEntries = 0 ;
- $NOfSanePages = 0 ;
- $LastPage = "" ;
- $LastRealPage = "" ;
- $AlfaClass = "" ;
- $Alfa = "" ;
- $PreviousA = "" ;
- $PreviousB = "" ;
- $PreviousC = "" ;
- $ActualA = "" ;
- $ActualB = "" ;
- $ActualC = "" ;
- for ($n=1 ; $n<=$NOfEntries ; ++$n)
- { ($Class, $LCKey, $Key, $TextHow, $Entry, $RegisterState,
- $RealPage, $Location, $Page, $PageHow, $SeeToo) =
- split(/$JOIN/, $RegisterEntry[$n]) ;
- $RealPage =~ s/^\s*//o ;
- $TestAlfa = lc substr $Key, 0, 1 ;
-#
-if ($SortN)
- { $AlfKey = $Key ;
- $AlfKey =~ s/(.).*\x00(.).*/$1$2/o ;
- if (defined($ALF{$AlfKey}))
- { $TestAlfa = $ALF{$AlfKey} } }
-#
- if ((lc $TestAlfa ne lc $Alfa) or ($AlfaClass ne $Class))
- { # $Alfa= lc substr $Key, 0, 1 ;
- $Alfa = $TestAlfa ;
- $AlfaClass = $Class ;
- if ($Alfa ne " ")
- { print TUO "\\registerentry{$Class}{$Alfa}\n" } }
- ($ActualA, $ActualB, $ActualC ) =
- split(/$SPLIT/, $Entry, 3) ;
- unless ($ActualA) { $ActualA = "" }
- unless ($ActualB) { $ActualB = "" }
- unless ($ActualC) { $ActualC = "" }
- if (How($ActualA) eq $PreviousA)
- { $ActualA = "" }
- else
- { $PreviousA = How($ActualA) ;
- $PreviousB = "" ;
- $PreviousC = "" }
- if (How($ActualB) eq $PreviousB)
- { $ActualB = "" }
- else
- { $PreviousB = How($ActualB) ;
- $PreviousC = "" }
- if (How($ActualC) eq $PreviousC)
- { $ActualC = "" }
- else
- { $PreviousC = How($ActualC) }
- $Copied = 0 ;
- if ($ActualA ne "")
- { print TUO "\\registerentrya{$Class}{$ActualA}\n" ;
- $Copied = 1 }
- if ($ActualB ne "")
- { print TUO "\\registerentryb{$Class}{$ActualB}\n" ;
- $Copied = 1 }
- if ($ActualC ne "")
- { print TUO "\\registerentryc{$Class}{$ActualC}\n" ;
- $Copied = 1 }
- if ($Copied)
- { $NOfSaneEntries++ }
- if ($RealPage eq 0)
-# { print TUO "\\registersee{$Class}{$SeeToo}{$Page}\n" ;
-{ print TUO "\\registersee{$Class}{$PageHow,$TextHow}{$SeeToo}{$Page}\n" ;
- $LastPage = $Page ;
- $LastRealPage = $RealPage }
- elsif (($Copied) ||
- ! (($LastPage eq $Page) and ($LastRealPage eq $RealPage)))
-# { print TUO "\\registerpage{$Class}{$Location}{$Page}{$RealPage}\n" ;
-{ if ($RegisterState eq $RegStat{"f"})
- { print TUO "\\registerfrom{$Class}{$PageHow,$TextHow}{$Location}{$Page}{$RealPage}\n" }
- elsif ($RegisterState eq $RegStat{"t"})
- { print TUO "\\registerto {$Class}{$PageHow,$TextHow}{$Location}{$Page}{$RealPage}\n" }
- else
- { print TUO "\\registerpage{$Class}{$PageHow,$TextHow}{$Location}{$Page}{$RealPage}\n" }
- ++$NOfSanePages ;
- $LastPage = $Page ;
- $LastRealPage = $RealPage } }
- Report("RegisterEntries", $NOfEntries, "->", $NOfSaneEntries, "Entries",
- $NOfSanePages, "References") ;
- if ($NOfBadEntries>0)
- { Report("RegisterErrors", $NOfBadEntries) } }
-
-#D As promised, we show the results:
-#D
-#D \plaatstestentry
-
-#D For debugging purposes we flush some status information. The
-#D faster machines become, the more important this section will
-#D be.
-
-sub FlushData
- { print TUO
- "% \n" .
- "% embedded files : $NOfFiles ($NOfBadFiles errors)\n" .
- "% passed commands : $NOfCommands\n" .
- "% synonym entries : $NOfSynonyms ($NOfBadSynonyms errors)\n" .
- "% register entries : $NOfEntries ($NOfBadEntries errors)" }
-
-#D The functionallity described on the previous few pages is
-#D called upon in the main routine:
-
-sub NormalHandleReferences
- { if ($InputFile eq "")
- { Report("Error", "NoInputFile") }
- else
- { unless (open (TUI, "$InputFile.tui"))
- { Report("Error", "EmptyInputFile", $InputFile) }
- else
- { Report("InputFile", "$InputFile.tui" ) ;
- unlink "$InputFile.tmp" ;
- rename "$InputFile.tuo", "$InputFile.tmp" ;
- Report("OutputFile", "$InputFile.tuo" ) ;
- open (TUO, ">$InputFile.tuo") ;
- print TUO "%\n" . "% $Program / Commands\n" . "%\n" ;
- while (<TUI>)
- { $SomeLine = $_ ;
- chomp $SomeLine ;
- ($FirstTag, $RestOfLine) = split ' ', $SomeLine, 2 ;
- if ($FirstTag eq "c")
- { HandleCommand }
- elsif ($FirstTag eq "s")
- { HandleSynonym }
- elsif ($FirstTag eq "r")
- { HandleRegister }
- elsif ($FirstTag eq "f")
- { HandleFile }
- elsif ($FirstTag eq "k")
- { HandleKey }
- elsif ($FirstTag eq "q")
- { $ValidOutput = 0 ;
- last } }
- if ($ValidOutput)
- { FlushCommands ; # already done during pass
- FlushKeys ;
- FlushRegisters ;
- FlushSynonyms ;
- FlushFiles ;
- FlushData ;
- close (TUO) }
- else
- { close (TUO) ;
- unlink "$InputFile.tuo" ;
- rename "$InputFile.tmp", "$InputFile.tuo" ;
- Report ("Remark", "NoOutputFile") } } } }
-
-my $Suffix ;
-
-sub MergerHandleReferences
- { unlink "texutil.tuo" ;
- Report("OutputFile", "texutil.tuo" ) ;
- open (TUO, ">texutil.tuo") ;
- foreach $InputFile (@ARGV)
- { ($InputFile, $Suffix) = split (/\./, $InputFile, 2) ;
- unless (open (TUI, "$InputFile.tui"))
- { Report("Error", "EmptyInputFile", $InputFile) }
- else
- { Report("InputFile", "$InputFile.tui" ) ;
- while (<TUI>)
- { $SomeLine = $_ ;
- chomp $SomeLine ;
- ($FirstTag, $RestOfLine) = split ' ', $SomeLine, 2 ;
- if ($FirstTag eq "r")
- { HandleRegister } } } }
- if ($ValidOutput)
- { FlushRegisters ;
- close (TUO) }
- else
- { close (TUO) ;
- unlink "texutil.tuo" ;
- Report ("Remark", "NoOutputFile") } }
-
-# sub HandleReferences
-# { Report("Action", "ProcessingReferences") ;
-# if ($ProcessIJ )
-# { Report("Option", "SortingIJ") }
-# if ($ProcessHigh)
-# { Report("Option", "ConvertingHigh") }
-# if ($ProcessQuotes)
-# { Report("Option", "ProcessingQuotes") }
-# if ($InputFile eq "")
-# { Report("Error", "NoInputFile") }
-# else
-# { unless (open (TUI, "$InputFile.tui"))
-# { Report("Error", "EmptyInputFile", $InputFile) }
-# else
-# { Report("InputFile", "$InputFile.tui" ) ;
-# InitializeCommands ;
-# InitializeRegisters ;
-# InitializeSynonyms ;
-# InitializeFiles ;
-# $ValidOutput = 1 ;
-# unlink "$InputFile.tmp" ;
-# rename "$InputFile.tuo", "$InputFile.tmp" ;
-# Report("OutputFile", "$InputFile.tuo" ) ;
-# open (TUO, ">$InputFile.tuo") ;
-# while (<TUI>)
-# { $SomeLine = $_ ;
-# chomp $SomeLine ;
-# ($FirstTag, $RestOfLine) = split ' ', $SomeLine, 2 ;
-# if ($FirstTag eq "c")
-# { HandleCommand }
-# elsif ($FirstTag eq "s")
-# { HandleSynonym }
-# elsif ($FirstTag eq "r")
-# { HandleRegister }
-# elsif ($FirstTag eq "f")
-# { HandleFile }
-# elsif ($FirstTag eq "q")
-# { $ValidOutput = 0 ;
-# last } }
-# if ($ValidOutput)
-# { FlushCommands ; # already done during pass
-# FlushRegisters ;
-# FlushSynonyms ;
-# FlushFiles ;
-# FlushData ;
-# close (TUO) }
-# else
-# { close (TUO) ;
-# unlink "$InputFile.tuo" ;
-# rename "$InputFile.tmp", "$InputFile.tuo" ;
-# Report ("Remark", "NoOutputFile") } } } }
-
-sub HandleReferences
- { $Merging = @ARGV ;
- $Merging = ($Merging>1) ;
- if ($Merging)
- { Report("Action", "MergingReferences") }
- else
- { Report("Action", "ProcessingReferences") }
- if ($ProcessIJ )
- { Report("Option", "SortingIJ") }
- if ($ProcessHigh)
- { Report("Option", "ConvertingHigh") }
- if ($ProcessQuotes)
- { Report("Option", "ProcessingQuotes") }
- InitializeKeys ;
- InitializeCommands ;
- InitializeRegisters ;
- InitializeSynonyms ;
- InitializeFiles ;
- $ValidOutput = 1 ;
- if ($Merging)
- { MergerHandleReferences }
- else
- { NormalHandleReferences } }
-
-#D \extras
-#D {documents}
-#D
-#D Documentation can be woven into a source file. The next
-#D routine generates a new, \TEX\ ready file with the
-#D documentation and source fragments properly tagged. The
-#D documentation is included as comment:
-#D
-#D \starttypen
-#D %D ...... some kind of documentation
-#D %M ...... macros needed for documenation
-#D %S B begin skipping
-#D %S E end skipping
-#D \stoptypen
-#D
-#D The most important tag is \type{%D}. Both \TEX\ and
-#D \METAPOST\ files use \type{%} as a comment chacacter, while
-#D \PERL\ uses \type{#}. Therefore \type{#D} is also handled.
-#D
-#D The generated file gets the suffix \type{ted} and is
-#D structured as:
-#D
-#D \starttypen
-#D \startmodule[type=suffix]
-#D \startdocumentation
-#D \stopdocumentation
-#D \startdefinition
-#D \stopdefinition
-#D \stopmodule
-#D \stoptypen
-#D
-#D Macro definitions specific to the documentation are not
-#D surrounded by start||stop commands. The suffix specifaction
-#D can be overruled at runtime, but defaults to the file
-#D extension. This specification can be used for language
-#D depended verbatim typesetting.
-
-sub HandleDocuments
- { Report("Action", "GeneratingDocumentation") ;
- if ($ProcessType ne "")
- { Report("Option", "ForcingFileType", $ProcessType) }
- if ($InputFile eq "")
- { Report("Error", "NoInputFile") }
- else
- { CheckInputFiles ($InputFile) ;
- foreach $FullName (@UserSuppliedFiles)
- { ($FileName, $FileSuffix) = SplitFileName ($FullName) ;
- unless ($FileSuffix)
- { $FileSuffix = "tex" }
- unless (-f "$FileName.$FileSuffix")
- { next }
- unless (open (TEX, "$FileName.$FileSuffix"))
- { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) }
- else
- { Report("InputFile", "$FileName.$FileSuffix") ;
- Report("OutputFile", "$FileName.ted") ;
- open (TED, ">$FileName.ted") ;
- $NOfDocuments = 0 ;
- $NOfDefinitions = 0 ;
- $NOfSkips = 0 ;
- $SkipLevel = 0 ;
- $InDocument = 0 ;
- $InDefinition = 0 ;
- if ($ProcessType eq "")
- { $FileType=lc $FileSuffix }
- else
- { $FileType=lc $ProcessType }
- Report("FileType", $FileType) ;
- print TED "\\startmodule[type=$FileType]\n" ;
- while (<TEX>)
- { chomp ;
- s/\s*$//o ;
- if (/^[%\#]D/)
- { if ($SkipLevel == 0)
- { if (length $_ < 3)
- {$SomeLine = "" }
- else # HH: added after that
- {$SomeLine = substr $_, 3 }
- if ($InDocument)
- { print TED "$SomeLine\n" }
- else
- { if ($InDefinition)
- { print TED "\\stopdefinition\n" ;
- $InDefinition = 0 }
- unless ($InDocument)
- { print TED "\n\\startdocumentation\n" }
- print TED "$SomeLine\n" ;
- $InDocument = 1 ;
- ++$NOfDocuments } } }
- elsif (/^[%\#]M/)
- { if ($SkipLevel == 0)
- { $SomeLine = substr $_, 3 ;
- print TED "$SomeLine\n" } }
- elsif (/^[%\%]S B]/)
- { ++$SkipLevel ;
- ++$NOfSkips }
- elsif (/^[%\%]S E]/)
- { --$SkipLevel }
- elsif (/^[%\#]/)
- { }
- elsif ($SkipLevel == 0)
- { $InLocalDocument = $InDocument ;
- $SomeLine = $_ ;
- if ($InDocument)
- { print TED "\\stopdocumentation\n" ;
- $InDocument = 0 }
- if (($SomeLine eq "") && ($InDefinition))
- { print TED "\\stopdefinition\n" ;
- $InDefinition = 0 }
- else
- { if ($InDefinition)
- { print TED "$SomeLine\n" }
- elsif ($SomeLine ne "")
- { print TED "\n" . "\\startdefinition\n" ;
- $InDefinition = 1 ;
- unless ($InLocalDocument)
- { ++$NOfDefinitions }
- print TED "$SomeLine\n" } } } }
- if ($InDocument)
- { print TED "\\stopdocumentation\n" }
- if ($InDefinition)
- { print TED "\\stopdefinition\n" }
- print TED "\\stopmodule\n" ;
- close (TED) ;
- unless (($NOfDocuments) || ($NOfDefinitions))
- { unlink "$FileName.ted" }
- Report ("NOfDocuments", $NOfDocuments) ;
- Report ("NOfDefinitions", $NOfDefinitions) ;
- Report ("NOfSkips", $NOfSkips) } } } }
-
-#D \extras
-#D {sources}
-#D
-#D Documented sources can be stripped of documentation and
-#D comments, although at the current processing speeds the
-#D overhead of skipping the documentation at run time is
-#D neglectable. Only lines beginning with a \type{%} are
-#D stripped. The stripped files gets the suffix \type{tes}.
-
-sub HandleSources
- { Report("Action", "GeneratingSources") ;
- if ($InputFile eq "")
- { Report("Error", "NoInputFile") }
- else
- { CheckInputFiles ($InputFile) ;
- foreach $FullName (@UserSuppliedFiles)
- { ($FileName, $FileSuffix) = SplitFileName ($FullName) ;
- unless ($FileSuffix)
- { $FileSuffix = "tex" }
- unless (-f "$FileName.$FileSuffix")
- { next }
- unless (open (TEX, "$FileName.$FileSuffix"))
- { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) }
- else
- { Report("InputFile", "$FileName.$FileSuffix") ;
- Report("OutputFile", "$FileName.tes") ;
- open (TES, ">$FileName.tes") ;
- $EmptyLineDone = 1 ;
- $FirstCommentDone = 0 ;
- while (<TEX>)
- { $SomeLine = $_ ;
- chomp $SomeLine ;
- if ($SomeLine eq "")
- { unless ($FirstCommentDone)
- { $FirstCommentDone = 1 ;
- print TES
- "\n% further documentation is removed\n\n" ;
- $EmptyLineDone = 1 }
- unless ($EmptyLineDone)
- { print TES "\n" ;
- $EmptyLineDone = 1 } }
- elsif ($SomeLine =~ /^%/)
- { unless ($FirstCommentDone)
- { print TES "$SomeLine\n" ;
- $EmptyLineDone = 0 } }
- else
- { print TES "$SomeLine\n" ;
- $EmptyLineDone = 0 } }
- close (TES) ;
- unless ($FirstCommentDone)
- { unlink "$FileName.tes" } } } } }
-
-#D \extras
-#D {setups}
-#D
-#D All \CONTEXT\ commands are specified in a compact format
-#D that can be used to generate quick reference tables and
-#D cards. Such setups are preceded by \type{%S}. The setups
-#D are collected in the file \type{texutil.tus}.
-
-sub HandleSetups
- { Report("Action", "FilteringDefinitions" ) ;
- if ($InputFile eq "")
- { Report("Error", "NoInputFile") }
- else
- { SetOutputFile ("texutil.tus" ) ;
- Report("OutputFile", $OutputFile) ;
- open (TUS, ">$OutputFile") ; # always reset!
- $NOfSetups = 0 ;
- CheckInputFiles ($InputFile) ;
- foreach $FullName (@UserSuppliedFiles)
- { ($FileName, $FileSuffix) = SplitFileName ($FullName) ;
- unless ($FileSuffix)
- { $FileSuffix = "tex" }
- unless (-f "$FileName.$FileSuffix")
- { next }
- unless (open (TEX, "$FileName.$FileSuffix"))
- { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) }
- else
- { Report("InputFile", "$FileName.$FileSuffix") ;
- print TUS "%\n" . "% File : $FileName.$FileSuffix\n" . "%\n" ;
- while (<TEX>)
- { $SomeLine = $_ ;
- chomp $SomeLine ;
- ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) ;
- if ($Tag eq "%S")
- { ++$NOfSetups ;
- while ($Tag eq "%S")
- { print TUS "$RestOfLine\n" ;
- $SomeLine = <TEX> ;
- chomp $SomeLine ;
- ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) }
- print TUS "\n" } } } }
- close (TUS) ;
- unless ($NOfSetups)
- { unlink $OutputFile }
- Report("NOfSetups", $NOfSetups) } }
-
-#D \extras
-#D {templates, infos}
-#D
-#D From the beginning, the \CONTEXT\ source files contained
-#D helpinfo and key||templates for \TEXEDIT. In fact, for a
-#D long time, this was the only documentation present. More
-#D and more typeset (interactive) documentation is replacing
-#D this helpinfo, but we still support the traditional method.
-#D This information is formatted like:
-#D
-#D \starttypen
-#D %I n=Struts
-#D %I c=\strut,\setnostrut,\setstrut,\toonstruts
-#D %I
-#D %I text
-#D %I ....
-#D %P
-#D %I text
-#D %I ....
-#D \stoptypen
-#D
-#D Templates look like:
-#D
-#D \starttypen
-#D %T n=kap
-#D %T m=kap
-#D %T a=k
-#D %T
-#D %T \kap{?}
-#D \stoptypen
-#D
-#D The key||value pairs stand for {\em name}, {\em mnemonic},
-#D {\em key}. This information is copied to files with the
-#D extension \type{tud}.
-
-sub HandleEditorCues
- { if ($ProcessTemplates)
- { Report("Action", "CopyingTemplates" ) }
- if ($ProcessInfos)
- {Report("Action", "CopyingInformation" ) }
- if ($InputFile eq "")
- { Report("Error", "NoInputFile") }
- else
- { CheckInputFiles ($InputFile) ;
- foreach $FullName (@UserSuppliedFiles)
- { ($FileName, $FileSuffix) = SplitFileName ($FullName) ;
- if ($FileSuffix eq "")
- { $FileSuffix = "tex" }
- unless (-f "$FileName.$FileSuffix")
- { next }
- unless (open (TEX, "$FileName.$FileSuffix"))
- { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) }
- else
- { Report("InputFile", "$FileName.$FileSuffix") ;
- Report("OutputFile", "$FileName.tud") ;
- open (TUD, ">$FileName.tud") ;
- $NOfTemplates = 0 ;
- $NOfInfos = 0 ;
- while (<TEX>)
- { $SomeLine = $_ ;
- chomp $SomeLine ;
- ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) ;
- if (($Tag eq "%T") && ($ProcessTemplates))
- { ++$NOfTemplates ;
- while ($Tag eq "%T")
- { print TUD "$SomeLine\n" ;
- $SomeLine = <TEX> ;
- chomp $SomeLine ;
- ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) }
- print TUD "\n" }
- elsif (($Tag eq "%I") && ($ProcessInfos))
- { ++$NOfInfos ;
- while (($Tag eq "%I") || ($Tag eq "%P"))
- { print TUD "$SomeLine\n" ;
- $SomeLine = <TEX> ;
- chomp $SomeLine ;
- ($Tag, $RestOfLine) = split(/ /, $SomeLine, 2) }
- print TUD "\n" } }
- close (TUD) ;
- unless (($NOfTemplates) || ($NOfInfos))
- { unlink "$FileName.tud" }
- if ($ProcessTemplates)
- { Report("NOfTemplates", $NOfTemplates) }
- if ($ProcessInfos)
- { Report("NOfInfos", $NOfInfos) } } } } }
-
-#D \extras
-#D {figures}
-#D
-#D Directories can be scanned for illustrations in \EPS, \PDF,
-#D \TIFF, \PNG\ or \JPG\ format. The resulting file \type{texutil.tuf}
-#D contains entries like:
-#D
-#D \starttypen
-#D \thisisfigureversion{year.month.day}
-#D \presetfigure[file][...specifications...]
-#D \stoptypen
-#D
-#D where the specifications are:
-#D
-#D \starttypen
-#D [e=suffix,x=xoffset,y=yoffset,w=width,h=height,t=title,c=creator,s=size]
-#D \stoptypen
-#D
-#D This data can be used when determining dimensions and
-#D generate directories of illustrations.
-
-$DPtoCM = 2.54/72.0 ;
-$INtoCM = 2.54 ;
-
-sub SaveFigurePresets
- { my ($FNam, $FTyp, $FUni, $FXof, $FYof, $FWid, $FHei, $FTit, $FCre, $FSiz) = @_ ;
- if ($ProcessVerbose)
- { OpenTerminal ;
- if ($FUni)
- { print "n=$FNam t=$FTyp " .
- (sprintf "x=%1.3fcm y=%1.3fcm ", $FXof, $FYof) .
- (sprintf "w=%1.3fcm h=%1.3fcm\n", $FWid, $FHei) }
- else
- { print "n=$FNam t=$FTyp " .
- "x=${FXof}bp y=${FYof}bp " .
- "w=${FWid}bp h=${FHei}bp\n" }
- CloseTerminal }
- else
- { ++$NOfFigures ;
- $Figures[$NOfFigures] = "\\presetfigure[$FNam][e=$FTyp" ;
- if ($FUni)
- { $Figures[$NOfFigures] .= (sprintf ",w=%5.3fcm,h=%5.3fcm", $FWid, $FHei) }
- else
- { $Figures[$NOfFigures] .= ",w=${FWid}bp,h=${FHei}bp" }
- if (($FXof!=0)||($FYof!=0))
- { if ($FUni)
- { $Figures[$NOfFigures] .= (sprintf ",x=%1.3fcm,y=%1.3fcm", $FXof, $FYof) }
- else
- { $Figures[$NOfFigures] .= ",x=${FXof}bp,y=${FYof}bp" } }
- if ($FTit)
- { $Figures[$NOfFigures] .= ",t=\{$FTit\}" }
- if ($FCre)
- { $Figures[$NOfFigures] .= ",c=\{$FCre\}" }
- $Figures[$NOfFigures] .= ",s=$FSiz]\n" } }
-
-#D The \EPS\ to \PDF\ conversion pipe to \GHOSTSCRIPT\ is
-#D inspired by a script posted by Sebastian Ratz at the
-#D \PDFTEX\ mailing list. Watch the bounding box check, we
-#D use the values found in an earlier pass.
-
-sub ConvertEpsToEps
- { my ( $SuppliedFileName , $LLX, $LLY, $URX, $URY ) = @_ ;
- ($FileName, $FileSuffix) = SplitFileName ($SuppliedFileName) ;
- if ($ProcessEpsToPdf)
- { unlink "$FileName.pdf" ;
- $GSCommandLine = "-q " .
- "-sDEVICE=pdfwrite " .
- "-dNOCACHE " .
- "-dUseFlateCompression=true " .
- "-sOutputFile=$FileName.pdf " .
- "- -c " .
- "quit " ;
- open ( EPS, "| gs $GSCommandLine") }
- elsif ($PDFReady)
- { return }
- else
- { open ( EPS, ">texutil.tmp" ) ;
- binmode EPS }
- open ( TMP , "$SuppliedFileName" ) ;
- binmode TMP ;
- $EpsBBOX = 0 ;
- $EpsWidth = $URX - $LLX ;
- $EpsHeight = $URY - $LLY ;
- $EpsXOffset = 0 - $LLX ;
- $EpsYOffset = 0 - $LLY ;
- while (<TMP>)
- { if (/%!PS/)
- { s/(.*)%!PS/%!PS/o ;
- print EPS $_ ;
- last } }
- while (<TMP>)
- { if ((!$PDFReady)&&(/^%%(HiResB|ExactB|B)oundingBox:/o))
- { unless ($EpsBBOX)
- { print EPS "%%PDFready: $Program\n" ;
- print EPS "%%BoundingBox: 0 0 $EpsWidth $EpsHeight\n" ;
- print EPS "<< /PageSize [$EpsWidth $EpsHeight] >> setpagedevice\n" ;
- print EPS "gsave $EpsXOffset $EpsYOffset translate\n" ;
- $EpsBBOX = 1 } }
- elsif (/^%%EOF/o) # when final: (/^%%(EOF|Trailer)/o)
- { last }
- elsif (/^%%Trailer/o)
- { last }
- else
- { print EPS $_ } }
- close ( TMP ) ;
- if (($EpsBBOX)&&(!$PDFReady))
- { print EPS "grestore\n%%EOF\n%%RestOfFileIgnored: $Program\n" ;
- close ( EPS ) ;
- Report ( "PdfFile", "$SuppliedFileName" ) ;
- unless ($ProcessEpsToPdf)
- { unlink "$SuppliedFileName" ;
- rename "texutil.tmp", "$SuppliedFileName" } }
- else
- { close (EPS) }
- unlink "texutil.tmp" }
-
-sub HandleEpsFigure
- { my ($SuppliedFileName) = @_ ;
- my ($Temp) = "" ;
- if (-f $SuppliedFileName)
- { ($FileName, $FileSuffix) = SplitFileName ($SuppliedFileName) ;
- if ($FileSuffix)
- { $Temp = $FileSuffix ;
- $Temp =~ s/[0-9]//go ;
- if ($Temp eq "")
- { $EpsFileName = $SuppliedFileName;
- Report ( "MPFile", "$SuppliedFileName" ) }
- elsif ((lc $FileSuffix ne "eps")&&(lc $FileSuffix ne "mps"))
- { return }
- else
- { $EpsFileName = $SuppliedFileName; # $FileName
- Report ( "EpsFile", "$SuppliedFileName" ) }
- $EpsTitle = "" ;
- $EpsCreator = "" ;
- open ( EPS , $SuppliedFileName ) ;
- binmode EPS ;
- $EpsSize = -s EPS ;
- $PDFReady = 0 ;
- $MPSFound = 0 ;
- $BBoxFound = 0 ;
- while (<EPS>)
- { $SomeLine = $_;
- chomp $SomeLine ;
- if (($BBoxFound) && ((substr $SomeLine,0,1) ne "%"))
- { last }
- if ($BBoxFound<2)
- { if ($SomeLine =~ /^%%BoundingBox:/io)
- { $EpsBBox = $SomeLine ; $BBoxFound = 1 ; next }
- elsif ($SomeLine =~ /^%%HiResBoundingBox:/io)
- { $EpsBBox = $SomeLine ; $BBoxFound = 2 ; next }
- elsif ($SomeLine =~ /^%%ExactBoundingBox:/io)
- { $EpsBBox = $SomeLine ; $BBoxFound = 3 ; next } }
- if ($SomeLine =~ /^%%PDFready:/io)
- { $PDFReady = 1 }
- elsif ($SomeLine =~ /^%%Creator:/io)
- { ($Tag, $EpsCreator) = split (/ /, $SomeLine, 2) ;
- if ($EpsCreator =~ /MetaPost/io)
- { $MPSFound = 1 } }
- elsif ($SomeLine =~ /^%%Title:/io)
- { ($Tag, $EpsTitle) = split (/ /, $SomeLine, 2) } }
- close ( EPS ) ;
- if ($BBoxFound)
- { ($Tag, $LLX, $LLY, $URX, $URY, $RestOfLine) = split (/ /, $EpsBBox, 6 ) ;
- $EpsHeight = ($URY-$LLY)*$DPtoCM ;
- $EpsWidth = ($URX-$LLX)*$DPtoCM ;
- $EpsXOffset = $LLX*$DPtoCM ;
- $EpsYOffset = $LLY*$DPtoCM ;
- if ($MPSFound)
- { $EpsType = "mps" }
- else
- { $EpsType = "eps" }
- SaveFigurePresets
- ( $EpsFileName, $EpsType, 1,
- $EpsXOffset, $EpsYOffset, $EpsWidth, $EpsHeight,
- $EpsTitle, $EpsCreator, $EpsSize ) ;
- if (($ProcessEpsPage) || ($ProcessEpsToPdf))
- { ConvertEpsToEps ( $SuppliedFileName, $LLX, $LLY, $URX, $URY ) } }
- else
- { Report ( "MissingBoundingBox", "$SuppliedFileName" ) } } } }
-
-#D The \PDF\ scanning does a similar job. This time we
-#D search for a mediabox. I could have shared some lines
-#D with the previous routines, but prefer readability.
-
-sub HandlePdfFigure
- { my ( $SuppliedFileName ) = @_ ;
- ($FileName, $FileSuffix) = SplitFileName ($SuppliedFileName) ;
- if (lc $FileSuffix ne "pdf")
- { return }
- else
- { $PdfFileName = $SuppliedFileName ;
- Report ( "PdfFile", "$SuppliedFileName" ) }
- open ( PDF , $SuppliedFileName ) ;
- binmode PDF ;
- $PdfSize = -s PDF ;
- $MediaBoxFound = 0 ;
- $MediaBox = 0 ;
- $PageFound = 0 ;
- $PagesFound = 0 ;
- while (<PDF>)
- { $SomeLine = $_ ;
- chomp ($SomeLine) ;
- if ($SomeLine =~ /\/Type \/Pages/io)
- { $PagesFound = 1 }
- elsif ($SomeLine =~ /\/Type \/Page/io)
- { ++$PageFound ;
- if ($PageFound>1) { last } }
- if ((($PageFound)||($PagesFound)) && ($SomeLine =~ /\/MediaBox /io))
- { $MediaBox = $SomeLine ;
- $MediaBoxFound = 1 ;
- if ($PagesFound) { last } } }
- close ( PDF ) ;
- if ($PageFound>1)
- { Report ( "MultiPagePdfFile", "$SuppliedFileName" ) }
-# elsif (($MediaBoxFound) && ($MediaBox))
- if (($MediaBoxFound) && ($MediaBox))
- { my $D = "[0-9\-\.]" ;
- $MediaBox =~ /\/MediaBox\s*\[\s*($D+)\s*($D+)\s*($D+)\s*($D+)/o ;
- $LLX = $1 ; $LLY = $2 ; $URX = $3 ; $URY = $4 ;
- $PdfHeight = ($URY-$LLY)*$DPtoCM ;
- $PdfWidth = ($URX-$LLX)*$DPtoCM ;
- $PdfXOffset = $LLX*$DPtoCM ;
- $PdfYOffset = $LLY*$DPtoCM ;
- SaveFigurePresets
- ( $PdfFileName, "pdf", 1,
- $PdfXOffset, $PdfYOffset, $PdfWidth, $PdfHeight,
- "", "", $PdfSize ) }
- else
- { Report ( "MissingMediaBox", "$SuppliedFileName" ) } }
-
-#D A previous version of \TEXUTIL\ used \type{tifftags} or
-#D \type{tiffinfo} for collecting the dimensions. However,
-#D the current implementation does this job itself.
-
-sub TifGetByte
- { my ($B) = 0 ;
- read TIF, $B, 1 ;
- return ord($B) }
-
-sub TifGetShort
- { my ($S) = 0 ;
- read TIF, $S, 2 ;
- if ($TifLittleEndian)
- { return (unpack ("v", $S)) }
- else
- { return (unpack ("n", $S)) } }
-
-sub TifGetLong
- { my ($L) = 0 ;
- read TIF, $L, 4 ;
- if ($TifLittleEndian)
- { return (unpack ("V", $L)) }
- else
- { return (unpack ("N", $L)) } }
-
-sub TifGetRational
- { my ($N, $M) = (0,0) ;
- $N = TifGetLong ;
- $M = TifGetLong ;
- return $N/$M }
-
-sub TifGetAscii
- { my ($S) = "" ;
- --$TifValues;
- if ($TifValues)
- { return "" }
- else
- { read TIF, $S, $TifValues ;
- return $S } }
-
-sub TifGetWhatever
- { if ($_[0]==1)
- { return TifGetByte }
- elsif ($_[0]==2)
- { return TifGetAscii }
- elsif ($_[0]==3)
- { return TifGetShort }
- elsif ($_[0]==4)
- { return TifGetLong }
- elsif ($_[0]==5)
- { return TifGetRational }
- else
- { return 0 } }
-
-sub TifGetChunk
- { seek TIF, $TifNextChunk, 0 ;
- $Length = TifGetShort ;
- $TifNextChunk += 2 ;
- for ($i=1; $i<=$Length; $i++)
- { seek TIF, $TifNextChunk, 0 ;
- $TifTag = TifGetShort ;
- $TifType = TifGetShort ;
- $TifValues = TifGetLong ;
- if ($TifTag==256)
- { $TifWidth = TifGetWhatever($TifType) }
- elsif ($TifTag==257)
- { $TifHeight = TifGetWhatever($TifType) }
- elsif ($TifTag==296)
- { $TifUnit = TifGetWhatever($TifType) }
- elsif ($TifTag==282)
- { seek TIF, TifGetLong, 0 ;
- $TifHRes = TifGetWhatever($TifType) }
- elsif ($TifTag==283)
- { seek TIF, TifGetLong, 0 ;
- $TifVRes = TifGetWhatever($TifType) }
- elsif ($TifTag==350)
- { seek TIF, TifGetLong, 0 ;
- $TifCreator = TifGetWhatever($TifType) }
- elsif ($TifTag==315)
- { seek TIF, TifGetLong, 0 ;
- $TifAuthor = TifGetWhatever($TifType) }
- elsif ($TifTag==269)
- { seek TIF, TifGetLong, 0 ;
- $TifTitle = TifGetWhatever($TifType) }
- $TifNextChunk += 12 }
- seek TIF, $TifNextChunk, 0 ;
- $TifNextChunk = TifGetLong ;
- return ($TifNextChunk>0) }
-
-sub HandleTifFigure
- { my ( $SuppliedFileName ) = @_ ;
- ($FileName, $FileSuffix) = SplitFileName ($SuppliedFileName) ;
- if (lc $FileSuffix ne "tif")
- { return }
- else
- { $TifFile = $SuppliedFileName ;
- if (open ( TIF, $TifFile ))
- { Report ( "TifFile", "$SuppliedFileName" ) ;
- binmode TIF;
- $TifWidth = 0 ;
- $TifHeight = 0 ;
- $TifTitle = "" ;
- $TifAuthor = "" ;
- $TifCreator = "" ;
- $TifUnit = 0 ;
- $TifHRes = 1 ;
- $TifVRes = 1 ;
- $TifSize = -s TIF ;
- $TifByteOrder = "" ;
- seek TIF, 0, 0 ;
- read TIF, $TifByteOrder, 2 ;
- $TifLittleEndian = ($TifByteOrder eq "II") ;
- $TifTag = TifGetShort;
- unless ($TifTag == 42)
- { close ( TIF ) ;
- return }
- $TifNextChunk = TifGetLong ;
- while (TifGetChunk) { }
- if ($TifUnit==2)
- { $TifMult = $INtoCM }
- else
- { $TifMult = 1 }
- $TifWidth = ($TifWidth /$TifHRes)*$TifMult ;
- $TifHeight = ($TifHeight/$TifVRes)*$TifMult ;
- close ( TIF ) ;
- SaveFigurePresets
- ( $TifFile, "tif", $TifUnit,
- 0, 0, $TifWidth, $TifHeight,
- $TifTitle, $TifCreator, $TifSize ) } } }
-
-#D I first intended to use the public utility \type{pngmeta}
-#D (many thanks to Taco for compiling it), but using this
-#D utility to analyze lots of \PNG\ files, I tried to do a
-#D similar job in \PERL. Here are the results:
-
-my ($PngSize, $PngWidth, $PngHeight) = (0,0,0) ;
-my ($PngMult, $PngHRes, $PngVRes, $PngUnit) = (0,1,1,0) ;
-my ($PngFile, $PngTitle, $PngAuthor, $PngCreator) = ("","","") ;
-my ($PngNextChunk, $PngLength, $PngType) = (0,0,0) ;
-my ($PngKeyword, $PngDummy) = ("","") ;
-
-my $PngSignature = chr(137) . chr(80) . chr(78) . chr(71) .
- chr (13) . chr(10) . chr(26) . chr(10) ;
-sub PngGetByte
- { my ($B) = 0 ;
- read PNG, $B, 1 ;
- return (ord($B)) }
-
-sub PngGetLong
- { my ($L) = 0 ;
- read PNG, $L, 4 ;
- return (unpack("N", $L)) }
-
-sub PngGetChunk
- { if ($PngNextChunk<$PngSize)
- { seek PNG, $PngNextChunk, 0 ;
- $PngLength = PngGetLong ;
- $PngNextChunk = $PngNextChunk + $PngLength + 12 ;
- read PNG, $PngType, 4 ;
- if ($PngType eq "")
- { return 0 }
- elsif ($PngType eq "IEND")
- { return 0 }
- elsif ($PngType eq "IHDR")
- { $PngWidth = PngGetLong ;
- $PngHeight = PngGetLong }
- elsif ($PngType eq "pHYs")
- { $PngHRes = PngGetLong ;
- $PngVRes = PngGetLong ;
- read PNG, $PngUnit, 1 }
- elsif ($PngType eq "tEXt")
- { read PNG, $PngKeyword, 79 ;
- read PNG, $PngDummy, 1 ;
- if ( $PngKeyword eq "Title")
- { read PNG, $PngTitle, $Length }
- elsif ( $PngKeyword eq "Author")
- { read PNG, $PngAuthor, $PngLength }
- elsif ( $PngKeyword eq "Software")
- { read PNG, $PngCreator, $PngLength } }
- return 1 }
- else
- { return 0 } }
-
-sub HandlePngFigure
- { my ( $SuppliedFileName ) = @_ ;
- ($FileName, $FileSuffix) = SplitFileName ($SuppliedFileName) ;
- if (lc $FileSuffix ne "png")
- { return }
- else
- { $PngFile = $SuppliedFileName ;
- if (open ( PNG, $PngFile ))
- { Report ( "PngFile", "$SuppliedFileName" ) }
- $PngSize = 0 ;
- $PngWidth = 0 ;
- $PngHeight = 0 ;
- $PngTitle = "" ;
- $PngAuthor = "" ;
- $PngCreator = "" ;
- $PngUnit = 0 ;
- $PngVRes = 1 ;
- $PngHRes = 1 ;
- $PngSig = "" ;
- $PngSize = -s PNG ;
- binmode PNG ;
- seek PNG, 0, 0 ;
- read PNG, $PngSig, 8;
- unless ($PngSig eq $PngSignature)
- { close ( PNG ) ;
- return }
- $PngNextChunk = 8 ;
- while (PngGetChunk) { }
- $PngWidth = ($PngWidth /$PngVRes) ;
- $PngHeight = ($PngHeight/$PngHRes) ;
- close ( PNG ) ;
- SaveFigurePresets
- ( $PngFile, "png", $PngUnit,
- 0, 0, $PngWidth, $PngHeight,
- $PngTitle, $PngCreator, $PngSize ) } }
-
-#D Well, we also offer \JPG\ scanning (actually \JFIF)
-#D scanning. (I can recomend David Salomon's book on Data
-#D Compression to those interested in the internals of
-#D \JPG.)
-#D
-#D It took me some time to discover that the (sort of)
-#D reference document I used had a faulty byte position table.
-#D Nevertheless, when I was finaly able to grab the header,
-#D Piet van Oostrum pointer me to the \PERL\ script of Alex
-#D Knowles (and numerous other contributers), from which I
-#D could deduce what segment contained the dimensions.
-
-my ($JpgSize, $JpgWidth, $JpgHeight) = (0,0,0) ;
-my ($JpgMult, $JpgUnit, $JpgHRes, $JpgVRes) = (1,0,1,1) ;
-my ($JpgFile, $JpgVersion, $JpgDummy) = ("",0,"") ;
-my ($JpgSig, $JpgPos, $JpgLen, $JpgSoi, $JpgApp) = ("",0,0,0,0) ;
-
-my $JpgSignature = "JFIF" . chr(0) ;
-
-sub JpgGetByte
- { my ($B) = 0 ;
- read JPG, $B, 1 ;
- return ( ord($B) ) }
-
-sub JpgGetInteger
- { my ($I) = 0 ;
- read JPG, $I, 2 ;
- return (unpack("n", $I)) }
-
-sub HandleJpgFigure
- { my ($SuppliedFileName) = @_ ;
- ($FileName, $FileSuffix) = SplitFileName ($SuppliedFileName) ;
- if (lc $FileSuffix ne "jpg")
- { return }
- else
- { $JpgFile = $SuppliedFileName ;
- Report ( "JpgFile", "$SuppliedFileName" ) }
- open ( JPG, $JpgFile ) ;
- binmode JPG ;
- $JpgSignature = "JFIF" . chr(0) ;
- $JpgSize = -s JPG ;
- $JpgWidth = 0 ;
- $JpgHeight = 0 ;
- $JpgUnit = 0 ;
- $JpgVRes = 1 ;
- $JpgHRes = 1 ;
- seek JPG, 0, 0 ;
- read JPG, $JpgSig, 4 ;
- unless ($JpgSig eq chr(255).chr(216).chr(255).chr(224))
- { close ( JPG ) ;
- return }
- $JpgLen = JpgGetInteger;
- read JPG, $JpgSig, 5 ;
- unless ($JpgSig eq $JpgSignature)
- { close ( JPG ) ;
- return }
- $JpgUnit = JpgGetByte ;
- $JpgVersion = JpgGetInteger ;
- $JpgHRes = JpgGetInteger ;
- $JpgVRes = JpgGetInteger ;
- $JpgPos = $JpgLen + 4 ;
- $JpgSoi = 255 ;
- while ()
- { seek JPG, $JpgPos, 0 ;
- $JpgSoi = JpgGetByte ;
- $JpgApp = JpgGetByte ;
- $JpgLen = JpgGetInteger ;
- if ($JpgSoi!=255)
- { last }
- if (($JpgApp>=192) && ($JpgApp<=195)) # Found in the perl script.
- { $JpgDummy = JpgGetByte ; # Found in the perl script.
- $JpgHeight = JpgGetInteger ; # Found in the perl script.
- $JpgWidth = JpgGetInteger } # Found in the perl script.
- $JpgPos = $JpgPos + $JpgLen + 2 }
- close ( JPG ) ;
- if ($JpgUnit==1)
- { $JpgMult = $INtoCM }
- else
- { $JpgMult = 1 }
- $JpgWidth = ($JpgWidth/$JpgHRes)*$JpgMult ;
- $JpgHeight = ($JpgHeight/$JpgVRes)*$JpgMult ;
- close ( JPG ) ;
- SaveFigurePresets
- ( $JpgFile, "jpg", $JpgUnit,
- 0, 0, $JpgWidth, $JpgHeight,
- "", "", $JpgSize ) }
-
-#D Now we can handle figures!
-
-sub InitializeFigures
- { $NOfFigures = 0 }
-
-sub FlushFigures
- { $Figures = sort { lc ($a) cmp lc ($b) } $Figures ;
- SetOutputFile ("texutil.tuf") ;
- open ( TUF, ">$OutputFile" ) ;
- print TUF "%\n" . "% $Program / Figures\n" . "%\n" ;
- print TUF "\\thisisfigureversion\{1996.06.01\}\n" . "%\n" ;
- for ($n=1 ; $n<=$NOfFigures ; ++$n)
- { print TUF $Figures[$n] }
- close (TUF) ;
- if ($NOfFigures)
- { Report("OutputFile", $OutputFile ) }
- else
- { unlink $OutputFile }
- Report ( "NOfFigures", $NOfFigures ) }
-
-sub DoHandleFigures
- { my ($FigureSuffix, $FigureMethod) = @_ ;
- if ($InputFile eq "")
- { $InputFile = $FigureSuffix }
- CheckInputFiles ($InputFile) ;
- foreach $FileName (@UserSuppliedFiles)
- { &{$FigureMethod} ( $FileName ) } }
-
-sub HandleFigures
- { Report("Action", "GeneratingFigures" ) ;
- foreach $FileType (@ARGV)
- { if ($FileType=~/\.eps/io)
- { Report("Option", "UsingEps") ;
- if ($ProcessEpsToPdf) { Report("Option", "EpsToPdf") }
- if ($ProcessEpsPage) { Report("Option", "EpsPage") }
- last } }
- foreach $FileType (@ARGV)
- { if ($FileType=~/\.pdf/io)
- { Report("Option", "UsingPdf") ;
- last } }
- foreach $FileType (@ARGV)
- { if ($FileType=~/\.tif/io)
- { Report("Option", "UsingTif") ;
- #RunTifPrograms ;
- last } }
- foreach $FileType (@ARGV)
- { if ($FileType=~/\.png/io)
- { Report("Option", "UsingPng") ;
- last } }
- foreach $FileType (@ARGV)
- { if ($FileType=~/\.jpg/io)
- { Report("Option", "UsingJpg") ;
- last } }
- InitializeFigures ;
- DoHandleFigures ("eps", "HandleEpsFigure") ;
- DoHandleFigures ("pdf", "HandlePdfFigure") ;
- DoHandleFigures ("tif", "HandleTifFigure") ;
- DoHandleFigures ("png", "HandlePngFigure") ;
- DoHandleFigures ("jpg", "HandleJpgFigure") ;
- FlushFigures }
-
-#D \extras
-#D {logfiles}
-#D
-#D This (poor man's) log file scanning routine filters
-#D overfull box messages from a log file (\type{\hbox},
-#D \type{\vbox} or both). The collected problems are saved
-#D in \type{$ProgramLog}. One can specify a selection
-#D criterium.
-#D
-#D \CONTEXT\ reports unknown entities. These can also be
-#D filtered. When using fast computers, or when processing
-#D files in batch, one has to rely on the log files and/or
-#D this filter.
-
-$Unknown = "onbekende verwijzing|" .
- "unbekannte Referenz|" .
- "unknown reference|" .
- "dubbele verwijzing|" .
- "duplicate reference|" .
- "doppelte Referenz" ;
-
-sub FlushLogTopic
- { unless ($TopicFound)
- { $TopicFound = 1 ;
- print ALL "\n% File: $FileName.log\n\n" } }
-
-sub HandleLogFile
- { if ($ProcessBox)
- { Report("Option", "FilteringBoxes", "(\\vbox & \\hbox)") ;
- $Key = "[h|v]box" }
- elsif ($ProcessHBox)
- { Report("Option", "FilteringBoxes", "(\\hbox)") ;
- $Key = "hbox" ;
- $ProcessBox = 1 }
- elsif ($ProcessVBox)
- { Report("Option", "FilteringBoxes", "(\\vbox)") ;
- $Key = "vbox" ;
- $ProcessBox = 1 }
- if (($ProcessBox) && ($ProcessCriterium))
- { Report("Option", "ApplyingCriterium") }
- if ($ProcessUnknown)
- { Report("Option", "FilteringUnknown") }
- unless (($ProcessBox) || ($ProcessUnknown))
- { ShowHelpInfo ;
- return }
- Report("Action", "FilteringLogFile" ) ;
- if ($InputFile eq "")
- { Report("Error", "NoInputFile") }
- else
- { $NOfBoxes = 0 ;
- $NOfMatching = 0 ;
- $NOfUnknown = 0 ;
- SetOutputFile ($ProgramLog) ;
- Report("OutputFile", $OutputFile) ;
- CheckInputFiles ($InputFile) ;
- open ( ALL, ">$OutputFile" ) ;
- foreach $FullName (@UserSuppliedFiles)
- { ($FileName, $FileSuffix) = SplitFileName ($FullName) ;
- if (! open (LOG, "$FileName.log"))
- { Report("Error", "EmptyInputFile", "$FileName.$FileSuffix" ) }
- elsif (-e "$FileName.tex")
- { $TopicFound = 0 ;
- Report("InputFile", "$FileName.log") ;
- while (<LOG>)
- { $SomeLine = $_ ;
- chomp $SomeLine ;
- if (($ProcessBox) && ($SomeLine =~ /Overfull \\$Key/))
- { ++$NOfBoxes ;
- $SomePoints = $SomeLine ;
- $SomePoints =~ s/.*\((.*)pt.*/$1/ ;
- if ($SomePoints>=$ProcessCriterium)
- { ++$NOfMatching ;
- FlushLogTopic ;
- print ALL "$SomeLine\n" ;
- $SomeLine=<LOG> ;
- print ALL $SomeLine } }
- if (($ProcessUnknown) && ($SomeLine =~ /$Unknown/io))
- { ++$NOfUnknown ;
- FlushLogTopic ;
- print ALL "$SomeLine\n" } } } }
- close (ALL) ;
- unless (($NOfBoxes) ||($NOfUnknown))
- { unlink $OutputFile }
- if ($ProcessBox)
- { Report ( "NOfBoxes" , "$NOfBoxes", "->", $NOfMatching, "Overfull") }
- if ($ProcessUnknown)
- { Report ( "NOfUnknown", "$NOfUnknown") } } }
-
-#D Undocumented feature.
-
-my $removedfiles = 0 ;
-my $keptfiles = 0 ;
-my $persistentfiles = 0 ;
-my $reclaimedbytes = 0 ;
-
-sub RemoveContextFile
- { my $filename = shift ;
- my $filesize = -s $filename ;
- unlink $filename ;
- if (-e $filename)
- { ++$persistentfiles ;
- print " persistent : $filename\n" }
- else
- { ++$removedfiles ; $reclaimedbytes += $filesize ;
- print " removed : $filename\n" } }
-
-sub KeepContextFile
- { my $filename = shift ;
- ++$keptfiles ;
- print " kept : $filename\n" }
-
-my @dontaskprefixes = sort glob "mpx-*" ;
-push @dontaskprefixes , ("tex-form.tex","tex-edit.tex","tex-temp.tex",
- "texexec.tex","cont-opt.tex","cont-opt.bak") ;
-my @dontasksuffixes = ("mprun.mp","mpgraph.mp") ;
-my @forsuresuffixes = ("tui","tup","ted","tes","top","log","tmp") ;
-my @texonlysuffixes = ("dvi","ps","pdf") ;
-my @texnonesuffixes = ("tuo","tub") ;
-
-sub PurgeFiles
- { my $pattern = $ARGV[0] ;
- if ($pattern eq '')
- { $pattern = "*.*" }
- else
- { $pattern .= "-.*" }
- my @files = sort glob $pattern ;
- foreach my $file (@dontaskprefixes)
- { if (-e $file)
- { RemoveContextFile($file) } }
- foreach my $suffix (@dontasksuffixes)
- { foreach (@files)
- { if (/$suffix$/i)
- { RemoveContextFile($_) } } }
- foreach my $suffix (@forsuresuffixes)
- { foreach (@files)
- { if (/\.$suffix$/i)
- { RemoveContextFile($_) } } }
- foreach (@files)
- { if (/\.\d*$/)
- { RemoveContextFile($_) } }
-# foreach my $suffix (@texonlysuffixes)
-# { foreach (@files)
-# { if (/(.*)\.$suffix$/i)
-# { if (-e "$1.tex")
-# { RemoveContextFile($_) }
-# else
-# { KeepContextFile($_) } } } }
- foreach my $suffix (@texnonesuffixes)
- { foreach (@files)
- { if (/(.*)\.$suffix$/i)
- { if (!-e "$1.tex")
- { RemoveContextFile($_) }
- else
- { KeepContextFile($_) } } } }
- if ($removedfiles||$keptfiles||$persistentfiles)
- { print "\n" }
- print " removed files : $removedfiles\n" ;
- print " kept files : $keptfiles\n" ;
- print " persistent files : $persistentfiles\n" ;
- print " reclaimed bytes : $reclaimedbytes\n" }
-
-#D Another undocumented feature.
-
-sub AnalyzeFile
- { my $filename = $ARGV[0] ;
- return unless (($filename =~ /\.pdf/)&&(-e $filename)) ;
- my $filesize = -s $filename ;
- print " analyzing file : $filename\n" ;
- print " file size : $filesize\n" ;
- open (PDF, $filename) ;
- binmode PDF ;
- my $Object = 0 ;
- my $Annot = 0 ;
- my $Link = 0 ;
- my $Widget = 0 ;
- my $Named = 0 ;
- my $Script = 0 ;
- while (<PDF>)
- { while (/\d+\s+\d+\s+obj/go) { ++$Object } ;
- while (/\/Type\s*\/Annot/go) { ++$Annot } ;
- while (/\/Subtype\s*\/Link/go) { ++$Link } ;
- while (/\/Subtype\s*\/Widget/go) { ++$Widget } ;
- while (/\/S\s*\/Named/go) { ++$Named } ;
- while (/\/S\s*\/JavaScript/go) { ++$Script } }
- close (PDF) ;
- print " objects : $Object\n" ;
- print " annotations : $Annot\n" ;
- print " links : $Link ($Named named / $Script scripts)\n" ;
- print " widgets : $Widget\n" }
-
-#D We're done! All this actions and options are organized in
-#D one large conditional:
-
- ShowBanner ;
-
-if ($UnknownOptions ) { ShowHelpInfo } # not yet done
-elsif ($ProcessReferences) { HandleReferences }
-elsif ($ProcessDocuments ) { HandleDocuments }
-elsif ($ProcessSources ) { HandleSources }
-elsif ($ProcessSetups ) { HandleSetups }
-elsif ($ProcessTemplates ) { HandleEditorCues }
-elsif ($ProcessInfos ) { HandleEditorCues }
-elsif ($ProcessFigures ) { HandleFigures }
-elsif ($ProcessLogFile ) { HandleLogFile }
-elsif ($PurgeFiles ) { PurgeFiles }
-elsif ($AnalyzeFile ) { AnalyzeFile }
-elsif ($ProcessHelp ) { ShowHelpInfo } # redundant
-else { ShowHelpInfo }
-
-#D So far.
diff --git a/doc/context/base/context.rme b/doc/context/base/context.rme
deleted file mode 100644
index 4670af856..000000000
--- a/doc/context/base/context.rme
+++ /dev/null
@@ -1,60 +0,0 @@
-Some Basic information
-----------------------
-
-There are currently three interfaces available:
-
- cont-en the english version
- cont-de the german version
- cont-nl the dutch version
-
-One should compile one of these (or all) into a fmt file.
-When one uses the main file,
-
- context the undefined version
-
-TeX ask for an interface language as well as a message
-language. Here one has to specify the full name (english,
-german, dutch) or use the default (enter).
-
-By default only the english hyphenation patterns are loaded,
-unless more are enabled in:
-
- cont-usr the typesetting language specifications
-
-Furthermore, users can preset commands etc in the file
-
- cont-sys a system file loaded at runtime
-
-For questions and remarks on ConTeXt, one can subscribe to
-the list:
-
- ntg-context@ntg.nl
-
-by sending the message
-
- subscribe ntg-context
-
-to the list server:
-
- majordomo@ntg.nl
-
-One can find more info at:
-
- www.pragma-ade.nl
-
-or at the mirror sites mentioned there.
-
-Don't hesitate to ask questions. ConTeXt can do a lot, and
-the manuals are always a bit behind and incomplete. Also take
-a look at the files
-
- mreadme.pdf
- minstall.pdf
- mtexexec.pdf
- mtexutil.pdf
-
-The teTeX, fpTeX, and 4TeX distributions demonstrate how
-ConTeXt can be integrated in a TeX directory structure.
-
--------------------------
-Hans Hagen, pragma@wxs.nl
diff --git a/doc/context/base/minstall.pdf b/doc/context/base/minstall.pdf
deleted file mode 100644
index 94af852b9..000000000
--- a/doc/context/base/minstall.pdf
+++ /dev/null
Binary files differ
diff --git a/doc/context/base/mreadme.pdf b/doc/context/base/mreadme.pdf
deleted file mode 100644
index a11043b37..000000000
--- a/doc/context/base/mreadme.pdf
+++ /dev/null
Binary files differ
diff --git a/dvips/config/context.map b/dvips/config/context.map
deleted file mode 100644
index dd23bcd9c..000000000
--- a/dvips/config/context.map
+++ /dev/null
@@ -1,8 +0,0 @@
-% This map file defined the fonts that come with the ConTeXt
-% macro package. Currently only some navigational symbols
-% are distributed. These can be fetched from the pragma site
-% www.pragma-ade.nl as part of the ConTeXt distribution, or
-% can be found on CTAN as well as in the teTeX distribution
-% (look for /hoekwater/context).
-
-contnav ContextNavigation <contnav.pfb
diff --git a/fonts/tfm/hoekwater/context/contnav.tfm b/fonts/tfm/hoekwater/context/contnav.tfm
deleted file mode 100644
index c272e9d49..000000000
--- a/fonts/tfm/hoekwater/context/contnav.tfm
+++ /dev/null
Binary files differ
diff --git a/fonts/type1/hoekwater/context/contnav.pfb b/fonts/type1/hoekwater/context/contnav.pfb
deleted file mode 100644
index ab81c4f69..000000000
--- a/fonts/type1/hoekwater/context/contnav.pfb
+++ /dev/null
Binary files differ
diff --git a/metapost/context/mp-chart.mp b/metapost/context/mp-chart.mp
deleted file mode 100644
index 148f0ac2d..000000000
--- a/metapost/context/mp-chart.mp
+++ /dev/null
@@ -1,1168 +0,0 @@
-%D \module
-%D [ file=mp-chart.mp,
-%D version=1998.10.10,
-%D title=PRAGMA graphics,
-%D subtitle=shapes and charts,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This METAPOST program is copyrighted by Hans Hagen and
-%C Ton Otten, Ridderstraat 27, 8061GH Hasselt NL. No part of
-%C this program may be used by third parties without
-%C explicit permission.
-
-input mp-tool.mp ;
-
-vardef enlarged_path (expr p, w) = % NAAR mp-tool
- (llcorner p shifted (-w,-w) --
- lrcorner p shifted ( w,-w) --
- urcorner p shifted ( w, w) --
- ulcorner p shifted (-w, w) -- cycle)
-enddef;
-
-secondarydef p peepholed q =
- begingroup ;
- save start ; pair start ; start := point 0 of p ;
- %drawdot start scaled_to_grid withpen pencircle scaled 2shape_line_width withcolor red ;
- if xpart start >= xpart center p :
- if ypart start >= ypart center p :
- urcorner q -- ulcorner q -- llcorner q -- lrcorner q --
- reverse p -- lrcorner q -- cycle
- else :
- lrcorner q -- urcorner q -- ulcorner q -- llcorner q --
- reverse p -- llcorner q -- cycle
- fi
- else :
- if ypart start > ypart center p :
- ulcorner q -- llcorner q -- lrcorner q -- urcorner q --
- reverse p -- urcorner q -- cycle
- else :
- llcorner q -- lrcorner q -- urcorner q -- ulcorner q --
- reverse p -- ulcorner q -- cycle
- fi
- fi
- endgroup
-enddef ;
-
-boolean intersection_found ;
-
-secondarydef p intersection_point q =
- begingroup
- save x_, y_ ;
- (x_,y_) = p intersectiontimes q ;
- if x_<0 :
- intersection_found := false ;
- center p % origin
- else :
- intersection_found := true ;
- .5[point x_ of p, point y_ of q]
- fi
- endgroup
-enddef ;
-
-current_position := 0 ;
-
-def save_text_position (expr p) = % beware: clip shift needed
- current_position := current_position + 1 ;
- write
- "\MPposition{" & decimal current_position & "}{"
- & decimal xpart p & "}{"
- & decimal ypart p & "}"
- to jobname & ".tmp" ;
-enddef ;
-
-%D inclusions
-
-input mp-tool ;
-
-%D settings
-
-grid_width := 60pt ;
-grid_height := 40pt ;
-
-shape_width := 45pt ;
-shape_height := 30pt ;
-
-chart_offset := 2pt ;
-
-color chart_background_color ; chart_background_color := white ;
-
-%D test mode
-
-boolean show_mid_points ; show_mid_points := false ;
-boolean show_con_points ; show_con_points := false ;
-boolean show_all_points ; show_all_points := false ;
-
-%D shapes
-
-color shape_line_color, shape_fill_color ;
-
-shape_line_width := 2pt ;
-shape_line_color := .5white ;
-shape_fill_color := .9white ;
-
-shape_node := 0 ;
-shape_action := 24 ;
-shape_procedure := 5 ;
-shape_product := 12 ;
-shape_decision := 14 ;
-shape_archive := 19 ;
-shape_loop := 35 ;
-shape_wait := 6 ;
-shape_subprocedure := 20 ; shape_sub_procedure := 20 ;
-shape_singledocument := 32 ; shape_single_document := 32 ;
-shape_multidocument := 33 ; shape_multi_document := 33 ;
-shape_right := 66 ;
-shape_left := 67 ;
-shape_up := 68 ;
-shape_down := 69 ;
-
-vardef some_shape (expr type) =
-
- begingroup ;
-
- save border, xradius, yradius,
- normal, mirror, rotate,
- lc, rc, tc, bc, ll, lr, ur, ul,
- llx, lrx, urx, ulx, lly, lry, ury, uly ;
-
- path border ;
-
- xradius := .15 ; xxradius := .10 ;
- yradius := .15 ; yyradius := .10 ;
-
- pair ll ; ll := llcorner (unitsquare shifted (-.5,-.5)) ;
- pair lr ; lr := lrcorner (unitsquare shifted (-.5,-.5)) ;
- pair ur ; ur := urcorner (unitsquare shifted (-.5,-.5)) ;
- pair ul ; ul := ulcorner (unitsquare shifted (-.5,-.5)) ;
-
- pair llx ; llx := ll shifted (xradius,0) ;
- pair lly ; lly := ll shifted (0,yradius) ;
-
- pair lrx ; lrx := lr shifted (-xradius,0) ;
- pair lry ; lry := lr shifted (0,yradius) ;
-
- pair urx ; urx := ur shifted (-xradius,0) ;
- pair ury ; ury := ur shifted (0,-yradius) ;
-
- pair ulx ; ulx := ul shifted (xradius,0) ;
- pair uly ; uly := ul shifted (0,-yradius) ;
-
- pair llxx ; llxx := ll shifted (xxradius,0) ;
- pair llyy ; llyy := ll shifted (0,yyradius) ;
-
- pair lrxx ; lrxx := lr shifted (-xxradius,0) ;
- pair lryy ; lryy := lr shifted (0,yyradius) ;
-
- pair urxx ; urxx := ur shifted (-xxradius,0) ;
- pair uryy ; uryy := ur shifted (0,-yyradius) ;
-
- pair ulxx ; ulxx := ul shifted (xxradius,0) ;
- pair ulyy ; ulyy := ul shifted (0,-yyradius) ;
-
- pair lc ; lc := ll shifted (0,.5) ;
- pair rc ; rc := lr shifted (0,.5) ;
- pair tc ; tc := ul shifted (.5,0) ;
- pair bc ; bc := ll shifted (.5,0) ;
-
- def mirror (expr p) =
- p rotatedaround(origin,180)
- enddef ;
-
- def normal (expr p ) =
- p
- enddef ;
-
- def rotate (expr p) =
- p rotated 45
- enddef ;
-
- if type= 0 :
- border := normal (origin--cycle) ;
-
- elseif type= 5 :
- border := normal (llx--lrx{right}...rc...{left}urx--ulx{left}...lc...{right}cycle) ;
- elseif type= 6 :
- border := normal (ll--lrx{right}...rc...{left}urx--ul--cycle) ;
- elseif type= 7 :
- border := mirror (ll--lrx{right}...rc...{left}urx--ul--cycle) ;
- elseif type= 8 :
- border := normal (lr--ury{up}...tc...{down}uly--ll--cycle) ;
- elseif type= 9 :
- border := mirror (lr--ury{up}...tc...{down}uly--ll--cycle) ;
- elseif type=10 :
- border := normal (ll--lr--ur--ul--ll--ur--ul--ll--cycle) ;
- elseif type=11 :
- border := normal (ll--lr--ur--ul--ll--lr--ul--ll--cycle) ;
- elseif type=12 :
- border := normal (ll--lrx--ur--ulx--cycle) ;
- elseif type=13 :
- border := normal (llx--lr--urx--ul--cycle) ;
- elseif type=14 :
- border := normal (lly--bc--lry--ury--tc--uly--cycle) ;
- elseif type=15 :
- border := normal (llx--lrx--rc--urx--ulx--lc--cycle) ;
- elseif type=16 :
- border := normal (ll--lrx--rc--urx--ul--cycle) ;
- elseif type=17 :
- border := mirror (ll--lrx--rc--urx--ul--cycle) ;
- elseif type=18 :
- border := normal (lr--ury--tc--uly--ll--cycle) ;
- elseif type=19 :
- border := mirror (lr--ury--tc--uly--ll--cycle) ;
- elseif type=20 :
- border := normal (ll--lr--ur--ul--ll--llxx--ulxx--ul--ll--
- lr--ur--urxx--lrxx--cycle) ;
- elseif type=21 :
- border := normal (ul--ll--lr--ur--ul--ulyy--uryy--ur--ul--
- ll--lr--lryy--llyy--cycle) ;
- elseif type=22 :
- border := normal (ll--lrx--lry--ur--ulx--uly--cycle) ;
- elseif type=23 :
- border := normal (llx--lr--ury--urx--ul--lly--cycle) ;
- elseif type=24 :
- border := normal (ll--lr--ur--ul--cycle) ;
- elseif type=25 :
- border := normal (llx--lrx--lry--ury--urx--ulx--uly--lly--cycle) ;
- elseif type=26 :
- border := normal (ll--lrx--lry--ur--ul--cycle) ;
- elseif type=27 :
- border := mirror (ll--lr--ury--urx--ul--cycle) ;
- elseif type=28 :
- border := normal (ll--lr--ury--urx--ul--cycle) ;
- elseif type=29 :
- border := mirror (ll--lrx--lry--ur--ul--cycle) ;
- elseif type=30 :
- border := rotate (bc{right}...{up}rc...tc{left}...{down}lc...{right}bc &
- bc--tc & tc{left}..{down}lc & lc--rc &
- rc{up}..tc{left}...{down}lc...{right}bc & cycle) ;
- elseif type=31 :
- border := normal (bc{right}...{up}rc...tc{left}...{down}lc...{right}bc &
- bc--tc & tc{left}..{down}lc & lc--rc &
- rc{up}..tc{left}...{down}lc...{right}bc & cycle) ;
- elseif type=32 :
- border := normal (ll{right}...{right}lry--ur--ul--ll--cycle) ;
- elseif type=33 :
- border := normal (ll{right}...{right}lry--ur--ul--ll--cycle
- --ul--ulx--ulx shifted(0,yyradius)
- --ur shifted(yyradius,yyradius)
- --lry shifted(yyradius,yyradius)
- --lry shifted(0,yyradius)
- --ur--ul--cycle ) ;
- elseif type=34 :
- border := normal (uly..tc..ury &
- ury..tc shifted (0,-2yradius)..uly &
- uly--lly &
- lly..bc..lry &
- lry--ury &
- ury..tc shifted (0,-2yradius)..uly & cycle ) ;
- elseif type=35 :
- border := normal (bc{right}...rc{up}...tc{left}...lc{down}...cycle) ;
- elseif type=36 :
- border := normal (ul--tc{right}..rc{down}..{left}bc--ll &
- ll..(xpart llx, ypart lc)..ul & cycle) ;
- elseif type=37 :
- border := mirror (ul--tc{right}..rc{down}..{left}bc--ll &
- ll..(xpart llx, ypart lc)..ul & cycle) ;
- elseif type=38 :
- border := normal (ll--lc{up}..tc{right}..{down}rc--lr &
- lr..(xpart bc, ypart lly)..ll & cycle) ;
- elseif type=39 :
- border := mirror (ll--lc{up}..tc{right}..{down}rc--lr &
- lr..(xpart bc, ypart lly)..ll & cycle) ;
- elseif type=40 :
- border := normal (ll--lr--ur--ul--ll--ur--ul--ll--lr--ul--ll--cycle) ;
- elseif type=41 :
- border := normal (ll--lr--ur--ul--ll--lr--rc--lc--ll--bc--tc--ul--ll & cycle) ;
- elseif type=42 :
- border := normal (ll--lr--origin shifted (+epsilon,0)--
- ur--ul--origin shifted (-epsilon,0)--cycle) ;
- elseif type=43 :
- border := normal (ll--ul--origin shifted (0,+epsilon)--
- ur--lr--origin shifted (0,-epsilon)--cycle) ;
- elseif type=45 :
- border := normal (bc--rc--tc--lc--cycle) ;
- elseif type=46 :
- border := normal (ll--ul--rc--cycle) ;
- elseif type=47 :
- border := mirror (ll--ul--rc--cycle) ;
- elseif type=48 :
- border := mirror (ul--ur--bc--cycle) ;
- elseif type=49 :
- border := normal (ul--ur--bc--cycle) ;
- elseif type=56 :
- border := normal (ll--lry--ury--ul--cycle) ;
- elseif type=57 :
- border := mirror (ll--lry--ury--ul--cycle) ;
- elseif type=58 :
- border := normal (ll--ulx--urx--lr--cycle) ;
- elseif type=59 :
- border := mirror (ll--ulx--urx--lr--cycle) ;
- elseif type= 66 :
- border := normal (rc--origin shifted ( epsilon,0) --cycle &
- rc--origin --cycle ) ;
- elseif type= 67 :
- border := normal (lc--origin shifted (-epsilon,0) --cycle &
- lc--origin --cycle ) ;
- elseif type= 68 :
- border := normal (tc--origin shifted (0, epsilon) --cycle &
- tc--origin --cycle ) ;
- elseif type= 69 :
- border := normal (bc--origin shifted (0,-epsilon) --cycle &
- bc--origin --cycle ) ;
-
- else :
- border := normal (origin--cycle) ;
- %border := normal (ll--lr--ur--ul--cycle) ;
- fi ;
-
- border
-
- endgroup
-
-enddef;
-
-def show_shapes (expr n) =
-
- begin_chart(n,7,10) ;
- show_con_points := true ;
- for i=0 upto 6 :
- for j=0 upto 9 :
- new_shape(i+1,j+1,i*10+j);
- endfor ;
- endfor ;
- end_chart ;
-
-enddef ;
-
-%D connections
-
-color connection_line_color ;
-
-connection_line_width := shape_line_width ;
-connection_line_color := .8white ;
-connection_smooth_size := 5pt ;
-connection_arrow_size := 4pt ;
-connection_dash_size := 3pt ;
-
-max_x := 6 ;
-max_y := 4 ;
-
-numeric xypoint ; xypoint := 0 ;
-
-pair xypoints [] ;
-
-boolean xyfree [][] ;
-path xypath [][] ;
-numeric xysx [][] ;
-numeric xysy [][] ;
-color xyfill [][] ;
-color xydraw [][] ;
-numeric xyline [][] ;
-boolean xypeep [][] ;
-
-numeric cpath ; cpath := 0 ;
-path cpaths [] ;
-numeric cline [] ;
-color ccolor [] ;
-boolean carrow [] ;
-boolean cdash [] ;
-boolean ccross [] ;
-
-boolean smooth ; smooth := true ;
-boolean peepshape ; peepshape := false ;
-boolean arrowtip ; arrowtip := true ;
-boolean dashline ; dashline := false ;
-boolean forcevalid ; forcevalid := false ;
-boolean touchshape ; touchshape := false ;
-boolean showcrossing ; showcrossing := false ;
-
-picture dash_pattern ;
-
-boolean reverse_y ; reverse_y := true ;
-
-def y_pos (expr y) =
- if reverse_y : max_y + 1 - y else : y fi
-enddef ;
-
-def initialize_grid (expr maxx, maxy) =
- begingroup ;
- save i, j ;
- max_x := maxx ;
- max_y := maxy ;
- for x=1 upto max_x :
- for y=1 upto max_y :
- xyfree [x][y] := true ;
- xyfill [x][y] := shape_fill_color ;
- xydraw [x][y] := shape_line_color ;
- xyline [x][y] := shape_line_width ;
- endfor ;
- endfor ;
- endgroup ;
-enddef ;
-
-def scaled_to_grid =
- xscaled grid_width yscaled grid_height
-enddef ;
-
-def xy_offset (expr x, y) =
- (x+.5,y+.5)
-enddef ;
-
-def draw_shape (expr x, yy, p, sx, sy) =
- begingroup ;
- save y ;
- y := y_pos(yy) ;
- xypath [x][y] := (p xscaled sx yscaled sy) shifted xy_offset(x,y) ;
- xyfree [x][y] := false ;
- xysx [x][y] := sx ;
- xysy [x][y] := sy ;
- xyfill [x][y] := shape_fill_color ;
- xydraw [x][y] := shape_line_color ;
- xyline [x][y] := shape_line_width ;
- xypeep [x][y] := peepshape ;
- endgroup ;
-enddef ;
-
-vardef i_point (expr x, y, p, t) =
- begingroup ;
- save q, ok ;
- pair q ;
- boolean ok ;
- q := xypath[x][y] intersection_point ((p) shifted xy_offset(x,y)) ;
- ok := true ;
-% if xpart q < -.5 : ok := false ; q := (-.45,ypart q) fi ;
-% if xpart q > .5 : ok := false ; q := ( .45,ypart q) fi ;
-% if ypart q < -.5 : ok := false ; q := (xpart q,-.45) fi ;
-% if ypart q > .5 : ok := false ; q := (xpart q, .45) fi ;
- if not ok :
- message (t & " of shape (" & decimal x & "," & decimal y & ") limited") ;
- fi ;
- q
- endgroup
-enddef ;
-
-vardef trimmed (expr x, y, z, t) =
- if touchshape and t : xyline[x][y]/z else : epsilon fi
-enddef ;
-
-zfactor := 1/3 ;
-
-vardef xy_bottom (expr x, y, z, t) =
- i_point (x, y, ((0,0)--(0,-2)) shifted (zfactor*z*xysx[x][y],0), "bottom")
- shifted(0,-trimmed(x,y,grid_height,t))
-enddef ;
-
-vardef xy_top (expr x, y, z, t) =
- i_point (x, y, ((0,0)--(0,2)) shifted (zfactor*z*xysx[x][y],0), "top")
- shifted(0,trimmed(x,y,grid_height,t))
-enddef ;
-
-vardef xy_left (expr x, y, z, t) =
- i_point (x, y, ((0,0)--(-2,0)) shifted (0,zfactor*z*xysy[x][y]), "left")
- shifted(-trimmed(x,y,grid_width,t),0)
-enddef ;
-
-vardef xy_right (expr x, y, z, t) =
- i_point (x, y, ((0,0)--(2,0)) shifted (0,zfactor*z*xysy[x][y]), "right")
- shifted(trimmed(x,y,grid_width,t),0)
-enddef ;
-
-def flush_shapes =
- for x=1 upto max_x :
- for y=1 upto max_y :
- flush_shape (x, y) ;
- endfor ;
- endfor ;
-enddef ;
-
-def draw_connection_point (expr x, y, z) =
- pickup pencircle scaled if (z=0): 2 fi xyline[x][y] ;
- drawdot xy_bottom(x,y,z,false) scaled_to_grid withcolor (1,0,0) ;
- drawdot xy_top (x,y,z,false) scaled_to_grid withcolor (0,1,0) ;
- drawdot xy_left (x,y,z,false) scaled_to_grid withcolor (0,0,1) ;
- drawdot xy_right (x,y,z,false) scaled_to_grid withcolor (1,1,0) ;
-enddef ;
-
-def flush_shape (expr x, yy) =
- begingroup ;
- save y ;
- y := y_pos(yy) ;
- if not xyfree[x][y] :
- pickup pencircle scaled xyline[x][y] ;
- if xypeep[x][y] :
- fill (xypath[x][y] peepholed (unitsquare shifted (x,y)))
- scaled_to_grid withpen pencircle scaled 0
- withcolor chart_background_color ;
- else :
- fill xypath[x][y] scaled_to_grid withcolor xyfill[x][y] ;
- fi ;
- draw xypath[x][y] scaled_to_grid withcolor xydraw[x][y] ;
- if show_con_points or show_all_points :
- draw_connection_point (x, y, 0) ;
- fi ;
- if show_all_points :
- for i=-1 upto 1 :
- draw_connection_point (x, y, i) ;
- endfor ;
- fi ;
- fi ;
- endgroup ;
-enddef ;
-
-vardef points_initialized (expr xfrom, yfrom, xto, yto, n) =
- if not xyfree[xfrom][yfrom] and not xyfree[xto][yto] :
- xypoint := n ; true
- else :
- xypoint := 0 ; false
- fi
-enddef ;
-
-def collapse_points =
- % remove redundant points
- n := 1 ;
- for i=2 upto xypoint:
- if not (xypoints[i]=xypoints[n]) :
- n := n + 1 ;
- xypoints[n] := xypoints[i]
- fi ;
- endfor ;
- xypoint := n ;
- % make straight lines
- if xypoints[2]=xypoints[xypoint-1] :
- xypoints[3] := xypoints[xypoint] ;
- xypoint := 3 ;
- fi ;
-enddef ;
-
-vardef smoothed (expr a,b) =
- sx := connection_smooth_size/grid_width ;
- sy := connection_smooth_size/grid_height ;
- if ypart a = ypart b :
- a shifted (if xpart a >= xpart b : - fi sx,0)
- else :
- a shifted (0,if ypart a >= ypart b : - fi sy)
- fi
-enddef ;
-
-vardef trim_points =
- begingroup
- save p, a, b, d, i ; path p ; pair d ;
- p := for i=1 upto xypoint-1 : xypoints[i]-- endfor xypoints[xypoint] ;
- if touchshape :
- a := shape_line_width/grid_width ;
- b := shape_line_width/grid_height ;
- else :
- a := epsilon ;
- b := epsilon ;
- fi ;
- d := direction infinity of p ;
- xypoints[xypoint] := xypoints[xypoint] shifted
- if xpart d < 0 : (+a,0) ;
- elseif xpart d > 0 : (-a,0) ;
- elseif ypart d < 0 : (0,+b) ;
- elseif ypart d > 0 : (0,-b) ;
- else : origin ;
- fi ;
- d := direction 0 of p ;
- xypoints[1] := xypoints[1] shifted
- if xpart d < 0 : (-a,0) ;
- elseif xpart d > 0 : (+a,0) ;
- elseif ypart d < 0 : (0,-b) ;
- elseif ypart d > 0 : (0,+b) ;
- else : origin ;
- fi ;
- endgroup
-enddef ;
-
-vardef trim_points = enddef ;
-
-vardef connection_path =
- if reverse_connection : reverse fi (xypoints[1]--
- for i=2 upto xypoint-1 :
- if smooth :
- smoothed(xypoints[i],xypoints[i-1]) ..
- controls xypoints[i] and xypoints[i] ..
- smoothed(xypoints[i],xypoints[i+1]) --
- else :
- xypoints[i]--
- fi
- endfor
- xypoints[xypoint])
-enddef ;
-
-def draw_connection =
- if xypoint>0 :
- collapse_points ;
- trim_points ;
- cpath := cpath + 1 ;
- cpaths[cpath] := connection_path scaled_to_grid ;
- cline[cpath] := connection_line_width ;
- ccolor[cpath] := connection_line_color ;
- carrow[cpath] := arrowtip ;
- cdash[cpath] := dashline ;
- ccross[cpath] := showcrossing ;
- else :
- message("no connection defined") ;
- fi ;
- reverse_connection := false ;
-enddef ;
-
-def flush_connections =
- pair ip ;
- boolean crossing ;
- ahlength := connection_arrow_size ;
- dash_pattern := dashpattern(on connection_dash_size off connection_dash_size ) ;
- for i=1 upto cpath :
- if ccross[i] :
- crossing := false ;
- for j=1 upto i :
- %if not ((point infinity of cpaths[i] = point infinity of cpaths[j]) or
- % (point 0 of cpaths[i] = point 0 of cpaths[j])) :
- if not (point infinity of cpaths[i] = point infinity of cpaths[j]) :
- ip := cpaths[i] intersection_point cpaths[j] ;
- if intersection_found : crossing := true fi ;
- fi ;
- endfor ;
- if crossing :
- pickup pencircle scaled 2cline[i] ;
-% draw cpaths[i] withcolor chart_background_color ;
-path cp ; cp := cpaths[i] ;
-cp := cp cutbefore point .05 length cp of cp ;
-cp := cp cutafter point .95 length cp of cp ;
-draw cp withcolor chart_background_color ;
- fi ;
- fi ;
- pickup pencircle scaled cline[i] ;
- if carrow[i] :
- if cdash[i] :
- drawarrow cpaths[i] withcolor ccolor[i] dashed dash_pattern ;
- else :
- drawarrow cpaths[i] withcolor ccolor[i] ;
- fi ;
- else :
- if cdash[i] :
- draw cpaths[i] withcolor ccolor[i] dashed dash_pattern ;
- else :
- draw cpaths[i] withcolor ccolor[i] ;
- fi ;
- fi ;
- draw_midpoint (i) ;
- endfor ;
-enddef ;
-
-def draw_midpoint (expr n) =
- begingroup
- save p ;
- pair p ;
- p := point .5*length(cpaths[n]) of cpaths[n];
- pickup pencircle scaled 2cline[n] ;
- save_text_position (p) ;
- if show_mid_points :
- drawdot p withcolor .7white ;
- fi ;
- endgroup ;
-enddef ;
-
-boolean reverse_connection ; reverse_connection := false ;
-
-vardef up_on_grid (expr n) =
- (xpart xypoints[n],(ypart xypoints[n]+1) div 1)
-enddef ;
-
-vardef down_on_grid (expr n) =
- (xpart xypoints[n],(ypart xypoints[n]) div 1)
-enddef ;
-
-vardef left_on_grid (expr n) =
- ((xpart xypoints[n]) div 1, ypart xypoints[n])
-enddef ;
-
-vardef right_on_grid (expr n) =
- ((xpart xypoints[n]+1) div 1, ypart xypoints[n])
-enddef ;
-
-vardef x_on_grid (expr n, xfrom, xto, zfrom) =
- if (xfrom=xto) and not (zfrom=0) :
- if (zfrom=1) : right_on_grid(2) else : left_on_grid(2) fi
- elseif xpart xypoints[1] < xpart xypoints[6] :
- right_on_grid(n)
- else :
- left_on_grid(n)
- fi
-enddef ;
-
-vardef y_on_grid (expr n, yfrom, yto, zfrom) =
- if (yfrom=yto) and not (zfrom=0) :
- if (zfrom=1) : up_on_grid(2) else : down_on_grid(2) fi
- elseif ypart xypoints[1] < ypart xypoints[6] :
- up_on_grid(n)
- else :
- down_on_grid(n)
- fi
-enddef ;
-
-vardef xy_on_grid (expr n, m) =
- (xpart xypoints[n], ypart xypoints[m])
-enddef ;
-
-vardef down_to_grid (expr a,b) =
- (xpart xypoints[a],
- ypart xypoints[if ypart xypoints[a]<ypart xypoints[b]:a else:b fi])
-enddef ;
-
-vardef up_to_grid (expr a,b) =
- (xpart xypoints[a],
- ypart xypoints[if ypart xypoints[a]>ypart xypoints[b]:a else:b fi])
-enddef ;
-
-vardef left_to_grid (expr a,b) =
- (xpart xypoints[if xpart xypoints[a]<xpart xypoints[b]:a else:b fi],
- ypart xypoints[a])
-enddef ;
-
-vardef right_to_grid (expr a,b) =
- (xpart xypoints[if xpart xypoints[a]>xpart xypoints[b]:a else:b fi],
- ypart xypoints[a])
-enddef ;
-
-vardef valid_connection (expr xfrom, yfrom, xto, yto) =
- begingroup ;
- save ok, vc, pp ;
- boolean ok ;
- % check for slanted lines
- ok := true ;
- for i=1 upto xypoint-1 :
- if not ((xpart xypoints[i]=xpart xypoints[i+1]) or
- (ypart xypoints[i]=ypart xypoints[i+1])) : ok := false ;
- fi ;
- endfor ;
- if not ok :
- %message("slanted");
- false
- elseif forcevalid :
- %message("force");
- true
- elseif (xfrom=xto) and (yfrom=yto) :
- %message("self");
- false
- else :
- % check for crossing shapes
- pair vc ;
- path pp ;
-
- pair xyfirst, xylast ;
- xyfirst := xypoints[1] ;
- xylast := xypoints[xypoint] ;
- trim_points ;
- pp := for i=1 upto xypoint-1 : xypoints[i]-- endfor xypoints[xypoint] ;
- xypoints[1] := xyfirst ;
- xypoints[xypoint] := xylast ;
-
- for i=1 upto max_x :
- for j=1 upto max_y :
-if not ( ( (i,j) = (xfrom,yfrom) ) or ( (i,j) = (yfrom,yto) ) ) :
- if not xyfree[i][j] :
- vc := pp intersection_point xypath[i][j] ;
- if intersection_found : ok := false fi ;
- fi ;
-fi ;
- endfor ;
- endfor ;
- %if not ok: message("crossing") ; fi ;
- ok
- fi
- endgroup
-enddef ;
-
-def connect_top_bottom (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,6) :
- xypoints[1] := xy_top(xfrom,yfrom,zfrom,true) ;
- xypoints[6] := xy_bottom(xto,yto,zto,true) ;
- xypoints[2] := up_on_grid(1) ;
- xypoints[5] := down_on_grid(6) ;
- xypoints[3] := up_to_grid(2,5) ;
- xypoints[4] := up_to_grid(2,5) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := x_on_grid(2,xfrom,xto,zfrom) ;
- xypoints[4] := xy_on_grid(3,5) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_left_right (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,6) :
- xypoints[1] := xy_left(xfrom,yfrom,zfrom,true) ;
- xypoints[6] := xy_right(xto,yto,zto,true) ;
- xypoints[2] := left_on_grid(1) ;
- xypoints[5] := right_on_grid(6) ;
- xypoints[3] := left_to_grid(2,5) ;
- xypoints[4] := left_to_grid(2,5) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := y_on_grid(2,yfrom,yto,zfrom) ;
- xypoints[4] := xy_on_grid(5,3) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_left_top (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,5) :
- xypoints[1] := xy_left(xfrom,yfrom,zfrom,true) ;
- xypoints[5] := xy_top(xto,yto,zto,true) ;
- xypoints[2] := left_on_grid(1) ;
- xypoints[4] := up_on_grid(5) ;
- xypoints[3] := left_to_grid(2,5) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := xy_on_grid(2,4) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_left_bottom (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,5) :
- xypoints[1] := xy_left(xfrom,yfrom,zfrom,true) ;
- xypoints[5] := xy_bottom(xto,yto,zto,true) ;
- xypoints[2] := left_on_grid(1) ;
- xypoints[4] := down_on_grid(5) ;
- xypoints[3] := left_to_grid(2,5) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := xy_on_grid(2,4) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_right_top (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,5) :
- xypoints[1] := xy_right(xfrom,yfrom,zfrom,true) ;
- xypoints[5] := xy_top(xto,yto,zto,true) ;
- xypoints[2] := right_on_grid(1) ;
- xypoints[4] := up_on_grid(5) ;
- xypoints[3] := right_to_grid(2,5) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := xy_on_grid(2,4) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_right_bottom (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,5) :
- xypoints[1] := xy_right(xfrom,yfrom,zfrom,true) ;
- xypoints[5] := xy_bottom(xto,yto,zto,true) ;
- xypoints[2] := right_on_grid(1) ;
- xypoints[4] := down_on_grid(5) ;
- xypoints[3] := right_to_grid(2,5) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := xy_on_grid(2,4) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_left_left (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,6) :
- xypoints[1] := xy_left(xfrom,yfrom,zfrom,true) ;
- xypoints[6] := xy_left(xto,yto,zto,true) ;
- xypoints[2] := left_on_grid(1) ;
- xypoints[5] := left_on_grid(6) ;
- xypoints[3] := left_to_grid(2,5) ;
- xypoints[4] := left_to_grid(5,2) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := y_on_grid(2,yfrom,yto,zfrom) ;
- xypoints[4] := xy_on_grid(5,3) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_right_right (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,6) :
- xypoints[1] := xy_right(xfrom,yfrom,zfrom,true) ;
- xypoints[6] := xy_right(xto,yto,zto,true) ;
- xypoints[2] := right_on_grid(1) ;
- xypoints[5] := right_on_grid(6) ;
- xypoints[3] := right_to_grid(2,5) ;
- xypoints[4] := right_to_grid(5,2) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := y_on_grid(2,yfrom,yto,zfrom) ;
- xypoints[4] := xy_on_grid(5,3) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_top_top (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,6) :
- xypoints[1] := xy_top(xfrom,yfrom,zfrom,true) ;
- xypoints[6] := xy_top(xto,yto,zto,true) ;
- xypoints[2] := up_on_grid(1) ;
- xypoints[5] := up_on_grid(6) ;
- xypoints[3] := up_to_grid(2,5) ;
- xypoints[4] := up_to_grid(5,2) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := x_on_grid(2,xfrom,xto,zfrom) ;
- xypoints[4] := xy_on_grid(3,5) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_bottom_bottom (expr xfrom,yyfrom,zfrom) (expr xto,yyto,zto) =
- yfrom := y_pos(yyfrom) ; yto := y_pos(yyto) ;
- if points_initialized(xfrom,yfrom,xto,yto,6) :
- xypoints[1] := xy_bottom(xfrom,yfrom,zfrom,true) ;
- xypoints[6] := xy_bottom(xto,yto,zto,true) ;
- xypoints[2] := down_on_grid(1) ;
- xypoints[5] := down_on_grid(6) ;
- xypoints[3] := down_to_grid(2,5) ;
- xypoints[4] := down_to_grid(5,2) ;
- if not valid_connection(xfrom,yfrom,xto,yto) :
- xypoints[3] := x_on_grid(2,xfrom,xto,zfrom) ;
- xypoints[4] := xy_on_grid(3,5) ;
- fi ;
- draw_connection ;
- fi ;
-enddef ;
-
-def connect_bottom_top (expr xfrom,yfrom,zfrom) (expr xto,yto,zto) =
- reverse_connection := true ;
- connect_top_bottom (xto,yto,zto) (xfrom,yfrom,zfrom) ;
-enddef ;
-
-def connect_right_left (expr xfrom,yfrom,zfrom) (expr xto,yto,zto) =
- reverse_connection := true ;
- connect_left_right (xto,yto,zto) (xfrom,yfrom,zfrom) ;
-enddef ;
-
-def connect_top_left (expr xfrom,yfrom,zfrom) (expr xto,yto,zto) =
- reverse_connection := true ;
- connect_left_top (xto,yto,zto) (xfrom,yfrom,zfrom) ;
-enddef ;
-
-def connect_bottom_left (expr xfrom,yfrom,zfrom) (expr xto,yto,zto) =
- reverse_connection := true ;
- connect_left_bottom (xto,yto,zto) (xfrom,yfrom,zfrom) ;
-enddef ;
-
-def connect_top_right (expr xfrom,yfrom,zfrom) (expr xto,yto,zto) =
- reverse_connection := true ;
- connect_right_top (xto,yto,zto) (xfrom,yfrom,zfrom) ;
-enddef ;
-
-def connect_bottom_right (expr xfrom,yfrom,zfrom) (expr xto,yto,zto) =
- reverse_connection := true ;
- connect_right_bottom (xto,yto,zto) (xfrom,yfrom,zfrom) ;
-enddef ;
-
-def draw_test_shape (expr x, y) =
- draw_shape(x,y,fullcircle, .7, .7) ;
-enddef ;
-
-def draw_test_shapes =
- for i=1 upto max_x :
- for j=1 upto max_y :
- draw_test_shape(i,j) ;
- endfor ;
- endfor ;
-enddef;
-
-def draw_test_area =
- pickup pencircle scaled .5shape_line_width ;
- draw (unitsquare xscaled max_x yscaled max_y shifted (1,1))
- scaled_to_grid withcolor blue ;
-enddef ;
-
-def show_connection (expr n, m) =
-
- begin_chart(100+n,6,6) ;
-
- draw_test_area ;
-
- smooth := true ;
- arrowtip := true ;
- dashline := true ;
-
- draw_test_shape(2,2) ; draw_test_shape(4,5) ;
- draw_test_shape(3,3) ; draw_test_shape(5,1) ;
- draw_test_shape(2,5) ; draw_test_shape(1,3) ;
- draw_test_shape(6,2) ; draw_test_shape(4,6) ;
-
- if (m=1) :
- connect_top_bottom (2,2,0) (4,5,0) ;
- connect_top_bottom (3,3,0) (5,1,0) ;
- connect_top_bottom (2,5,0) (1,3,0) ;
- connect_top_bottom (6,2,0) (4,6,0) ;
- elseif (m=2) :
- connect_top_top (2,2,0) (4,5,0) ;
- connect_top_top (3,3,0) (5,1,0) ;
- connect_top_top (2,5,0) (1,3,0) ;
- connect_top_top (6,2,0) (4,6,0) ;
- elseif (m=3) :
- connect_bottom_bottom (2,2,0) (4,5,0) ;
- connect_bottom_bottom (3,3,0) (5,1,0) ;
- connect_bottom_bottom (2,5,0) (1,3,0) ;
- connect_bottom_bottom (6,2,0) (4,6,0) ;
- elseif (m=4) :
- connect_left_right (2,2,0) (4,5,0) ;
- connect_left_right (3,3,0) (5,1,0) ;
- connect_left_right (2,5,0) (1,3,0) ;
- connect_left_right (6,2,0) (4,6,0) ;
- elseif (m=5) :
- connect_left_left (2,2,0) (4,5,0) ;
- connect_left_left (3,3,0) (5,1,0) ;
- connect_left_left (2,5,0) (1,3,0) ;
- connect_left_left (6,2,0) (4,6,0) ;
- elseif (m=6) :
- connect_right_right (2,2,0) (4,5,0) ;
- connect_right_right (3,3,0) (5,1,0) ;
- connect_right_right (2,5,0) (1,3,0) ;
- connect_right_right (6,2,0) (4,6,0) ;
- elseif (m=7) :
- connect_left_top (2,2,0) (4,5,0) ;
- connect_left_top (3,3,0) (5,1,0) ;
- connect_left_top (2,5,0) (1,3,0) ;
- connect_left_top (6,2,0) (4,6,0) ;
- elseif (m=8) :
- connect_left_bottom (2,2,0) (4,5,0) ;
- connect_left_bottom (3,3,0) (5,1,0) ;
- connect_left_bottom (2,5,0) (1,3,0) ;
- connect_left_bottom (6,2,0) (4,6,0) ;
- elseif (m=9) :
- connect_right_top (2,2,0) (4,5,0) ;
- connect_right_top (3,3,0) (5,1,0) ;
- connect_right_top (2,5,0) (1,3,0) ;
- connect_right_top (6,2,0) (4,6,0) ;
- else :
- connect_right_bottom (2,2,0) (4,5,0) ;
- connect_right_bottom (3,3,0) (5,1,0) ;
- connect_right_bottom (2,5,0) (1,3,0) ;
- connect_right_bottom (6,2,0) (4,6,0) ;
- fi ;
-
- end_chart ;
-
-enddef ;
-
-def show_connections =
- for f=1 upto 10 :
- show_connection(f,f) ;
- endfor ;
-enddef ;
-
-%D charts
-
-def clip_chart (expr minx, miny, maxx, maxy) =
- cmin_x := minx ;
- cmax_x := maxx ;
- cmin_y := miny ;
- cmax_y := maxy ;
-enddef ;
-
-def begin_chart (expr n, maxx, maxy) =
- chart_figure := n ;
- chart_scale := 1 ;
- if chart_figure>0: beginfig(chart_figure) ; fi ;
- initialize_grid (maxx, maxy) ;
- bboxmargin := 0 ;
- cmin_x := 1 ;
- cmax_x := maxx ;
- cmin_y := 1 ;
- cmax_y := maxy ;
-enddef ;
-
-def end_chart =
- flush_shapes ;
- flush_connections ;
- cmin_x := cmin_x ;
- cmax_x := cmin_x+cmax_x ;
- cmin_y := cmin_y-1 ;
- cmax_y := cmin_y+cmax_y ;
- if reverse_y :
- cmin_y := y_pos(cmin_y) ;
- cmax_y := y_pos(cmax_y) ;
- fi ;
- path p ;
- p := (((cmin_x,cmin_y)--(cmax_x,cmin_y)--
- (cmax_x,cmax_y)--(cmin_x,cmax_y)--cycle))
- scaled_to_grid ;
- %draw p withcolor red ;
- p := enlarged_path (p,chart_offset) ;
- clip currentpicture to p ;
- setbounds currentpicture to p ;
- write
- "\MPclippath{" &
- decimal xpart llcorner p & "}{" &
- decimal ypart llcorner p & "}{" &
- decimal xpart urcorner p & "}{" &
- decimal ypart urcorner p & "}" to jobname & ".tmp" ;
- write
- "\MPareapath{" &
- decimal (xpart llcorner p + 2chart_offset) & "}{" &
- decimal (ypart llcorner p + 2chart_offset) & "}{" &
- decimal (xpart urcorner p - 2chart_offset) & "}{" &
- decimal (ypart urcorner p - 2chart_offset) & "}" to jobname & ".tmp" ;
-currentpicture := currentpicture scaled chart_scale ;
- if chart_figure>0: endfig ; fi ;
-enddef ;
-
-def new_shape (expr x, y, n) =
- if known n :
- if (x>0) and (x<=max_x) and (y>0) and (y<=max_y) :
- sx := shape_width/grid_width ;
- sy := shape_height/grid_height ;
- draw_shape(x,y,some_shape(n), sx, sy) ;
- else :
- message ("shape outside grid ignored") ;
- fi ;
- else
- message ("shape not known" ) ;
- fi ;
-enddef ;
-
-def begin_sub_chart =
- begingroup ;
- save shape_line_width , connection_line_width ;
- save shape_line_color, shape_fill_color, connection_line_color ;
- color shape_line_color, shape_fill_color, connection_line_color ;
- save smooth, arrowtip, dashline, peepshape ;
- boolean smooth, arrowtip, dashline, peepshape ;
-enddef ;
-
-def end_sub_chart =
- endgroup ;
-enddef ;
-
-%D done
-
-endinput
-
-%D testing
-
-show_shapes(100) ;
-show_connections ;
-
-begin_chart (1,4,5) ;
- %clip_chart(1,1,1,2) ;
- new_shape (1,1,31) ;
- new_shape (1,2,3) ;
- new_shape (4,4,5) ;
- connect_top_left (1,1,0) (4,4,0) ;
- connect_bottom_top (1,2,0) (4,4,0) ;
- connect_left_right (1,2,0) (1,1,0) ;
-end_chart ;
-
-end
diff --git a/metapost/context/mp-page.mp b/metapost/context/mp-page.mp
deleted file mode 100644
index 73708b468..000000000
--- a/metapost/context/mp-page.mp
+++ /dev/null
@@ -1,151 +0,0 @@
-%D \module
-%D [ file=mp-page.mp,
-%D version=1999.03.10,
-%D title=PRAGMA graphics,
-%D subtitle=page macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is rather preliminary and subjected to
-%D changes.
-
-if known StartPage: endinput ; fi ;
-
-PaperHeight := 845.04684pt ;
-PaperWidth := 597.50787pt ;
-PrintPaperHeight := 845.04684pt ;
-PrintPaperWidth := 597.50787pt ;
-TopSpace := 71.12546pt ;
-BackSpace := 71.13275pt ;
-MakeupHeight := 711.3191pt ;
-MakeupWidth := 426.78743pt ;
-TopHeight := 0.0pt ;
-TopDistance := 0.0pt ;
-HeaderHeight := 56.90294pt ;
-HeaderDistance := 0.0pt ;
-TextHeight := 597.51323pt ;
-FooterDistance := 0.0pt ;
-FooterHeight := 56.90294pt ;
-BottomDistance := 0.0pt ;
-BottomHeight := 0.0pt ;
-LeftEdgeWidth := 0.0pt ;
-LeftEdgeDistance := 0.0pt ;
-LeftMarginWidth := 75.58197pt ;
-LeftMarginDistance := 11.99829pt ;
-TextWidth := 426.78743pt ;
-RightMarginDistance := 11.99829pt ;
-RightMarginWidth := 75.58197pt ;
-RightEdgeDistance := 0.0pt ;
-RightEdgeWidth := 0.0pt ;
-
-PageOffset := 0.0pt ;
-PageDepth := 0.0pt ;
-
-LeftEdge := -4 ; Top := -40 ;
-LeftEdgeSeparator := -3 ; TopSeparator := -30 ;
-LeftMargin := -2 ; Header := -20 ;
-LeftMarginSeparator := -1 ; HeaderSeparator := -10 ;
-Text := 0 ; Text := 0 ;
-RightMarginSeparator := +1 ; FooterSeparator := +10 ;
-RightMargin := +2 ; Footer := +20 ;
-RightEdgeSeparator := +3 ; BottomSeparator := +30 ;
-RightEdge := +4 ; Bottom := +40 ;
-
-path Area [][] ; pair Location [][] ; path Field [][] ; path Page ;
-numeric HorPos ; numeric Hstep [] ; numeric Hsize [] ;
-numeric VerPos ; numeric Vstep [] ; numeric Vsize [] ;
-
-for VerPos=Top step 10 until Bottom:
- for HorPos=LeftEdge step 1 until RightEdge:
- Area[HorPos][VerPos] := origin--cycle ;
- Area[VerPos][HorPos] := Area[HorPos][VerPos] ;
- Location[HorPos][VerPos] := origin ;
- Location[VerPos][HorPos] := Location[HorPos][VerPos] ;
- Field[HorPos][VerPos] := origin--cycle ;
- Field[VerPos][HorPos] := Field[HorPos][VerPos] ;
- endfor ;
-endfor ;
-
-def LoadPageState =
- scantokens "input mp-state.tmp" ;
-enddef ;
-
-def StartPage =
- LoadPageState ;
-
- Vsize[Top] = TopHeight ;
- Vsize[TopSeparator] = TopDistance ;
- Vsize[Header] = HeaderHeight ;
- Vsize[HeaderSeparator] = HeaderDistance ;
- Vsize[Text] = TextHeight ;
- Vsize[FooterSeparator] = FooterDistance ;
- Vsize[Footer] = FooterHeight ;
- Vsize[BottomSeparator] = BottomDistance ;
- Vsize[Bottom] = BottomHeight ;
-
- Vstep[Top] = Vstep[TopSeparator] +Vsize[TopSeparator] ;
- Vstep[TopSeparator] = PaperHeight-TopSpace ;
- Vstep[Header] = Vstep[TopSeparator] -Vsize[Header] ;
- Vstep[HeaderSeparator] = Vstep[Header] -Vsize[HeaderSeparator] ;
- Vstep[Text] = Vstep[HeaderSeparator]-Vsize[Text] ;
- Vstep[FooterSeparator] = Vstep[Text] -Vsize[FooterSeparator] ;
- Vstep[Footer] = Vstep[FooterSeparator]-Vsize[Footer] ;
- Vstep[BottomSeparator] = Vstep[Footer] -Vsize[BottomSeparator] ;
- Vstep[Bottom] = Vstep[BottomSeparator]-Vsize[Bottom] ;
-
- Hsize[LeftEdge] = LeftEdgeWidth ;
- Hsize[LeftEdgeSeparator] = LeftEdgeDistance ;
- Hsize[LeftMargin] = LeftMarginWidth ;
- Hsize[LeftMarginSeparator] = LeftMarginDistance ;
- Hsize[Text] = MakeupWidth ;
- Hsize[RightMarginSeparator] = RightMarginDistance ;
- Hsize[RightMargin] = RightMarginWidth ;
- Hsize[RightEdgeSeparator] = RightEdgeDistance ;
- Hsize[RightEdge] = RightEdgeWidth ;
-
- Hstep[LeftEdge] = Hstep[LeftEdgeSeparator] -Hsize[LeftEdge] ;
- Hstep[LeftEdgeSeparator] = Hstep[LeftMargin] -Hsize[LeftEdgeSeparator] ;
- Hstep[LeftMargin] = Hstep[LeftMarginSeparator] -Hsize[LeftMargin] ;
- Hstep[LeftMarginSeparator] = Hstep[Text] -Hsize[LeftMarginSeparator] ;
- Hstep[Text] = BackSpace ;
- Hstep[RightMarginSeparator] = Hstep[Text] +Hsize[Text] ;
- Hstep[RightMargin] = Hstep[RightMarginSeparator]+Hsize[RightMarginSeparator] ;
- Hstep[RightEdgeSeparator] = Hstep[RightMargin] +Hsize[RightMargin] ;
- Hstep[RightEdge] = Hstep[RightEdgeSeparator] +Hsize[RightEdgeSeparator] ;
-
- for VerPos=Top step 10 until Bottom:
- for HorPos=LeftEdge step 1 until RightEdge:
- Area[HorPos][VerPos] := unitsquare xscaled Hsize[HorPos] yscaled Vsize[VerPos] ;
- Area[VerPos][HorPos] := Area[HorPos][VerPos] ;
- Location[HorPos][VerPos] := (Hstep[HorPos],Vstep[VerPos]) ;
- Location[VerPos][HorPos] := Location[HorPos][VerPos] ;
- Field[HorPos][VerPos] := Area[HorPos][VerPos] shifted Location[HorPos][VerPos] ;
- Field[VerPos][HorPos] := Field[HorPos][VerPos] ;
- endfor ;
- endfor ;
-
- Page = unitsquare xscaled PaperWidth yscaled PaperHeight ;
- bboxmargin := 0 ; setbounds currentpicture to Page ;
-enddef ;
-
-def StopPage =
- bboxmargin := 0 ; setbounds currentpicture to Page ;
-enddef ;
-
-def llEnlarged (expr p,d) = llcorner p shifted (-d,-d) enddef ;
-def lrEnlarged (expr p,d) = lrcorner p shifted (+d,-d) enddef ;
-def urEnlarged (expr p,d) = urcorner p shifted (+d,+d) enddef ;
-def ulEnlarged (expr p,d) = ulcorner p shifted (-d,+d) enddef ;
-
-def Enlarged (expr p, d) =
- (llEnlarged (p,d) --
- lrEnlarged (p,d) --
- urEnlarged (p,d) --
- ulEnlarged (p,d) -- cycle)
-enddef ;
-
diff --git a/metapost/context/mp-tool.mp b/metapost/context/mp-tool.mp
deleted file mode 100644
index b2e2d1d89..000000000
--- a/metapost/context/mp-tool.mp
+++ /dev/null
@@ -1,377 +0,0 @@
-%D \module
-%D [ file=mp-tool.mp,
-%D version=1998.02.15,
-%D title=PRAGMA graphics,
-%D subtitle=auxiliary macros,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D This module is rather preliminary and subjected to
-%D changes.
-
-if known stripe_angle: endinput ; fi ;
-
-%D We always want \EPS\ conforming output, so we say:
-
-prologues := 2 ; % 1 = troff, 2 = tex
-warningcheck := 0 ;
-
-%D A semicolor to be used in specials:
-
-string semicolor ; semicolor := char 59 ;
-
-%D By including this module, \METAPOST\ automatically writes a
-%D high resolution boundingbox to the \POSTSCRIPT\ file. This
-%D hack is due to John Hobby himself.
-
-% somehow the first one gets no HiRes.
-
-vardef ddecimal primary p =
- " " & decimal xpart p &
- " " & decimal ypart p
-enddef ;
-
-extra_endfig := extra_endfig
- & "special "
- & "("
- & ditto
- & "%%HiResBoundingBox:"
- & ditto
- & "&ddecimal llcorner currentpicture"
- & "&ddecimal urcorner currentpicture"
- & ");";
-
-%D Also handy (when we flush colors):
-
-vardef dddecimal primary c =
- " " & decimal redpart c &
- " " & decimal greenpart c &
- " " & decimal bluepart c
-enddef ;
-
-%D Sometimes we don't want parts of the graphics add to the
-%D bounding box. One way of doing this is to save the bounding
-%D box, draw the graphics that may not count, and restore the
-%D bounding box.
-%D
-%D \starttypen
-%D push_boundingbox currentpicture;
-%D pop_boundingbox currentpicture;
-%D \stoptypen
-%D
-%D The bounding box can be called with:
-%D
-%D \starttypen
-%D boundingbox currentpicture
-%D inner_boundingbox currentpicture
-%D outer_boundingbox currentpicture
-%D \stoptypen
-%D
-%D Especially the latter one can be of use when we include
-%D the graphic in a document that is clipped to the bounding
-%D box. In such occasions one can use:
-%D
-%D \starttypen
-%D set_outer_boundingbox currentpicture;
-%D \stoptypen
-%D
-%D Its counterpart is:
-%D
-%D \starttypen
-%D set_inner_boundingbox p
-%D \stoptypen
-
-path pushed_boundingbox;
-
-def push_boundingbox text p =
- pushed_boundingbox := boundingbox p;
-enddef;
-
-def pop_boundingbox text p =
- setbounds p to pushed_boundingbox;
-enddef;
-
-vardef boundingbox primary p =
- llcorner p --
- lrcorner p --
- urcorner p --
- ulcorner p -- cycle
-enddef;
-
-vardef inner_boundingbox primary p =
- top rt llcorner p --
- top lft lrcorner p --
- bot lft urcorner p --
- bot rt ulcorner p -- cycle
-enddef;
-
-vardef outer_boundingbox primary p =
- bot lft llcorner p --
- bot rt lrcorner p --
- top rt urcorner p --
- top lft ulcorner p -- cycle
-enddef;
-
-vardef set_inner_boundingbox text q =
- setbounds q to inner_boundingbox q;
-enddef;
-
-vardef set_outer_boundingbox text q =
- setbounds q to outer_boundingbox q;
-enddef;
-
-%D Some missing functions can be implemented rather
-%D straightforward:
-
-def tand (expr x) = (sind(x)/cosd(x)) enddef;
-def sqr (expr x) = (x*x) enddef;
-def ln (expr x) = (if x=0: 0 else: mlog(x)/256 fi) enddef;
-def exp (expr x) = ((mexp 256)**x) enddef;
-def pow (expr x) = (x**power) enddef;
-def inv (expr x) = (if x=0: 0 else: x**-1 fi) enddef;
-def asin (expr x) = (x+(x**3)/6+3(x**5)/40) enddef;
-def acos (expr x) = (asin(-x)) enddef;
-def atan (expr x) = (x-(x**3)/3+(x**5)/5-(x**7)/7) enddef;
-
-%D We provide two macros for drawing striped across a shape.
-%D The first method (with the n suffix) uses another method,
-%D slower in calculation, but more efficient when drawn. The
-%D first macro divides the sides into n equal parts. The
-%D first argument specifies the way the lines are drawn, while
-%D the second argument identifier the way the shape is to be
-%D drawn.
-%D
-%D \starttypen
-%D stripe_path_n
-%D (dashed evenly withcolor blue)
-%D (filldraw)
-%D fullcircle xscaled 100 yscaled 40 shifted (50,50) withpen pencircle scaled 4;
-%D \stoptypen
-%D
-%D The a (or angle) alternative supports arbitrary angles and
-%D is therefore more versatile.
-%D
-%D \starttypen
-%D stripe_path_a
-%D (withpen pencircle scaled 2 withcolor red)
-%D (draw)
-%D fullcircle xscaled 100 yscaled 40 withcolor blue;
-%D \stoptypen
-%D
-%D The first alternative obeys:
-
-stripe_n := 10;
-stripe_slot := 3;
-
-%D When no pen dimensions are passed, the slot determines
-%D the spacing.
-%D
-%D The angle alternative is influenced by:
-
-stripe_gap := 5;
-stripe_angle := 45;
-
-def stripe_path_n (text s_spec) (text s_draw) expr s_path =
- do_stripe_path_n (s_spec) (s_draw) (s_path)
-enddef;
-
-def do_stripe_path_n (text s_spec) (text s_draw) (expr s_path) text s_text =
- begingroup
- save curpic, newpic, bb, pp, ww;
- picture curpic, newpic;
- path bb, pp;
- pp := s_path;
- curpic := currentpicture;
- currentpicture := nullpicture;
- s_draw pp s_text;
- bb := boundingbox currentpicture;
- newpic := currentpicture;
- currentpicture := nullpicture;
- ww := min(ypart urcorner newpic - ypart llcorner newpic,
- xpart urcorner newpic - xpart llcorner newpic);
- ww := ww/(stripe_slot*stripe_n);
- for i=1/stripe_n step 1/stripe_n until 1:
- draw point (1+i) of bb -- point (3-i) of bb
- withpen pencircle scaled ww s_spec ;
- endfor;
- for i=0 step 1/stripe_n until 1:
- draw point (3+i) of bb -- point (1-i) of bb
- withpen pencircle scaled ww s_spec;
- endfor;
- clip currentpicture to pp;
- addto newpic also currentpicture;
- currentpicture := curpic;
- addto currentpicture also newpic;
- endgroup
-enddef;
-
-def stripe_path_a (text s_spec) (text s_draw) expr s_path =
- do_stripe_path_a (s_spec) (s_draw) (s_path)
-enddef;
-
-def do_stripe_path_a (text s_spec) (text s_draw) (expr s_path) text s_text =
- begingroup
- save curpic, newpic, pp;
- picture curpic, newpic;
- path pp;
- pp := s_path;
- curpic := currentpicture;
- currentpicture := nullpicture;
- draw pp s_text;
- s_max := max
- (xpart llcorner currentpicture, xpart urcorner currentpicture,
- ypart llcorner currentpicture, ypart urcorner currentpicture);
- newpic := currentpicture;
- currentpicture := nullpicture;
- for i=-s_max-.5stripe_gap step stripe_gap until s_max:
- draw (-s_max,i)--(s_max,i) s_spec;
- endfor;
- currentpicture := currentpicture
- rotatedaround(center newpic, stripe_angle);
- clip currentpicture to pp;
- addto newpic also currentpicture;
- currentpicture := curpic;
- addto currentpicture also newpic;
- endgroup
-enddef;
-
-%D A few normalizing macros:
-%D
-%D \starttypen
-%D xscale_currentpicture ( width )
-%D yscale_currentpicture ( height )
-%D scale_currentpicture ( width, height )
-%D \stoptypen
-
-def xscale_currentpicture(expr the_width) =
- natural_width := xpart urcorner currentpicture - xpart llcorner currentpicture;
- currentpicture := currentpicture scaled (the_width/natural_width) ;
-enddef;
-
-def yscale_currentpicture(expr the_height ) =
- natural_height := ypart urcorner currentpicture - ypart llcorner currentpicture;
- currentpicture := currentpicture scaled (the_height/natural_height) ;
-enddef;
-
-def scale_currentpicture(expr the_width, the_height) =
- xscale_currentpicture(the_width) ;
- yscale_currentpicture(the_height) ;
-enddef;
-
-%D A full circle is centered at the origin, while a unitsquare
-%D is located in the first quadrant. Now guess what kind of
-%D path fullsquare and unitcircle do return.
-
-def fullsquare = (unitsquare shifted - center unitsquare) enddef ;
-def unitcircle = (fullcircle shifted urcorner fullcircle) enddef ;
-
-%D Experimenteel, zie folder-3.tex.
-
-def set_grid(expr w, h, nx, ny) =
- boolean grid[][] ; boolean grid_full ;
- grid_w := w ;
- grid_h := h ;
- grid_nx := nx ;
- grid_ny := ny ;
- grid_x := round(w/grid_nx) ; % +.5) ;
- grid_y := round(h/grid_ny) ; % +.5) ;
- grid_left := (1+grid_x)*(1+grid_y) ;
- grid_full := false ;
- for i=0 upto grid_x:
- for j=0 upto grid_y:
- grid[i][j] := false ;
- endfor ;
- endfor ;
-enddef ;
-
-vardef new_on_grid(expr _dx_, _dy_) =
- dx := _dx_ ;
- dy := _dy_ ;
- ddx := min(round(dx/grid_nx),grid_x) ; % +.5),grid_x) ;
- ddy := min(round(dy/grid_ny),grid_y) ; % +.5),grid_y) ;
- if not grid_full and not grid[ddx][ddy]:
- grid[ddx][ddy] := true ;
- grid_left := grid_left-1 ;
- grid_full := (grid_left=0) ;
- true
- else:
- false
- fi
-enddef ;
-
-%D usage: \type{innerpath peepholed outerpath}.
-%D
-%D beginfig(1);
-%D def fullsquare = (unitsquare shifted -center unitsquare) enddef ;
-%D fill (fullsquare scaled 200) withcolor red ;
-%D path p ; p := (fullcircle scaled 100) ; bboxmargin := 0 ;
-%D fill p peepholed bbox p ;
-%D endfig;
-
-secondarydef p peepholed q =
- begingroup ;
- save start ; pair start ; start := point 0 of p ;
- if xpart start >= xpart center p :
- if ypart start >= ypart center p :
- urcorner q -- ulcorner q -- llcorner q -- lrcorner q --
- reverse p -- lrcorner q -- cycle
- else :
- lrcorner q -- urcorner q -- ulcorner q -- llcorner q --
- reverse p -- llcorner q -- cycle
- fi
- else :
- if ypart start > ypart center p :
- ulcorner q -- llcorner q -- lrcorner q -- urcorner q --
- reverse p -- urcorner q -- cycle
- else :
- llcorner q -- lrcorner q -- urcorner q -- ulcorner q --
- reverse p -- ulcorner q -- cycle
- fi
- fi
- endgroup
-enddef ;
-
-boolean intersection_found ;
-
-secondarydef p intersection_point q =
- begingroup
- save x_, y_ ;
- (x_,y_) = p intersectiontimes q ;
- if x_<0 :
- intersection_found := false ;
- center p % origin
- else :
- intersection_found := true ;
- .5[point x_ of p, point y_ of q]
- fi
- endgroup
-enddef ;
-
-%D New, undocumented, experimental:
-
-vardef tensecircle (expr width, height, offset) =
- ((-width/2,-height/2) ... (0,-height/2-offset) ...
- (+width/2,-height/2) ... (+width/2+offset,0) ...
- (+width/2,+height/2) ... (0,+height/2+offset) ...
- (-width/2,+height/2) ... (-width/2-offset,0) ... cycle)
-enddef ;
-
-%vardef tensecircle (expr width, height, offset) =
-% ((-width/2,-height/2)..(0,-height/2-offset)..(+width/2,-height/2) &
-% (+width/2,-height/2)..(+width/2+offset,0)..(+width/2,+height/2) &
-% (+width/2,+height/2)..(0,+height/2+offset)..(-width/2,+height/2) &
-% (-width/2,+height/2)..(-width/2-offset,0)..(-width/2,-height/2)..cycle)
-%enddef ;
-
-%D Some colors.
-
-color cyan ; cyan = (0,1,1) ;
-color yellow ; yellow = (1,1,0) ;
-color magenta ; magenta = (1,0,1) ;
-
-endinput ;
diff --git a/tex/context/base/colo-ini.tex b/tex/context/base/colo-ini.tex
index f8bb83543..d5b9beb6e 100644
--- a/tex/context/base/colo-ini.tex
+++ b/tex/context/base/colo-ini.tex
@@ -72,7 +72,7 @@
5: onbekend systeem --
6: palet -- is beschikbaar
7: palet -- is niet beschikbaar
- 8: (verkeerde) specificatie -- bij -- wordt zwart
+ 8: specificatie -- bij -- wordt zwart
9: -- kleurruimte wordt niet ondersteund
10: -- kleurruimte wordt ondersteund
11: kleur wordt vertaald in grijs
@@ -87,7 +87,7 @@
5: unknown system --
6: palette -- is available
7: palette -- is not available
- 8: (invalid) specification -- at color -- becomes black
+ 8: specification -- at color -- becomes black
9: -- color space is not supported
10: -- color space is supported
11: color is converted to gray
@@ -102,7 +102,7 @@
5: unbekanntes System --
6: palette -- ist verfuegbar
7: palette -- ist nicht verfuegbar
- 8: (ungueltige) Spezifikation -- bei Farbe -- wird schwarz
+ 8: Spezifikation -- bei Farbe -- wird schwarz
9: -- Farbraum wird nicht unterstuetzt
10: -- Farbraum wird unterstuetzt
11: Farbe wird in Grau umgewandelt
@@ -117,7 +117,7 @@
5: neznamy system --
6: palette -- je k dispozici
7: palette -- neni k dispozici
- 8: (naplatna) specifikace -- v barve -- bude cerna
+ 8: specifikace -- v barve -- bude cerna
9: -- prostor barev neni podporovan
10: -- prostor barev je podporovan
11: barva je prevedena na sed
diff --git a/tex/context/base/colo-rgb.tex b/tex/context/base/colo-rgb.tex
index 445b8ed8e..19934eee7 100644
--- a/tex/context/base/colo-rgb.tex
+++ b/tex/context/base/colo-rgb.tex
@@ -30,7 +30,7 @@
\definecolor [yellow] [r=1, g=1, b=0]
\definecolor [white] [r=1, g=1, b=1]
-\definecolor [black] [r=0, g=0, b=0]
+\definecolor [black] [s=0]
\definecolor [gray] [s=.9]
\definecolor [darkred] [r=.8, g=0, b=0]
diff --git a/tex/context/base/cont-cz.tex b/tex/context/base/cont-cz.tex
new file mode 100644
index 000000000..e2ba2b56e
--- /dev/null
+++ b/tex/context/base/cont-cz.tex
@@ -0,0 +1,35 @@
+%D \module
+%D [ file=cont-cz,
+%D version=1998.12.02,
+%D title=\CONTEXT,
+%D subtitle=\CONTEXT\ Czech Format Generation,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\catcode`\{=1 \catcode`\}=2 \def\defaultinterface{czech}
+
+\input context.tex
+
+\unprotect
+
+\setupcurrentlanguage[\s!cz]
+
+\loaduserspecifications
+
+\installlanguage [\s!en] [\c!status=\v!start]
+\installlanguage [\s!de] [\c!status=\v!start]
+\installlanguage [\s!sk] [\c!status=\v!start]
+\installlanguage [\s!cz] [\c!status=\v!start]
+
+\setupbodyfont [csr,rm,12pt]
+
+\protect
+
+\dump
+
+\endinput
diff --git a/tex/context/base/cont-fil.tex b/tex/context/base/cont-fil.tex
index 6a81465b8..0f68ef860 100644
--- a/tex/context/base/cont-fil.tex
+++ b/tex/context/base/cont-fil.tex
@@ -15,22 +15,36 @@
\definefilesynonym [chemie] [chemic]
-\definefilesynonym [unit] [units]
-\definefilesynonym [eenheid] [units]
-\definefilesynonym [einheit] [units]
-
-\definefilesynonym [finance] [financ]
-
-\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 [abr-pseudocaps] [abr-01]
-\definefilesynonym [abr-smallcaps] [abr-02]
+\definefilesynonym [unit] [units]
+\definefilesynonym [eenheid] [units]
+\definefilesynonym [einheit] [units]
+
+\definefilesynonym [finance] [financ]
+
+\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-split] [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-wonder] [pre-14]
+\definefilesynonym [pre-balls] [pre-15]
+\definefilesynonym [pre-knot] [pre-16]
+
+\definefilesynonym [abr-pseudocaps] [abr-01]
+\definefilesynonym [abr-smallcaps] [abr-02]
+
+\definefilesynonym [chinese] [chi-00]
+\definefilesynonym [chi-simplified] [chi-01]
+\definefilesynonym [chi-traditional] [chi-02]
\endinput
diff --git a/tex/context/base/cont-new.tex b/tex/context/base/cont-new.tex
index d42da211d..ef0d14211 100644
--- a/tex/context/base/cont-new.tex
+++ b/tex/context/base/cont-new.tex
@@ -17,327 +17,423 @@
\unprotect
\writestatus{\m!systems}{beware: some patches loaded from cont-new.tex!}
-
-% Speeds up when having a field with thousands of clones,
-% which we happen to have -)
-
-\def\getmainfieldkids#1%
- {\let\@@FieldKids\empty
- \ifdefinemainfield
- \definerawpasslist{fld:#1}% runtime defined by system
- \moverawpasslist{fld:#1}\@@FieldKids
+
+%D Hm. Needed for low level calls, like in verbatim.
+
+\def\startcolormode#1%
+ {\ifincolor
+ \doifcolorelse{#1}
+ {\getcurrentcolorspecs{#1}%
+ \expandafter\dostartcolormode\currentcolorspecs\od}
+ {\dostopcolormode}%
\fi}
-
-%D Let's also support a negative offset.
-
-\def\dooutlinebox#1\color#2\offset#3\corner#4\radius#5\depth#6\toggle#7\\%
- {\vbox % rules on top of box
- {\dimen0=#3\relax
- \dimen2=\wd#1\advance\dimen2 by 2\dimen0
- \dimen4=\ht#1\advance\dimen4 by \dimen0
- \dimen6=\dp#1\advance\dimen6 by \dimen0\advance\dimen6 by #6\relax
-\ifdim\dimen6<\!!zeropoint
- \advance\dimen4 by \dimen6 \dimen8=-\dimen6 \dimen6=\!!zeropoint
-\else
- \dimen8=\!!zeropoint
+
+\def\stopcolormode%
+ {\ifincolor\dostopcolormode\fi}
+
+%D New table stuff.
+
+\readfile{supp-ali}{}{} % alignment stuff
+\readfile{core-ntb}{}{} % new table mechanism
+
+\ifx\alignmentclass\undefined \else % [|lg{.}|] \NG 12.34 \NC
+
+\gdef\handletabulatecharalign#1 % space delimited !
+ {\edef\alignmentclass{\tabulatecolumn}%
+ \edef\alignmentcharacter{\getvalue{\@@tabalign@@\tabulatecolumn}}%
+ \ifcase\tabulatepass\or
+ \setfirstpasscharacteralign\checkalignment{#1}%
+ \fi % force hsize
+ \setsecondpasscharacteralign\checkalignment{#1}}
+
\fi
- \setbox\extraframebox=\hbox
- {\dostrokedbox\width\dimen2\height\dimen4\depth\dimen6%
- \corner#4\radius#5\toggle#7\\}%
- \setbox\extraframebox=\hbox
- {\raise\dimen8\vbox{\moveleft#3\box\extraframebox}}%
- \wd\extraframebox=\wd#1%
- \ht\extraframebox=\ht#1%
- \dp\extraframebox=\dp#1%
- \hbox
- {%\copy#1\hskip-\wd#1%
- \box#1\hskip-\wd\extraframebox % faster
- \doifelsenothing{#2} % speeds up a little
- {\box\extraframebox}
- {\color[#2]{\box\extraframebox}}}}}
-
-%D More chinese:
-
-\unexpanded\def\uc#1#2% used in tricky situations
- {\bgroup
- \edef\unicodeone{#1}%
- \edef\unicodetwo{#2}%
- \futurelet\nextglyph\dohandleucflowglyph}
-\def\dohandleucflowglyph%
- {\unicodeposition=\unicodeone\unicodetwo\relax
- \handleunicodeglyph
+%D A funny (but rather stupid) one.
+
+\def\removebottomthings%
+ {\dorecurse{5}{\unskip\unkern\unpenalty}}
+
+%D We also support broad here:
+
+\def\dosetraggedcommand#1%
+ {\expanded{\dodosetraggedcommand{#1}}}
+
+\def\dodosetraggedcommand#1%
+ {\doifinsetelse{\v!ruim} {#1}{\!!doneatrue}{\!!doneafalse}%
+ \doifinsetelse{\v!breed}{#1}{\!!donebtrue}{\!!donebfalse}%
+ \let\raggedcommand\relax
+ \let\raggedtopcommand\empty
+ \let\raggedbottomcommand\empty
+ \ExpandFirstAfter\processallactionsinset
+ [#1]
+ [ \v!links=>\if!!donea \def\raggedcommand{\veryraggedleft}%
+ \else \def\raggedcommand{\raggedleft}%
+ \fi,
+ \v!rechts=>\if!!donea \def\raggedcommand{\veryraggedright}%
+ \else \def\raggedcommand{\raggedright}%
+ \fi,
+ \v!midden=>\if!!doneb \def\raggedcommand{\raggedwidecenter}%
+ \else\if!!donea \def\raggedcommand{\veryraggedcenter}%
+ \else \def\raggedcommand{\raggedcenter}%
+ \fi\fi,
+ \v!hoog=>\let\raggedbottomcommand\vfilll, % bonus, pretty strong
+ \v!laag=>\let\raggedtopcommand \vfilll, % used with \framed
+ \v!nee=>\def\raggedcommand{\raggedright},
+ \v!ja=>\let\raggedcommand\relax,
+ \v!normaal=>\let\raggedcommand\relax]}
+
+%D Sometimes a capstrut comes in handy
+%D
+%D \starttabulatie[|Tl|l|l|]
+%D \NC yes \NC normal strut \NC {\toonstruts\setupstrut[ja]\strut} \NC \NR
+%D \NC no \NC no strut \NC {\toonstruts\setupstrut[nee]\strut} \NC \NR
+%D \NC kap \NC a capital strut (i.e. Q) \NC {\toonstruts\setupstrut[kap]\strut} \NC \NR
+%D \NC A B \unknown \NC a character strut (e.g. A) \NC {\toonstruts\setupstrut[A]\strut} \NC \NR
+%D \NC \NC a normal strut \NC {\toonstruts\setupstrut\strut} \NC \NR
+%D \stoptabulatie
+
+\def\setstrut%
+ {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
+ \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor
+ \dosetstrut}
+
+\def\setcharstrut#1%
+ {\setbox\strutbox=\hbox{#1}%
+ \edef\strutheight{\the\ht\strutbox}%
+ \edef\strutdepth {\the\dp\strutbox}%
+ \dosetstrut}
+
+\def\setcapstrut% could be M, but Q has descender
+ {\setcharstrut{Q}}
+
+\def\setupstrut%
+ {\dosingleempty\dosetupstrut}
+
+\def\dosetupstrut[#1]%
+ {\processaction
+ [#1]
+ [ \v!ja=>\setstrut,
+ \v!nee=>\setnostrut,
+ \v!kap=>\setcapstrut,
+ \s!default=>\setstrut,
+ \s!unknown=>\setcharstrut{\commalistelement}]}
+
+%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}}}
+
+%D in case of no color we don't want to see the rules
+
+\def\dophantombox#1\\{\hphantom{\dofilledbox#1\\}}
+
+\def\raster[#1]%
+ {\groupedcommand{\startraster[#1]}{\stopraster}}
+
+\def\setgraybox\width#1\height#2\depth#3\raster#4\corner#5\radius#6\\%
+ {\doifelsenothing{#4}
+ {\dophantombox\width#1\height#2\depth#3\corner#5\radius#6\\}
+ {\raster[#4]%
+ {\dofilledbox \width#1\height#2\depth#3\corner#5\radius#6\\}}}
+
+\def\setcolorbox\width#1\height#2\depth#3\color#4\corner#5\radius#6\\%
+ {\ifincolor
+ \doifcolorelse{#4}{\color[#4]%
+ {\dofilledbox \width#1\height#2\depth#3\corner#5\radius#6\\}}
+ {\dophantombox\width#1\height#2\depth#3\corner#5\radius#6\\}%
+ \else
+ \dophantombox\width#1\height#2\depth#3\corner#5\radius#6\\%
+ \fi}
+
+%D more and more
+
+\def\lhbox{\dowithnextbox{\hbox to \hsize{\box\nextbox\hss }}\hbox}
+\def\mhbox{\dowithnextbox{\hbox to \hsize{\hss\box\nextbox\hss}}\hbox}
+\def\rhbox{\dowithnextbox{\hbox to \hsize{\hss\box\nextbox }}\hbox}
+
+\let\lefthbox =\lhbox
+\let\midhbox =\mhbox
+\let\righthbox=\rhbox
+
+%D to be tested
+
+\def\docomplexuit[#1::#2]%
+ {\dontleavehmode % added, but probably not needed
+ \bgroup
+ \doifdefinedelse{\v!file:::#1}
+ {\def\doexternaldocument[##1][##2][##3]%
+ {\naar{##3}[#1::#2]}%
+ \getvalue{\v!file:::#1}}
+ {\tttf[#1]}%
\egroup}
-%D Some adaptions due to active /'s. This goes to supp-lan.tex.
+%D Makes sense:
-%D And then came the Polish users, and who can deny them? Like
-%D the German \TEX\ users demand an active \type {"}, the
-%D Polish cannot do without the \type {/}. The next alternative
-%D is a bit slower but far the most robust alternative. As a
-%D bonus it also offers \type {|^|} and even \type {|||} which
-%D both result in a breakable|^|bar.
-%D
-%D The trick we use here is to convert the argument to a
-%D string and compare this string to string'd tokens.
+\def\removelastskip% \ifvmode the plain tex one \fi
+ {\ifvmode\ifdim\lastskip=\z@\else\vskip-\lastskip\fi\fi}
-\def\activedotextmodediscretionary#1%
- {\bgroup
- \let\nextnextnext\egroup
- \def\handlecompoundcharacter##1% new, needed for polish
- {\getvalue{\@nc@\string##1}}% where / is active
- \def\next##1#1%
- {\def\next{\activedododotextmodediscretionary#1{##1}}%
- \futurelet\nextnext\next}%
- \next}
+%D More hyphention control, will be combined with hz setup.
-\def\activedododotextmodediscretionary#1#2%
- {\convertargument#2\to\discretionarytoken
- \def\textmodediscretionary{\getvalue{textmodediscretionary\string#1}}%
- \ifx#1\nextnext % takec care of ||| and +++ and ......
- \prewordbreak\discretionary{\hbox{$#1$}}{}{\hbox{$#1$}}%
- \allowbreak\postwordbreak
- \def\nextnextnext{\afterassignment\egroup\let\next=}%
- \else\ifx\discretionarytoken\empty
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- \prewordbreak\hbox{\textmodediscretionary\nextnext}\allowbreak\postwordbreak
- \egroup
- \else\convertargument=\to\next\ifx\next\discretionarytoken
- \prewordbreak\textmodediscretionary
- \else\convertargument~\to\next\ifx\next\discretionarytoken
- \prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak
- \else\convertargument_\to\next\ifx\next\discretionarytoken
- \prewordbreak\discretionary{\textmodediscretionary}
- {\textmodediscretionary}{\textmodediscretionary}\prewordbreak
- \else\convertargument(\to\next\ifx\next\discretionarytoken
- \ifdim\lastskip>\!!zeropoint\relax
- (\prewordbreak
- \else
- \prewordbreak\discretionary{}{(-}{(}\prewordbreak
- \fi
- \else\convertargument)\to\next\ifx\next\discretionarytoken
- \ifx\nextnext\blankspace
- \prewordbreak)\relax
- \else\ifx\nextnext\space
- \prewordbreak)\relax
- \else
- \prewordbreak\discretionary{-)}{}{)}\prewordbreak
- \fi\fi
- \else\convertargument'\to\next\ifx\next\discretionarytoken
- \prewordbreak\discretionary{-}{}{'}\postwordbreak
- \else\convertargument<\to\next\ifx\next\discretionarytoken
- \beginofsubsentence\prewordbreak\beginofsubsentencespacing
- \else\convertargument>\to\next\ifx\next\discretionarytoken
- \endofsubsentencespacing\prewordbreak\endofsubsentence
- \else\convertargument^\to\next\ifx\next\discretionarytoken
- \prewordbreak\discretionary{\hbox{$|$}}{}{\hbox{$|$}}%
- \allowbreak\postwordbreak
- \else
- \checkafterdiscretionary
- \bgroup
- \checkbeforediscretionary
- \prewordbreak
- \discretionary{\hbox{#2}}{}{\hbox{#2}}%
- \allowbreak\postwordbreak
- \egroup
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \nextnextnext}
-
-%D Since we don't have to bother about active characters any
-%D longer, we end up with a pretty simple activating macro:
-
-\def\enableactivediscretionaries%
- {\let\dotextmodediscretionary=\activedotextmodediscretionary}
-
-\enableactivediscretionaries
-
-\def\handlecompoundcharacter#1%
- {\def\dohandlecompoundcharacter%
- {\ifx\next\bgroup
- %\def\next{\dodohandlecompoundcharacter#1}% % handle "{ee} -> \"ee
- %\let\next\relax % forget "{ee} -> ee
- \def\next{\handlecompoundcharacterone#1}% % ignore "{ee} -> "ee
- \else\ifx\next\egroup
- \def\next{\getvalue{\@nc@\string#1}}%
- \else\ifx\next\blankspace
- \def\next{\getvalue{\@nc@\string#1}}%
- \else
- \def\next{\dodohandlecompoundcharacter#1}%
- \fi\fi\fi
- \next}%
- \futurelet\next\dohandlecompoundcharacter}
-
-%D So far for supp-lan.tex.
-
-%D For Berend:
-
-\def\simpledoblanko%
- {\doifelse{\currentwitruimte}{\v!geen}
- {\blanko[\currentblanko]}
- {\blanko[\s!default]}}
-
-\definieerblanko
- [\s!default]
- [\v!wit]
-
-%\definieerblanko
-% [\s!default]
-% [\v!groot]
-
-%D Yes or no:
-
-\def\collectlocalfootnotes%
- {\def\localfootinsert##1% was \gdef, but never reset!
- {%\message{[local footnote]}%
- \global\setbox\localpostponedfootnotes=\vbox\bgroup
- \unvbox\localpostponedfootnotes
- \let\next}}
-
-\def\doplaatskoptekst#1#2#3#4%
- {\beginheadplacement{#1}%
- \setbox0=\hbox
- {\getvalue{\??ko#1\c!commando}
- {} % no number
- {\doattributes
- {\??ko#1}\c!letter\c!kleur
- {\doattributes
- {\??ko#1}\c!tekstletter\c!tekstkleur
- {\dontconvertfont
- \ifdisplaysectionhead\stelinterliniein
-\else
- \stelspatieringin
-\fi
- #2%
- \getvalue{\??ko#1\c!voorcommando}%
- \getvalue{\??ko#1\c!tekstcommando}%
- {\ifdisplaysectionhead
- \setstrut\begstrut#3\endstrut
-\xdef\localheaddepth{\the\dp\strutbox}%
- \else
- #3%
- \fi}%
- \getvalue{\??ko#1\c!nacommando}%
- \ifdisplaysectionhead\endgraf\fi}}}}%
- \endheadplacement{#1}{#4}}
-
-\def\doplaatskopnummertekst#1#2#3#4#5%
- {\beginheadplacement{#1}%
- \setbox0=\hbox
- {\getvalue{\??ko#1\c!commando}%
- {\doattributes{\??ko#1}\c!letter\c!kleur
- {\doattributes{\??ko#1}\c!nummerletter\c!nummerkleur
- {\getvalue{\??ko#1\c!voorcommando}%
- \getvalue{\??ko#1\c!nummercommando}%
- {\ifdisplaysectionhead
- \setstrut\begstrut#3\endstrut
- \else
- #3%
- \fi}}}}
- {\doattributes{\??ko#1}\c!letter\c!kleur
- {\doattributes{\??ko#1}\c!tekstletter\c!tekstkleur
- {\dontconvertfont
- \ifdisplaysectionhead\stelinterliniein
-\else
- \stelspatieringin
-\fi
- #2%
- \getvalue{\??ko#1\c!tekstcommando}%
- {\ifdisplaysectionhead
- \setstrut\begstrut#4\endstrut
-\xdef\localheaddepth{\the\dp\strutbox}%
- \else
- #4%
- \fi}%
- \getvalue{\??ko#1\c!nacommando}%
- \ifdisplaysectionhead\endgraf\fi}}}}%
- \endheadplacement{#1}{#5}}
+\def\nohyphens%
+ {\ifx\dohyphens\relax
+ \edef\dohyphens%
+ {\hyphenpenalty\the\hyphenpenalty
+ \exhyphenpenalty\the\exhyphenpenalty\relax}%
+ \fi
+ \hyphenpenalty\@M\exhyphenpenalty\@M}
-%D depth
+\let\dohyphens\relax
-\def\beginheadplacement#1%
+%D Better (a mere copy with \dohyphens):
+
+\bgroup \catcode`\~=\active \catcode`\/=\active
+
+\unexpanded\gdef\hyphenatedurl#1% {}{} handles accents
{\bgroup
- \gdef\localheaddepth{\dp\strutbox}%
- \everypar{}% needed indeed
- \noindent % ipv \witruimte elders, na \forgetall !
- \bgroup
- \forgetall % now we may forget everything
- %\showcomposition
- \mindermeldingen
- \postponefootnotes
- \iflocation\ifdisplaysectionhead\else\noninterferingmarks\fi\fi
- \setupinteraction
- [\c!letter=,
- \c!kleur=,
- \c!contrastkleur=]%
- \strictouterreferencestrue % tzt instelling
- \def\localkopsetup%
- {\dolocalkopsetup{#1}}%
- \startsynchronisatie}
-
-\def\endheadplacement#1#2%
- {\doifvaluenothing{\??ko#1\c!file}{\locationfalse}%
- \ifdisplaysectionhead
- \let\headlastlinewidth\!!zeropoint
- \snaptogrid\hbox
- {\iflocation
- \ifautocrossdocument
- \naarbox{\box0}[\getvalue{\??ko#1\c!file}::#1]%
- \else
- \hbox{\box0}%
- \fi
- \else
- \hbox{\box0}%
- \fi
- \doflushfootnotes}% new
- \endgraf
- \nointerlineskip
- \dosomebreak\nobreak
- #2%
- \else
- \strut
- \doflushfootnotes % new
- \iflocation
- \ifautocrossdocument
- \hhboxindent=\ifcontinuoushead\headlastlinewidth\else\!!zeropoint\fi
- \unhhbox0\with{\naarbox{\box\hhbox}[\getvalue{\??ko#1\c!file}::#1]}%
- \advance\lasthhboxwidth by \numberheaddistance
- \xdef\headlastlinewidth{\the\lasthhboxwidth}%
- \else
- \unhbox0
- \global\let\headlastlinewidth\!!zeropoint
- \fi
- \else
- \unhbox0
- \global\let\headlastlinewidth\!!zeropoint
- \fi
- #2%
- \dimen0=\numberheaddistance
- \hskip\dimen0 \!!plus \dimen0 \!!minus .25\dimen0
- \hskip\headsignal\ignorespaces
+ \ifnum\hyphenpenalty<10000 \else
+ \def\discretionary##1##2##3{##1\allowbreak##2}%
\fi
- \ifdisplaysectionhead
- \ifgridsnapping % important, font related depth, see comment
- \prevdepth\dp\strutbox
- \else
- \prevdepth\localheaddepth
- \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\flushurl%
+ {\savedurl\let\savedurl\empty}%
+ \def\\%
+ {\spliturl\#}%
+ \let\~=\tildeletter \let~=\~%
+ \let\/=\slashletter \let/=\/%
+ \let\savedurl\empty
+ \handletokens#1\with\scanurl
+ \egroup}
+
+\egroup
+
+%D A prelude to strategies. Note for myself: overloads
+%D previous stuff from local pragma test files.
+
+\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
- \stopsynchronisatie
- \egroup
- \egroup
-\doflushfootnotes % new, still needed?
- \ifdisplaysectionhead
- \doifvalue{\??ko#1\c!springvolgendein}{\v!nee}{\noindentation}%
- \else
- \nonoindentation % recently added, was a bug
- \fi}
+ \savecurrentvalue\currentstrategypass{\currentstrategypass}}
+
+\appendtoks \registerstrategypass \to \everybye % \everylastshipout
-%D Due to polish active /'s we have to deal a bit more
-%D robust with filename:
+\def\setstrategyvariable#1#2% key value
+ {%\doifnotstrategyvariable{#1}{\global\settrue\strategypassneeded}%
+ \doglobal\increment\currentstrategyvariable
+ \expanded{\immediatewriteutilitycommand{\noexpand
+ \twopassentry{\s!strategy}{\currentstrategyvariable}{#1::#2}}}}
-%D ...
+\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}}
+
+%D New: only at start of columns; may change !
+
+\definesystemvariable {ks} % KolomSpan
+
+\def\setupcolumnspan[#1]%
+ {\getparameters[\??ks][#1]}
+
+\presetlocalframed
+ [\??ks]
+
+\setupcolumnspan
+ [\c!n=2,
+ \c!offset=\v!overlay,
+ \c!kader=\v!uit]
+
+\newbox\columnspanbox \let\postprocesscolumnspanbox\gobbleoneargument
+
+\def\dostartcolumnspan[#1]%
+ {\bgroup
+ \setupcolumnspan[#1]%
+ \forgetall
+%
+ \ifbinnenkolommen
+ \advance\hsize by \intercolumnwidth
+ \hsize=\@@ksn\hsize
+ \advance\hsize by -\intercolumnwidth
+ \fi
+%
+ \dowithnextbox
+ {\setbox\columnspanbox=\box\nextbox
+\ifbinnenkolommen\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=\dp\strutbox
+ \wd\columnspanbox=\hsize
+ \ifbinnenkolommen
+ \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 by -\ht\currenttopcolumnbox
+ \fi}
+ \global\pagegoal=\vsize
+ \else
+ \snaptogrid\vbox{\box\columnspanbox}
+ \fi
+ \else
+ \snaptogrid\vbox{\box\columnspanbox}
+ \fi
+ \prevdepth\dp\strutbox
+ \egroup}
+ \vbox\bgroup
+% \ifbinnenkolommen
+% \advance\hsize by \intercolumnwidth
+% \hsize=\@@ksn\hsize
+% \advance\hsize by -\intercolumnwidth
+% \fi
+ %\topskipcorrection % becomes an option !
+ \EveryPar{\begstrut\EveryPar{}}} % also !
+
+\def\startcolumnspan%
+ {\dosingleempty\dostartcolumnspan}
+
+\def\stopcolumnspan%
+ {\egroup}
+
+%D A test:
+
+\def\EndTableParBox%
+ {\removelastskip % added
+ %\MakeStrut{0pt}{\StrutDepthFactor\StrutUnit} % removed
+\par
+\ifnum\prevgraf>0
+ \strut
+ \vskip-\lineheight
+\fi
+ \egroup % finishes the \vtop begun by \BeginTableParbox
+ \getboxheight\scratchdimen\of\box\scratchbox\relax % added
+ \ifdim\scratchdimen>\TABLEparheight % added
+ \global\TABLEparheight=\scratchdimen % added
+ \fi % added
+ \box\scratchbox}
+
+%D A few local optimizations and new features:
+
+\readfile {cont-loc} {} {}
+
+%D For Ton:
+
+\def\plaatsexterndocument[#1]%
+ {\def\doexternaldocument[##1][##2][##3]%
+ {\readlocfile{##2}{}{}}%
+ \getvalue{\v!file:::#1}}
+
+%D For me:
+
+\beginTEX
+
+\def\p!doifinstringelse#1#2%
+ {\def\pp!doifinstringelse##1#1##2##3\war%
+ {\csname if\if##2@fals\else tru\fi e\endcsname}%
+ \expanded{\pp!doifinstringelse#2#1@@\noexpand\war}} % expand #2 here
+
+\endTEX
+
+\beginETEX \unless
+
+\def\p!doifinstringelse#1#2%
+ {\def\pp!doifinstringelse##1#1##2##3\war%
+ {\unless\if##2@}%
+ \expanded{\pp!doifinstringelse#2#1@@\noexpand\war}} % expand #2 here
+
+\endETEX
+
+%D For Willy's nested commented buffers:
+
+\def\processnextbufferline#1#2#3%
+ {\relax % checken waarom eerdere macro dit nodig heeft / supp-mps run
+ \convertargument#1 \to\next
+ \doifinstringelse{\delcharacter\texcommentsymbol}{\delcharacter\next}
+ {\def\next{#3}}
+ {\doifinstringelse{\endofblock}{\next}
+ {\ifnum\nestedbufferlevel=0\relax % \relax ?
+ \def\next{#2}%
+ \else
+ \decrement\nestedbufferlevel\relax
+ \def\next{#3}%
+ \fi}
+ {\doifinstringelse{\beginofblock}{\next}
+ {\increment\nestedbufferlevel\relax
+ \def\next{#3}}
+ {\def\next{#3}}}}%
+ \next}
%D Some day:
@@ -351,10 +447,7 @@
% \flushmargincontent[#1][#2]{#3}%
% \markeer[\v!margetitel]{#3}}}
-%D Table
-
-
-%D New indeed. Undocumented and under development.
+%D Undocumented and still under development.
\def\startsimplecolumns%
{\dosingleempty\dostartsimplecolumns}
@@ -364,36 +457,49 @@
\getparameters[\??kl][\c!breedte=\hsize,\c!afstand=1em,\c!n=2,#1]%
\setrigidcolumnhsize\@@klbreedte\@@klafstand\@@kln
\setbox\scratchbox=\vbox\bgroup
- \forgetall}
+ \forgetall} % \blanko[\v!blokkeer]
\def\stopsimplecolumns%
- {\removelastskip
+ {\removebottomthings
\egroup
\rigidcolumnbalance\scratchbox
\egroup}
-%D Aha.
+%D Improved:
+
+\newbox\rigidcolumnbox
\def\rigidcolumnbalance#1%
- {\global\chardef\rigidcolumnbox=#1\relax
- \ifnum\rigidcolumns=1
- \ifinner\ifhmode\box\else\unvbox\fi\else\unvbox\fi\rigidcolumnbox
+ {\ifnum\rigidcolumns=1 % tzt ook h/d correctie
+ \ifinner\ifhmode\box\else\unvbox\fi\else\unvbox\fi#1\relax
\else
- \hbox to \savedrigidhsize % was \hsize
- {\vbadness=10000
- \tabskip\!!zeropoint
+ \vbox
+ {\forgetall
+ \dontcomplain
\setbox\rigidcolumnbox=\vbox
- {\unvbox\rigidcolumnbox
- \unpenalty\removelastskip}% get rid of \blank's
- \splittopskip=\openstrutheight
-\splittopskip=\!!zeropoint
- %\scratchdimen=\ht\rigidcolumnbox % sensitive for overflow
- %\divide\scratchdimen by \rigidcolumns % therefore we need the hack:
- \scratchdimen=1pt
- \divide\scratchdimen by \rigidcolumns
- \expanded{\scratchdimen=\withoutpt{\the\scratchdimen}\ht\rigidcolumnbox}%
- \advance\scratchdimen by \ht\strutbox
- \valign{##\vfill\cr\dorigidcolumnsplits}}%
+ {\line{}\goodbreak\unvbox#1\removebottomthings}%
+ \splittopskip=\openstrutheight
+ \setbox\scratchbox=\vsplit\rigidcolumnbox to \!!zeropoint
+ \scratchdimen=\ht\rigidcolumnbox
+ \divide\scratchdimen by \rigidcolumns
+ \getnoflines\scratchdimen
+ \scratchdimen=\noflines\lineheight
+ \setbox\scratchbox=\hbox to \savedrigidhsize
+ {\dorecurse{\rigidcolumns}
+ {\setbox\scratchbox=\vsplit\rigidcolumnbox to \scratchdimen
+ \dp\scratchbox=\openstrutdepth
+ \vtop
+ \ifalignrigidcolumns to
+ \ifstretchrigidcolumns\vsize\else\scratchdimen\fi
+ \fi
+ {\unvbox\scratchbox}%
+ \hfill}%
+ \hfillneg}%
+ \advance\scratchdimen by -\openstrutdepth
+ \setbox\scratchbox\hbox{\raise\scratchdimen\box\scratchbox}
+ \dp\scratchbox=\openstrutdepth
+ \ht\scratchbox=\scratchdimen
+ \box\scratchbox}
\fi}
%D Is this a better default?
@@ -410,127 +516,56 @@
\def\stopgeheel
{\stopregelcorrectie}
-%D Can save lots of mpgraph files when using pdftex:
+%D Under construction:
-\newif\ifrecycleMPslots \recycleMPslotsfalse
-
-\def\allocateMPslot#1%
- {\ifrunMPgraphics
- \ifcase\pdfoutput \recycleMPslotsfalse \fi
- \else
- \recycleMPslotsfalse
- \fi
- \ifrecycleMPslots
- \doloop
- {\doifundefined{\recurselevel MP}
- {\global\letvalue{\recurselevel MP}=\empty
- \global#1=\recurselevel\exitloop}}%
- %\message{[MP slot + \number#1]%
- \else
- \global\advance#1 by 1
- \fi}
-
-\def\deallocateMPslot#1%
- {\ifrunMPgraphics
- \ifcase\pdfoutput \recycleMPslotsfalse \fi
- \else
- \recycleMPslotsfalse
- \fi
- \ifrecycleMPslots
- \global\letbeundefined{\number#1MP}%
- %\message{[MP slot - \number#1]}%
- \fi}
-
-%D For Taco and David: (to be documented and added to
-%D setupb too).
-
-\def\definereferenceformat%
- {\dodoubleargument\dodefinereferenceformat}
-
-\def\dodefinereferenceformat[#1][#2]%
- {\iffirstargument
- \getparameters[\??rf#1]
- [\c!links={[},
- \c!rechts={]},
- \c!tekst=,
- \c!label=,
- \c!commando=\in,
- #2]%
- \unexpanded\setvalue{#1}{\doexecutereferenceformat{#1}}%
- \fi}
+\def\resetpositions%
+ {\let\someposition=\gobblesevenarguments % old
+ \let\pxypos =\gobblefourarguments % new
+ \let\pxywhdpos =\gobblesevenarguments} % new
-\def\noexecutelabelreferenceformat#1%
- {\doifvaluesomething{\??rf#1\c!tekst}
- {\gdef\textofreference{\getvalue{\??rf#1\c!tekst}}}%
- \getvalue{\??rf#1\c!commando}}
-
-\def\doexecutelabelreferenceformat#1%
- {\getvalue{\??rf#1\c!commando}%
- {\leftlabeltext {\getvalue{\??rf#1\c!label}}}%
- {\rightlabeltext{\getvalue{\??rf#1\c!label}}}}
-
-\def\doexecutereferenceformat#1%
- {\gdef\leftofreference {\getvalue{\??rf#1\c!links }}%
- \gdef\rightofreference{\getvalue{\??rf#1\c!rechts}}%
- \global\let\textofreference\empty % otherwise ~ added
- \doifelsevaluenothing{\??rf#1\c!label}
- {\let\next\noexecutelabelreferenceformat}
- {\let\next\doexecutelabelreferenceformat}%
- \next{#1}}
-
-\let\leftofreference \relax
-\let\rightofreference\relax
-\let\textofreference \relax
-
-\def\dodododoinatreference#1#2#3[#4]%
- {\ifx\next\bgroup
- \dododododoinatreference
- {\leftofreference#1\ignorespaces#3\rightofreference}{#2}[#4]%
- \else
- \dododododoinatreference
- {\leftofreference#1\rightofreference}{#2#3}[#4]%
- \fi}
+\resetpositions
-\def\dododododoinatreference#1#2[#3]%
+%D Some more box stuff, related to positioning (under
+%D construction). Nice stuff for a tips and tricks maps
+%D article.
+%D
+%D \starttypen
+%D \raisebox{100pt}\hbox{test}
+%D \raisebox50pt\hbox{test}
+%D \hsmash{\raisebox{100pt}\hbox{test}}
+%D \stoptypen
+
+\def\doraiselowerbox#1#2% a nice trick us used to accept
+ {\def\next% % both direct and {} dimensions
+ {\dowithnextbox
+ {\setbox\nextbox=\hbox{#1\scratchdimen\box\nextbox}%
+ \ht\nextbox=\ht\strutbox
+ \dp\nextbox=\dp\strutbox
+ \box\nextbox}}%
+ \afterassignment\next\scratchdimen=#2}
+
+\def\raisebox{\doraiselowerbox\raise}
+\def\lowerbox{\doraiselowerbox\raise}
+
+%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
- \forgetall
- \leaveoutervmode
- \doifreferencefoundelse{#3}
- {\bgroup
- \let\ignorespaces \empty % rather dirty trick, but ok
- \let\leftofreference \empty % the same, again ok
- \let\rightofreference\empty % and once more
- \def\textofreference {#2}% % temporary value
- \ifx\textofreference\empty % simple expansion
- \doifelsenothing{#1}
- {\egroup\dosymbolreference{#1}{\textofreference}[#3]}
- {\egroup\dowantedreference{#1}{\textofreference}[#3]}%
- \else
- \doifelsenothing{#1}
- {\egroup\dosymbolreference{#1}{#2}[#3]}
- {\egroup\dowantedreference{#1}{#2}[#3]}%
- \fi}
- {\dounknownreference{#1}{#2}[#3]}%
- \referentieinfo{<}{#3}%
- \global\let\leftofreference \empty
- \global\let\rightofreference\empty
- \global\let\textofreference \empty
+ \setbox\scratchbox=\hbox
+ {\setcolumnhsize
+ \global\columnwidth=\usercolumnwidth
+ \global\gutterwidth=\intercolumnwidth}%
\egroup}
-%D The next hack is used for some exiting new feature test.
-
-\def\resetpositions%
- {\let\someposition=\gobblesevenarguments}
-
-\resetpositions
-
%D The next line can be uncommented when Taco's extensions to
%D \quote {\TEX\ The Program} are used.
% \readfile {syst-eet} {} {}
-% I have to scan for \unhbox and use the vbox/hbox trick instead
-
\protect
\endinput
diff --git a/tex/context/base/cont-old.tex b/tex/context/base/cont-old.tex
index e71f15da1..5451de8b0 100644
--- a/tex/context/base/cont-old.tex
+++ b/tex/context/base/cont-old.tex
@@ -24,32 +24,21 @@
\def\substitutecommand#1#2%
{\gdef#1{\dosubstitutecommand{#1}{#2}}}
-
-\def\blockstatus#1#2#3%
- {\writestatus{tekstblok}{sorry, nieuwe versie, tweede/andere run nodig}%
- \endinput}
-\def\presetexternfiguur[#1][#2]%
- {\writestatus{figuren}{sorry, nieuwe versie, run texutil /figures}%
- \endinput}
+%substitutecommand \stelopsomminginopniveau \stelopsommingin
+%substitutecommand \stelopsommingvolledigin \stelopsommingin
+%substitutecommand \stelsomsymboolin \definieersymbool
+%substitutecommand \somsymbool \symbool
-\def\blokstatus {\endinput}
-\def\beginvanexternefiguren {\thisisfigureversion{0}}
-
-\substitutecommand \stelopsomminginopniveau \stelopsommingin
-\substitutecommand \stelopsommingvolledigin \stelopsommingin
-\substitutecommand \stelsomsymboolin \definieersymbool
-\substitutecommand \somsymbool \symbool
+%substitutecommand \stelzetspiegelin \stellayoutin
+%substitutecommand \stelmargesin \stellayoutin
+%substitutecommand \steloffsetin \stellayoutin
-\substitutecommand \stelzetspiegelin \stellayoutin
-\substitutecommand \stelmargesin \stellayoutin
-\substitutecommand \steloffsetin \stellayoutin
+ %def \randbreedte {\rechterrandbreedte}
- \def \randbreedte {\rechterrandbreedte}
-
-\substitutecommand \steldoordefinitiein \steldoordefinierenin
-\substitutecommand \steldoornummerin \steldoornummerenin
-\substitutecommand \steldoorsprongin \steldoorspringenin
+%substitutecommand \steldoordefinitiein \steldoordefinierenin
+%substitutecommand \steldoornummerin \steldoornummerenin
+%substitutecommand \steldoorsprongin \steldoorspringenin
\substitutecommand \volgendehoofdstuk {\stelkopnummerin[hoofdstuk][+1]}
\substitutecommand \volgendeparagraaf {\stelkopnummerin[paragraaf][+1]}
@@ -67,32 +56,32 @@
\substitutecommand \definieersynoniem \definieersynoniemen
-\substitutecommand \stelvoetnootin \stelvoetnotenin
+%substitutecommand \stelvoetnootin \stelvoetnotenin
-\substitutecommand \karakters \uitgerekt
+%substitutecommand \karakters \uitgerekt
-\substitutecommand \diepevoetnoot \voetnoot
+%substitutecommand \diepevoetnoot \voetnoot
% english:
\substitutecommand \setupformulas \setupformulae
-\substitutecommand \useexternalfigures \setupexternalfigures
+%substitutecommand \useexternalfigures \setupexternalfigures
\substitutecommand \setupintermezzos \setupintermezzi
-\substitutecommand \leftlined \leftaligned
-\substitutecommand \middlelined \midaligned
-\substitutecommand \rightlined \rightaligned
+%substitutecommand \leftlined \leftaligned
+%substitutecommand \middlelined \midaligned
+%substitutecommand \rightlined \rightaligned
-\substitutecommand \setupcorps \setupbodyfont
-\substitutecommand \switchtocorps \switchtobodyfont
-\substitutecommand \definecorps \definebodyfont
-\substitutecommand \definecorpsenvironment \definebodyfontenvironment
-\substitutecommand \showcorps \showbodyfont
-\substitutecommand \showcorpsenvironment \showbodyfontenvironment
+%substitutecommand \setupcorps \setupbodyfont
+%substitutecommand \switchtocorps \switchtobodyfont
+%substitutecommand \definecorps \definebodyfont
+%substitutecommand \definecorpsenvironment \definebodyfontenvironment
+%substitutecommand \showcorps \showbodyfont
+%substitutecommand \showcorpsenvironment \showbodyfontenvironment
- \def \corpssize {\bodyfontsize}
+ %def \corpssize {\bodyfontsize}
\protect
\endinput
diff --git a/tex/context/base/cont-usr.ori b/tex/context/base/cont-usr.ori
index db2526542..161c076c0 100644
--- a/tex/context/base/cont-usr.ori
+++ b/tex/context/base/cont-usr.ori
@@ -32,6 +32,7 @@
\definefilesynonym [lang-en.pat] [ushyph1.tex]
\definefilesynonym [lang-fi.pat] [fihyph.tex]
\definefilesynonym [lang-fr.pat] [frhyph.tex]
+\definefilesynonym [lang-hr.pat] [hrhyph.tex]
\definefilesynonym [lang-it.pat] [ithyph.tex]
\definefilesynonym [lang-la.pat] [lahyph7.tex]
\definefilesynonym [lang-nl.pat] [nehyph.tex]
@@ -41,7 +42,6 @@
\definefilesynonym [lang-sk.pat] [skhyph.tex]
\definefilesynonym [lang-sp.pat] [sphyph.tex]
\definefilesynonym [lang-sv.pat] [sehyph.tex]
-\definefilesynonym [lang-hr.pat] [hrhyph.tex]
\definefilesynonym [lang-tr.pat] [trhyph.tex]
\definefilesynonym [lang-uk.pat] [ukhyphen.tex]
\definefilesynonym [lang-us.pat] [ushyph1.tex]
@@ -51,9 +51,9 @@
%D moment) we specify encodings here.
\installlanguage [\s!cz] [\s!mapping=il2,\s!encoding=il2]
-\installlanguage [\s!sk] [\s!mapping=il2,\s!encoding=il2]
+\installlanguage [\s!hr] [\s!mapping=il2,\s!encoding=il2]
\installlanguage [\s!pl] [\s!mapping=pl0,\s!encoding=pl0]
-\installlanguage [\s!hr] [\s!mapping=il2,\s!encoding=il2] % ans ?
+\installlanguage [\s!sk] [\s!mapping=il2,\s!encoding=il2]
%D Sometimes these are not wanted:
@@ -66,24 +66,26 @@
%D first. Normally you don't have to change a byte.
% \installlanguage [\s!af] [\c!status=\v!start] % afrikaans
+% \installlanguage [\s!cz] [\c!status=\v!start] % czech
% \installlanguage [\s!da] [\c!status=\v!start] % danish
% \installlanguage [\s!de] [\c!status=\v!start] % german
% \installlanguage [\s!en] [\c!status=\v!start] % english us
% \installlanguage [\s!fi] [\c!status=\v!start] % finnish
% \installlanguage [\s!fr] [\c!status=\v!start] % french
+% \installlanguage [\s!hr] [\c!status=\v!start] % croatian
% \installlanguage [\s!it] [\c!status=\v!start] % italian
% \installlanguage [\s!la] [\c!status=\v!start] % latin
% \installlanguage [\s!nl] [\c!status=\v!start] % dutch
% \installlanguage [\s!no] [\c!status=\v!start] % norwegian
% \installlanguage [\s!pl] [\c!status=\v!start] % polish
% \installlanguage [\s!pt] [\c!status=\v!start] % portuguese
+% \installlanguage [\s!sk] [\c!status=\v!start] % slovak
% \installlanguage [\s!sp] [\c!status=\v!start] % spanish
% \installlanguage [\s!sv] [\c!status=\v!start] % swedish
% \installlanguage [\s!tr] [\c!status=\v!start] % turkish
% \installlanguage [\s!uk] [\c!status=\v!start] % english uk
-% \installlanguage [\s!hr] [\c!status=\v!start] % croatian
-\installlanguage [deo] [\c!status=\v!start] % old german
+% \installlanguage [deo] [\c!status=\v!start] % old german
% \installlanguage [nlx] [\c!status=\v!start] % dutch 8 bit
%D The next lines can be used for setting the language to be
@@ -96,6 +98,7 @@
% \setupcurrentlanguage[\s!en]
% \setupcurrentlanguage[\s!fi]
% \setupcurrentlanguage[\s!fr]
+% \setupcurrentlanguage[\s!hr]
% \setupcurrentlanguage[\s!it]
% \setupcurrentlanguage[\s!la]
% \setupcurrentlanguage[\s!nl]
@@ -106,7 +109,6 @@
% \setupcurrentlanguage[\s!sp]
% \setupcurrentlanguage[\s!sv]
% \setupcurrentlanguage[\s!tr]
-% \setupcurrentlanguage[\s!hr]
%D Local font settings can go here. Normally suitable
%D defaults are already preloaded, almost certainly the
@@ -114,9 +116,9 @@
%D next line is only meant as sample, take a look at the
%D format related files first.
-% \definefilesynonym [font-cmr] [font-csr]
-% \definefilesynonym [font-cmr] [font-plr]
+% \definefilesynonym [font-cmr] [font-csr] % czech & slovak
+% \definefilesynonym [font-cmr] [font-plr] % polish
%D Don't remove the next few lines.
-\protect
+\protect \endinput
diff --git a/tex/context/base/context.tex b/tex/context/base/context.tex
index a55ad272a..0c18656cc 100644
--- a/tex/context/base/context.tex
+++ b/tex/context/base/context.tex
@@ -13,7 +13,7 @@
\catcode`\{=1 \catcode`\}=2
-\def\contextversion{1999.12.30}
+\def\contextversion{2000.5.11}
%D Welcome to the main module. When this module is ran through
%D \type{initex} or \type{tex -i} or \type{whatevertex} using
@@ -62,6 +62,7 @@
\input supp-pdf.tex
\input supp-spe.tex
\input supp-mps.tex
+\input supp-mpe.tex
\input supp-tpi.tex
\input supp-mat.tex
\input supp-ran.tex
@@ -132,9 +133,12 @@
\input symb-ini.tex
%D Next we load some core macro's. These implement the
-%D macros' that are seen by the users.
+%D macros' that are seen by the users. The order of loading
+%D is important, due to dependancies.
\input core-gen.tex
+\input core-uti.tex
+\input core-mar.tex
\input core-mak.tex
\input core-mat.tex
\input core-dat.tex
@@ -148,14 +152,22 @@
\input core-nav.tex
\input core-ref.tex
\input core-obj.tex
-\input core-01a.tex
-\input core-mul.tex
+\input core-buf.tex
+\input core-lst.tex
+\input core-num.tex
+\input core-itm.tex
+\input core-des.tex
+\input core-syn.tex
+\input core-mul.tex % moved
+\input main-001.tex % still to be split
+\input core-sec.tex
\input core-pag.tex
\input core-tbl.tex
\input core-mis.tex
\input core-mps.tex
+\input core-int.tex
-%D A few more languages, that have specifics use core
+%D A few more languages, that have specifics using core
%D functionality:
\input lang-chi.tex
@@ -183,18 +195,11 @@
\input core-fnt.tex
\input core-not.tex
-\input core-01b.tex
-\input core-01c.tex
+\input main-002.tex % still to be split
+\input main-003.tex % still to be split
\input core-fig.tex
-
-\input core-01d.tex
-\input core-01e.tex
-
-% core-02a.tex % obsolete, replaced by core-dat.tex
-% core-02b.tex
-% core-02c.tex
-\input core-02d.tex
+\input core-par.tex
%D The next two modules implement some additional
%D functionality concenring classes of documents and output.
@@ -266,7 +271,8 @@
\writestring{Tento balik pouziva balik TaBlE, ktery vytvoril M. J. Wichura (1988).}
\writestring{Je generovano jen nekolik pomocnych souboru, z nichz nektere musi byt}
\writestring{zpracovany programem TeXUtil (\utilityversion). Aktualni verze}
-\writestring{blok-maker je \blockversion.}
+\writestring{}
+\writestring{THE CZECH USER INTERFACE IS STILL UNDER DEVELOPMENT!}
\stopinterface
diff --git a/tex/context/base/core-01d.tex b/tex/context/base/core-01d.tex
deleted file mode 100644
index fe6a6f069..000000000
--- a/tex/context/base/core-01d.tex
+++ /dev/null
@@ -1,2331 +0,0 @@
-%D \module
-%D [ file=core-01d,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=1D (to be split),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Core Macros (d)}
-
-\unprotect
-
-\startmessages dutch library: interactions
- title: interactie
- 1: aspect ratio -- x -- (b x h)
- 2: actief
- 3: niet actief
- 4: geen paginasynchronisatie (--) in hmode
-\stopmessages
-
-\startmessages english library: interactions
- title: interaction
- 1: aspect ratio -- x -- (b x h)
- 2: active
- 3: inactive
- 4: no pagesynchronisation (--) in hmode
-\stopmessages
-
-\startmessages german library: interactions
- title: Interaktion
- 1: Aspekt des Verhaeltnis -- x -- (B x H)
- 2: aktiv
- 3: inaktiv
- 4: keine Seitensynchronisation (--) im hmode
-\stopmessages
-
-\startmessages czech library: interactions
- title: interakce
- 1: pomer -- x -- (s x v)
- 2: aktivni
- 3: neaktivni
- 4: zadna strankova synchronizace (--) v hmode
-\stopmessages
-
-\startmessages dutch library: versions
- title: versie
- 1: er mankeert een @+
- 2: markeren pagina's
- 3: geselecteerde pagina's: --
-\stopmessages
-
-\startmessages english library: versions
- title: version
- 1: missing @+
- 2: marking pages
- 3: selected pages: --
-\stopmessages
-
-\startmessages german library: versions
- title: Version
- 1: fehlendes @+
- 2: Erstelle Seiten
- 3: Ausgewaehlte Seiten: --
-\stopmessages
-
-\startmessages czech library: versions
- title: verze
- 1: postradam @+
- 2: oznacuji se strany
- 3: oznacene strany: --
-\stopmessages
-
-%I n=Interacteren
-%I c=\setupinteraction,\stelinteractiemenuin
-%I c=\definieerinteractiemenu,\startinteractiemenu
-%I c=\blokkeerinteractiemenu,\geefinteractiemenuvrij
-%I c=\stelinteractieschermin,\scherm
-%I
-%I Overzichten en verwijzingen kunnen worden voorzien van
-%I voor DVIWINDO en Acrobat betekenisvolle codes. De volgende
-%I commando's zijn (voorlopig) beschikbaar:
-%I
-%I \setupinteraction[status=,menu=,letter=,kleur=,strut=,
-%I breedte=,hoogte=,diepte=,pagina=]
-%I
-%I Hierbij hebben 'letter' en 'kleur' betrekking op in de tekst
-%I gemarkeerde woorden waar een verwijzing achter zit. Status
-%I kan 'start' of 'stop' zijn en het 'menu' kan 'aan' of 'uit'
-%I staan. Met 'pagina=ja' dwingen we pagina verwijzingen af.
-%I
-%I Zonodig kunnen een 'titel', 'subtitel', 'auteur' en 'datum'
-%I worden ingesteld.
-%P
-%I Een menu wordt gedefinieerd met het commando:
-%I
-%I \definieerinteractiemenu[naam][plaats][instellingen]
-%I
-%I waarbij in plaats van de instellingen de naam van een
-%I reeds gedefinieerd menu kan worden opgegeven.
-%I
-%I Mogelijke plaatsen zijn 'boven', 'onder', 'links' en
-%I 'rechts'.
-%P
-%I De inhoud van een menu wordt gedefinieerd met:
-%I
-%I \definieerinteractiemenu[naam][inhoud]
-%I
-%I Een voorbeeld van zo'n definitie is:
-%I
-%I \definieerinteractiemenu
-%I [links]
-%I [{inhoud[inhoud]},
-%I {formules[formules]},
-%I {index[index]}]
-%I
-%I De accolades zijn essentieel! De verwijzingen dienen met de
-%I daarvoor gebruikelijke commando's te worden aangemaakt.
-%I Verwijzingen zoals [inhoud] en [index] zijn automatisch
-%I beschikbaar.
-%P
-%I Naast [inhoud], [index] en andere voor de hand liggende
-%I verwijzingen zijn beschikbaar:
-%I
-%I [eerstepagina]
-%I [vorigepagina]
-%I [volgendepagina]
-%I [laatstepagina]
-%P
-%I Een alternatieve manier om menu's te definieren levert
-%I het commando
-%I
-%I \startinteractiemenu
-%I \stopinteractiemenu
-%I
-%I Hierbinnen zijn de volgende commando's mogelijk:
-%I
-%I \raw tekst \\ : ongeformatteerde tekst
-%I \but[ref] tekst \\ : interactief menu item
-%I \nop \\ : dummy menu item
-%I \txt tekst \\ : niet interactief menu item
-%I \rul tekst \\ : niet interactief menu item (omlijnd)
-%I \com commandos \\ : commando's
-%P
-%I Instellingen kunnen ook apart plaatsvinden met:
-%I
-%I \stelinteractiemenuin[naam][voor=,na=,tussen=,breedte=,
-%I kader=,letter=,status=,achtergrond=,achtergrondkleur=,
-%I achtergrondraster=]
-%I
-%I Aan 'voor', 'na' en 'tussen' kunnen commando's worden
-%I toegekend, zoals: \hfill, \blanko en \hskip1em. Bij
-%I 'breedte' kan een maat, 'passend' of 'ruim' worden
-%I meegegeven. Het kader kan 'aan' of 'uit' staan.
-%I
-%I De status kan 'start', 'stop', 'leeg' of 'geen' zijn. De
-%I instelling 'leeg' geldt slechts een pagina. De instelling
-%I 'geen' heeft alleen zin bij meerdere menus naast cq. boven
-%I elkaar.
-%P
-%I Het is mogelijk een menu te (de)blokkeren. Dit gebeurt met
-%I behulp van het referentie-mechanisme. Het commando luidt:
-%I
-%I \blokkeerinteractiemenu[plaats][verwijzingen]
-%I \geefinteractiemenuvrij[plaats][verwijzingen]
-%I
-%I De verwijzingen moeten worden gescheiden door comma's.
-%I Wanneer geen verwijzingen worden meegegeven, wordt de
-%I blokkade opgeheven.
-%P
-%I Eventueel kunnen tussen menuitems commando's worden
-%I opgenomen,
-%I
-%I \definieerinteractiemenu
-%I [links]
-%I [{alfa[eerste]},
-%I {beta[tweede]},
-%I {{\blanko[forceer,3*groot]}},
-%I {gamma[derde]},
-%I {{\vfil}},
-%I {omega[laatste]}]
-%I
-%I De extra {} zijn nodig, omdat anders onduidelijkheid is
-%I of het commando's zijn of verwijzingen.
-%P
-%I De afmetingen van het interactiescherm kunnen worden
-%I ingesteld met het commando:
-%I
-%I \stelinteractieschermin[breedte=,hoogte=,rugwit=,
-%I kopwit=,optie=]
-%I
-%I Dit is alleen nodig als men het interactieprogramma wil
-%I dwingen de tekst op een afwijkend papierformaat weer te
-%I geven. Als hoogte en breedte kan 'passend' worden
-%I opgegeven, in dat geval wordt uitgegaan van de
-%I instellingen bij \stellayoutin.
-%I
-%I Er kan (in acrobat) met een vol scherm worden opgestart
-%I met optie=max.
-%P
-%I Er zijn meerdere menu's naast elkaar mogelijk. Eerst
-%I wordt een menu gedefinieerd met:
-%I
-%I \definieerinteractiemenu[naam][plaats][instellingen]
-%I
-%I De afstand tussen menus wordt ingesteld met 'afstand'.
-%I Als afstand=overlay dan vallen menus over elkaar.
-
-\def\setupinteractionscreens%
- {}
-
-%\def\initializepaper%
-% {\iflocation % without screen settings
-% \dosetuppaper
-% {\papierformaat}
-% {\the\papierbreedte}
-% {\the\papierhoogte}%
-% \else
-% \dosetuppaper
-% {\printpapierformaat}
-% {\the\printpapierbreedte}
-% {\the\printpapierhoogte}%
-% \fi}
-
-\def\berekeninteractiescherm%
- {\doifelse{\@@scbreedte}{\v!passend}
- {\!!widtha=\linkerrandbreedte
- \advance\!!widtha by \linkerrandafstand
- \advance\!!widtha by \paginascheiding
- \advance\!!widtha by \linkermargebreedte
- \advance\!!widtha by \linkermargeafstand
- \ifdim\rugwit>\!!widtha\ifdim\rugwit>\!!zeropoint\relax
- \advance\rugwit by -\!!widtha
- \fi\fi
- \advance\!!widtha by \zetbreedte
- \advance\!!widtha by \rechtermargeafstand
- \advance\!!widtha by \rechtermargebreedte
- \advance\!!widtha by \paginascheiding
- \advance\!!widtha by \rechterrandafstand
- \advance\!!widtha by \rechterrandbreedte
- \scratchdimen=\@@scrugwit
- \advance\scratchdimen by \@@scrugoffset
- \advance\!!widtha by 2\scratchdimen}
- {\doifelse{\@@scbreedte}{\v!max}
- {\!!widtha=\printpapierbreedte}
- {\!!widtha=\@@scbreedte}}%
- \doifelse{\@@schoogte}{\v!passend}
- {\!!heighta=\bovenhoogte
- \advance\!!heighta by \bovenafstand
- \ifdim\kopwit>\!!heighta\ifdim\kopwit>\!!zeropoint\relax
- \advance\kopwit by -\!!heighta
- \fi\fi
- \advance\!!heighta by \zethoogte
- \advance\!!heighta by \onderafstand
- \advance\!!heighta by \onderhoogte
- \scratchdimen=\@@sckopwit
- \advance\scratchdimen by \@@sckopoffset
- \advance\!!heighta by 2\scratchdimen}
- {\doifelse{\@@schoogte}{\v!max}
- {\!!heighta=\printpapierhoogte}
- {\!!heighta=\@@schoogte}}%
- \doif{\@@scwachttijd}{\v!geen}{\def\@@scwachttijd{0}}}
-
-\def\complexstelinteractieschermin[#1]%
- {\getparameters[\??sc][#1]%
- \def\initializepaper%
- {\bgroup
- \berekeninteractiescherm
-\ifdim \!!widtha>\papierbreedte \papierbreedte=\!!widtha \fi
-\ifdim \!!heighta>\papierhoogte \papierhoogte=\!!heighta \fi
- \dosetuppaper
- {\printpapierformaat}
- {\the\papierbreedte}
- {\the\papierhoogte}%
- \egroup}%
- \def\setupinteractionscreens% met a, b en \number
- {\bgroup
- \berekeninteractiescherm
- \processaction
- [\@@scoptie]
- [ \v!max=>\!!counte=1,
- \v!bookmark=>\!!counte=2,
- \s!unknown=>\!!counte=0,
- \s!default=>\!!counte=0]%
- %\doifelse{\@@scoptie}{\v!max}
- % {%\doif{\@@lyplaats}{\v!midden} % werkt niet goed / bovendien niet gewenst
- % % {\scratchdimen=\printpapierhoogte
- % % \advance\scratchdimen by -\papierhoogte
- % % \divide\scratchdimen by 2
- % % \advance\kopoffset by \scratchdimen
- % % \scratchdimen=\printpapierbreedte
- % % \advance\scratchdimen by -\papierbreedte
- % % \divide\scratchdimen by 2
- % % \advance\rugoffset by \scratchdimen}%
- % \!!counte=1}
- % {\doifelse{\@@scoptie}{\v!bookmark}
- % {\!!counte=2}
- % {\!!counte=0}}%
- \showmessage{\m!interactions}{1} % niet waterdicht
- {\@EA\withoutpt\the\!!widtha,\@EA\withoutpt\the\!!heighta}%
- \dosetupscreen
- {\number\rugoffset}{\number\kopoffset}
- {\number\!!widtha}{\number\!!heighta}
- {\the\!!counte}%
- \dosetupidentity
- {\@@iatitel}
- {\@@iasubtitel}
- {\@@iaauteur} % The next line is not to be removed. Copyright!
- {CONTEXT / www.pragma-ade.nl / \jobname.tex}
- {\@@iadatum}
- \egroup}}
-
-\def\simplestelinteractieschermin%
- {\setupinteractionscreens}
-
-\definecomplexorsimple\stelinteractieschermin
-
-%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 overuled hoofdstuk
-%
-% .... text ....
-%
-% \placebookmarks [hoofdstuk,paragraaf,subparagraaf,subsubparagraaf,mylist]
-% [open list]
-%
-% \bookmark[mylist]{whatever}
-
-\def\@@bookmark {bm::}
-\def\@@booklevel{bl::}
-\def\@@bookcount{bc::}
-
-\definieerlijst[\@@bookmark]
-
-\appendtoks\flushpostponedbookmark\to\everypar
-\appendtoks\flushpostponedbookmark\to\neverypar
-
-\let\flushpostponedbookmark\relax
-
-\def\simplebookmark#1%
- {\ifx\flushpostponedbookmark\relax \else
- \bgroup
- \convertargument#1\to\ascii
- \writestatus{system}{clashing bookmarks: \ascii}% ECHTE MESSAGE MAKEN
- \egroup
- \fi
- \gdef\flushpostponedbookmark%
- {\global\let\flushpostponedbookmark\relax
- \schrijfnaarlijst[\@@bookmark]{}{#1}}}
-
-\def\complexbookmark[#1]#2%
- {\schrijfnaarlijst[#1]{}{#2}}
-
-\definecomplexorsimple\bookmark
-
-%\def\insertbookmark[#1]#2%
-% {\bgroup
-% \doifreferencefoundelse{#1}
-% {\doinsertbookmark{0}{0}{#2}{\currentrealreference}}{1}
-% {\unknownreference{#1}}%
-% \egroup}
-
-\newif\iftracebookmarks \tracebookmarksfalse
-
-\let\tracebookmarks\tracebookmarkstrue
-
-\def\placebookmarks%
- {\dodoubleempty\doplacebookmarks}
-
-\def\doplacebookmarks[#1][#2]%
- {\iflocation
- \iffirstargument
- \bgroup
- \ifsecondargument
- \edef\openbookmarklist{#2}%
- \else
- \let\openbookmarklist=\empty
- \fi
- \global\let\bookmarklevellist=\empty
- \def\bookmarklevelcount{0}%
- \doprocessbookmarks[#1]\dogetbookmarkelement
- \dolijstelement{}{}{}{}{}{}% needed to finish the first pass
- \doprocessbookmarks[#1]\doputbookmarkelement
- \flushbookmark
- \egroup
- \else
- \expanded{\placebookmarks\@EA[\getvalue{\??ih\v!inhoud\c!lijst}]}%
- \fi
- \fi}
-
-\def\doprocessbookmarks[#1]#2%
- {\let\dolijstelement=#2\relax
- \scratchcounter=0
- \def\docommando##1%
- {\advance\scratchcounter by 1
- \getlistlevel[##1]\listlevel{\the\scratchcounter}%
- \setxvalue{\@@bookcount\the\scratchcounter}{1}%
- \setxvalue{\@@booklevel##1}{\listlevel}}%
- \processcommalist[#1]\docommando
- \setxvalue{\@@bookcount0}{1}%
- \global\chardef\currentbookmarklevel=0
- \global\chardef\previousbookmarklevel=0
- \doutilities{#1,\@@bookmark}{\jobname}{#1}{}{}}
-
-\def\dodogetbookmarkelement#1#2#3#4#5#6%
- {%\doifsomething{#1}
- % {\global\chardef\currentbookmarklevel=\getvalue{\@@booklevel#1}}%
- \doifelsenothing{#1}
- {\global\chardef\currentbookmarklevel=0\relax}
- {\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 by -1
- \dorecurse{\!!countb}
- {\edef\bookmarktag%
- {\bookmarktag\getvalue{\@@bookcount\recurselevel}:}}%
- \edef\bookmarklevelcount%
- {\getvalue{\@@bookcount\the\!!counta}}%
- \xdef\bookmarklevellist%
- {\bookmarklevellist/\bookmarktag:\bookmarklevelcount/}%
- \advance\!!counta by -1
- \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\docommando\@EA[\@EA##\@EA1\@EA/\bookmarktag:##2/##3]%
- {\def\bookmarklevelcount{##2}}%
- \@EA\@EA\@EA\docommando\@EA\@EA\@EA[\@EA\bookmarklevellist\@EA/\bookmarktag:0/]}
-
-\def\dodoputbookmarkelement#1#2#3#4#5#6%
- {%\doifsomething{#1}
- % {\global\chardef\currentbookmarklevel=\getvalue{\@@booklevel#1}}%
- \doifelsenothing{#1}
- {\global\chardef\currentbookmarklevel=0\relax}
- {\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=1}
- {\chardef\openbookmark=0}%
- \iftracebookmarks(#6: #4)\quad(\the\openbookmark)\par\fi
- \doinsertbookmark{#2}{#3}{#4}{#5}{\openbookmark}}
-
-% \startinteractiemenu[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 \\
-% \stopinteractiemenu
-
-\newif\iflocationmenupermitted
-
-\def\testinteractiemenu#1%
- {\iflocation
- \doifelse{\@@iamenu}{\v!aan}
- {\doifelsevalue{\??am#1\c!status}{\v!start}
- {\global\locationmenupermittedtrue}
- {\global\locationmenupermittedfalse}}
- {\global\locationmenupermittedfalse}%
- \else
- \global\locationmenupermittedfalse
- \fi}
-
-\def\doblokkeerinteractiemenu[#1][#2][#3]%
- {\def\dodoblokkeerinteractiemenu##1%
- {\doifelse{#3}{}
- {\setevalue{\??am##1\c!blokkade}{}}
- {\edef\interactieblokkade{\getvalue{\??am##1\c!blokkade}}
- \def\docommando####1%
- {#1{####1}{\interactieblokkade}}% #1 = \remove or \add
- \processcommalist[#3]\docommando
- \setevalue{\??am##1\c!blokkade}{\interactieblokkade}}}%
- \processcommalist[#2]\dodoblokkeerinteractiemenu}
-
-\def\blokkeerinteractiemenu%
- {\dotripleempty\doblokkeerinteractiemenu[\addtocommalist]}
-
-\def\geefinteractiemenuvrij%
- {\dotripleempty\doblokkeerinteractiemenu[\removefromcommalist]}
-
-% ja : kader/achtergrond met tekst
-% leeg : kader/achtergrond maar geen tekst
-% nee : alleen ruimte reserveren
-% geen : helemaal weglaten
-
-\newif\iflocationdummy
-\newif\ifskippedmenuitem
-
-\def\dosetlocationbox#1[#2]#3#4%
- {\global\skippedmenuitemfalse
- \setbox\locationbox=\hbox
- {% anders cyclische aanroep !
- \resetgoto
- \iflocationdummy
- \edef\locationboxborder{\getvalue{#1\c!kader}}%
- \edef\locationboxbackground{\getvalue{#1\c!achtergrond}}%
- \else
- \edef\locationboxborder{\v!uit}%
- \edef\locationboxbackground{}%
- \fi
- \localframed[#1]
- [\c!kader=\locationboxborder,
- \c!achtergrond=\locationboxbackground,
- #2]
- {\dolocationattributes{#1}\c!letter\c!kleur{#3}}}%
- \hbox{#4{\box\locationbox}}}%{\copy\locationbox}}}
-
-\def\setlocationboxyes#1[#2]#3[#4]%
- {\ifx\currentouterreference\empty
- \ifrealreferencepage\!!doneatrue\else\!!doneafalse\fi
- %\doifelse{\currentrealreference}{\realfolio}
- % {\!!doneatrue}{\!!doneafalse}%
- \else
- \!!doneafalse
- \fi
- \if!!donea
- \ifcase0\getvalue{#1\c!zelfdepagina}\relax
- \bgroup
- \locationdummytrue
- \setevalue{#1\c!kleur}{\getvalue{#1\c!contrastkleur}}%
- \dosetlocationbox{#1}[#2,\c!leeg=\v!nee]{#3}{\gotolocation{#4}}%
- \egroup
- \or
- \locationdummytrue
- \dosetlocationbox{#1}[#2,\c!leeg=\v!ja]{#3}{\gotolocation{#4}}%
- \or
- \locationdummyfalse
- \dosetlocationbox{#1}[#2,\c!leeg=\v!ja]{#3}{\gotolocation{#4}}%
- \or
- \locationdummyfalse
- \global\skippedmenuitemtrue
- \fi
- \else
- \locationdummytrue
- \dosetlocationbox{#1}[#2,\c!leeg=\v!nee]{#3}{\gotolocation{#4}}%
- \fi}
-
-\def\setlocationboxnop#1[#2]#3[#4]%
- {\ifcase\getvalue{#1\c!onbekendeverwijzing}\relax
- \locationdummytrue
- \dosetlocationbox{#1}[#2,\c!leeg=\v!nee]{#3}{}%
- \or
- \locationdummytrue
- \dosetlocationbox{#1}[#2,\c!leeg=\v!ja]{#3}{}%
- \or
- \locationdummyfalse
- \dosetlocationbox{#1}[#2,\c!leeg=\v!ja]{#3}{}%
- \or
- \locationdummyfalse
- \global\skippedmenuitemtrue
- \fi}
-
-%\def\setlocationbox#1[#2]#3[#4]%
-% {\doifinstringelse{#4}{\getvalue{#1\c!blokkade}}
-% {\setlocationboxnop{#1}[#2]{#3}[#4]}
-% {\doifreferencefoundelse{#4}
-% {\setlocationboxyes{#1}[#2]{#3}[#4]}
-% {\setlocationboxnop{#1}[#2]{#3}[#4]%
-% \unknownreference{#4}}}}
-
-\def\setlocationbox#1[#2]#3[#4]%
- {\doifreferencepermittedelse{#4}{\getvalue{#1\c!blokkade}}
- {\setlocationboxyes{#1}[#2]{#3}[#4]}
- {\setlocationboxnop{#1}[#2]{#3}[#4]}}
-
-%\dolocationattributes{#1}\c!letter\c!kleur{#3}}}%
-
-\def\dodosetlocationcommanditem#1#2#3[#4]#5\\%
- {\bgroup
- \leavevmode
- \doifelse{#5}{[]}
- {\doifinstringelse{=}{#4}
- {#3}
- {\setlocationbox{\??am#1}[]{#3}[#4]}}
- {#3}%
- \ifskippedmenuitem \else
- \getvalue{\??am#1#2}%
- \fi
- \egroup}
-
-\def\dosetlocationcommanditem#1#2#3%
- {\dodosetlocationcommanditem{#1}{#2}#3[]\\}
-
-\def\setlocationnop#1[#2]#3%
- {\localframed[#1][#2]{#3}}
-
-\def\executeamboxcommands#1#2#3#4#5%
- {\processaction
- [\getvalue{\??am#1\c!dummy}]
- [ \v!ja=>\chardef\handleunknownmenuitem=0\relax,
- \v!leeg=>\chardef\handleunknownmenuitem=1\relax,
- \v!nee=>\chardef\handleunknownmenuitem=2\relax]%
- \getvalue{\??am#1#3}\relax
- \ifextendedmenu
- \setamboxcommands{#1}{#4}%
- \def\next%
- {\ignorespaces#2}%
- \else
- \def\dolocationcommand##1%
- {\dosetlocationcommanditem{#1}{#4}{##1}}%
- \def\next%
- {\processcommalist[#2]\dolocationcommand}%
- \fi
- \next
- \unskip
- \getvalue{\??am#1#5}}
-
-\def\setamboxcommands#1#2%
- {\def\@@amboxcommand##1\\%
- {\bgroup
- \leavevmode\ignorespaces##1\unskip\relax
- \ifskippedmenuitem \else
- \getvalue{\??am#1#2}%
- \fi
- \egroup
- \ignorespaces}%
- \def\raw[##1]##2\\%
- {\@@amboxcommand\naarbox{\ignorespaces##2\unskip}[##1]\\}%
- \def\but[##1]##2\\%
- {\@@amboxcommand\setlocationbox{\??am#1}[]{\ignorespaces##2\unskip}[##1]\\}%
- \def\got[##1]##2\\%
- {\@@amboxcommand\setlocationbox{\??am#1}[\c!kader=\v!uit,\c!achtergrond=]{\ignorespaces##2\unskip}[##1]\\}%
- \def\nop##1\\%
- {\@@amboxcommand\phantom{\localframed[\??am#1][]{}}\\}%
- \def\txt##1\\%
- {\@@amboxcommand\localframed[\??am#1][\c!kader=\v!uit,\c!achtergrond=]{\ignorespaces##1\unskip}\\}%
- \def\rul##1\\%
- {\@@amboxcommand\localframed[\??am#1][]{\ignorespaces##1\unskip}\\}%
- \def\com##1\\%
- {\ignorespaces##1\unskip}}
-
-\def\@@amhbox#1#2#3#4%
- {\testinteractiemenu{#3}%
- \iflocationmenupermitted
- \bgroup
-\showcomposition
- \def\dolocationcommand##1%
- {\dosetlocationcommanditem{#3}{##1}}%
- \dimen0=\zetbreedte
- \advance\dimen0 by \pagebackgroundhoffset
- \advance\dimen0 by \pagebackgroundhoffset
- \advance\dimen0 by -\getvalue{\??am#3\c!linkeroffset}%
- \advance\dimen0 by -\getvalue{\??am#3\c!rechteroffset}%
- \setbox0=\hbox to \dimen0
- {\forgetall
- \executeamboxcommands{#3}{#4}\c!links\c!midden\c!rechts}%
- \wd0=\zetbreedte
- % geen \ht=#2 setting (yet)
- \hskip-\pagebackgroundhoffset
- \hskip \getvalue{\??am#3\c!linkeroffset}%
- \box0\relax
- \egroup
- \else
- #1\relax
- \fi}
-
-\def\@@amvbox#1#2#3#4% don't change skipping, this one works!
- {\testinteractiemenu{#3}%
- \iflocationmenupermitted
- \bgroup
-\showcomposition
- \dimen0=\teksthoogte
- \advance\dimen0 by \pagebackgroundvoffset
- \advance\dimen0 by \pagebackgroundvoffset
- \advance\dimen0 by \pagebackgrounddepth
- \advance\dimen0 by -\getvalue{\??am#3\c!bovenoffset}%
- \advance\dimen0 by -\getvalue{\??am#3\c!onderoffset}%
- \setbox0=\vbox to \dimen0
- {\forgetall % Voor't geval de afstand
- \stelblankoin[\v!standaard]% % (tijdelijk) is aangepast.
- \hsize#2\relax
- \executeamboxcommands{#3}{#4}\c!voor\c!tussen\c!na}%
- \setbox0=\vbox
- {\vskip-\pagebackgroundvoffset
- \vskip\getvalue{\??am#3\c!bovenoffset}%
- \ht0=\!!zeropoint
- \box0
- \vskip\pagebackgroundvoffset}% overbodig
- \ht0=\teksthoogte
- \wd0=#2\relax
- \box0
- \egroup
- \else
- #1\relax
- \fi}
-
-\setvalue{\??am\s!do\v!rechts}%
- {\@@amvbox{\dodummypageskip\v!rechts}\rechterrandbreedte}
-
-\setvalue{\??am\s!do\v!links}%
- {\@@amvbox{\dodummypageskip\v!links}\linkerrandbreedte}
-
-\setvalue{\??am\s!do\v!boven}%
- {\@@amhbox{\dodummypageskip\v!boven}\bovenhoogte}
-
-\setvalue{\??am\s!do\v!onder}%
- {\@@amhbox{\dodummypageskip\v!onder}\onderhoogte}
-
-\def\dointeractiemenu#1#2%
- {\getvalue{\??am\s!do\getvalue{\??am#1\c!plaats}}{#1}{#2}}
-
-\unexpanded\def\interactiemenu[#1]%
- {\getvalue{\??am\c!menu#1}}
-
-\def\horizontaalinteractiemenu#1#2#3#4%
- {\ifdim#2>\!!zeropoint % new
- \dimen2=\!!zeropoint
- \setbox0=\hbox
- {\def\docommando##1%
- {\doifnotvalue{\??am##1\c!status}{\v!geen}
- {\hskip\dimen2
- \setbox2=\hbox to #2
- {\getvalue{\??am##1#3}\interactiemenu[##1]\getvalue{\??am##1#4}}%
- \doifelsevalue{\??am##1\c!afstand}{\v!overlay}
- {\dimen2=\!!zeropoint
- \wd2=\!!zeropoint}%
- {\dimen2=\getvalue{\??am##1\c!afstand}}%
- \box2}}%
- \startinteractie
- \processcommacommand[\getvalue{\??am#1}]\docommando
- \stopinteractie}%
- \wd0=#2\relax
- \box0\relax
- \fi}
-
-\def\vertikaalinteractiemenu#1#2#3#4%
- {\ifdim#2>\!!zeropoint % new
- \dimen2=\!!zeropoint
- \setbox0=\vbox
- {\def\docommando##1%
- {\doifnotvalue{\??am##1\c!status}{\v!geen}
- {\vskip\dimen2
- \setbox2=\vbox to #2
- {\getvalue{\??am##1#3}\interactiemenu[##1]\getvalue{\??am##1#4}}%
- \doifelsevalue{\??am##1\c!afstand}{\v!overlay}
- {\dimen2=\!!zeropoint
- \offinterlineskip
- \dp2=\!!zeropoint
- \ht2=\!!zeropoint}%
- {\dimen2=\getvalue{\??am##1\c!afstand}}%
- \box2}}%
- \startinteractie
- \processcommacommand[\getvalue{\??am#1}]\docommando
- \stopinteractie}%
- \ht0=#2\relax
- \dp0=\!!zeropoint
- \box0\relax
- \fi}
-
-\def\interactiemenus[#1]%
- {\iflocation
- \processaction
- [#1]
- [ \v!links=>\horizontaalinteractiemenu\v!links\linkerrandbreedte\c!links\c!rechts,
- \v!rechts=>\horizontaalinteractiemenu\v!rechts\rechterrandbreedte\c!links\c!rechts,
- \v!boven=>\vertikaalinteractiemenu\v!boven\bovenhoogte\c!voor\c!na,
- \v!onder=>\vertikaalinteractiemenu\v!onder\onderhoogte\c!voor\c!na]%
- \else
- \dodummypageskip{#1}%
- \fi}
-
-\setvalue{\??am\v!links }{}
-\setvalue{\??am\v!rechts}{}
-\setvalue{\??am\v!boven }{}
-\setvalue{\??am\v!onder }{}
-
-\newif\ifextendedmenu
-
-\def\dodefinieerinteractiemenu[#1][#2][#3]%
- {\ConvertToConstant\doifelse{#3}{}
- {\setvalue{\??am\c!menu#1}%
- {\extendedmenufalse\dointeractiemenu{#1}{#2}}}
- {\setvalue{\??am\c!menu#1}%
- {\extendedmenufalse\dointeractiemenu{#1}{}}%
- \presetlocalframed[\??am#1]%
- \letvalue{\??am#1\c!blokkade}\empty
- \edef\!!stringe{\getvalue{\??am#2}}%
- \addtocommalist{#1}\!!stringe
- \letvalue{\??am#2}=\!!stringe
- \doifnot{#1}{#2}
- {\copyparameters[\??am#1][\??am#2]
- [\c!links,\c!midden,\c!rechts,\c!voor,\c!na,\c!tussen,
- \c!breedte,\c!hoogte,\c!afstand,\c!offset,\c!kader,
- \c!achtergrond,\c!achtergrondkleur,\c!achtergrondraster,
- \c!letter,\c!kleur,\c!contrastkleur,\c!zelfdepagina,\c!onbekendeverwijzing,
- \c!linkeroffset,\c!rechteroffset,\c!bovenoffset,\c!onderoffset]}%
- \ConvertToConstant\doifinstringelse{=}{#3}
- {\getparameters[\??am#1][\c!plaats=#2,#3]}%
- {\doifnot{#2}{#3}
- {\copyparameters[\??am#1][\??am#3]
- [\c!links,\c!midden,\c!rechts,\c!voor,\c!na,\c!tussen,
- \c!breedte,\c!hoogte,\c!afstand,\c!offset,\c!kader,
- \c!achtergrond,\c!achtergrondkleur,\c!achtergrondraster,
- \c!letter,\c!kleur,\c!zelfdepagina,\c!onbekendeverwijzing,
- \c!linkeroffset,\c!rechteroffset,\c!bovenoffset,\c!onderoffset]}%
- \getparameters[\??am#1][\c!plaats=#2]}}}
-
-\def\definieerinteractiemenu%
- {\dotripleempty\dodefinieerinteractiemenu}
-
-\processbetween{\e!interactiemenu}\dostartinteractiemenu
-
-\def\dostartinteractiemenu#1%
- {\dodostartinteractiemenu#1\dodostopinteractiemenu}
-
-\def\dodostartinteractiemenu[#1]#2\dodostopinteractiemenu%
- {\setvalue{\??am\c!menu#1}{\extendedmenutrue\dointeractiemenu{#1}{#2}}}
-
-\def\dododostelinteractiemenuin#1%
- {\processaction
- [\getvalue{#1}]
- [ \v!ja=>\setvalue{#1}{0},
- \v!leeg=>\setvalue{#1}{1},
- \v!nee=>\setvalue{#1}{2},
- \v!geen=>\setvalue{#1}{3},
- \s!default=>\setvalue{#1}{1}]}
-
-\def\dodostelinteractiemenuin[#1][#2]%
- {\def\docommando##1%
- {\getparameters[\??am##1][#2]%
- \dododostelinteractiemenuin{\??am##1\c!onbekendeverwijzing}%
- \dododostelinteractiemenuin{\??am##1\c!zelfdepagina}}%
- \processcommalist[#1]\docommando}
-
-\def\dostelinteractiemenuin[#1][#2]%
- {\ConvertToConstant\doifinstringelse{=}{#2}
- {\dodostelinteractiemenuin[#1][#2]}
- {\dodefinieerinteractiemenu[#1][#2][]}}
-
-\def\stelinteractiemenuin%
- {\dodoubleargument\dostelinteractiemenuin}
-
-% \scherm moet worden als \pagina
-
-\def\simplescherm% zou niet nodig moeten zijn
- {\iflocation
- \pagina[\v!ja]%
- \fi}
-
-\def\complexscherm[#1]%
- {\iflocation
- \pagina[#1]%
- \fi}
-
-\definecomplexorsimple\scherm
-
-%I n=Springen
-%I c=\naar,\button,\menubutton,\stelbuttonsin
-%I
-%I Een woord kan woren gemarkeerd met:
-%I
-%I \naar{woord}[referentie]
-%I
-%I Voorlopig zijn daarnaast beschikbaar:
-%I
-%I \button[instellingen]{woord}[referentie]
-%I \menubutton[plaats][instellingen]{woord}[referentie]
-%I
-%I waarbij de [instellingen] facultatief zijn en {geen} in
-%I plaats van {woord} kan worden opgegeven. De instellingen komen,
-%I voor zover relevant, overeen met die van \omlijnd. Vaste
-%I instellingen vinden plaats met:
-%I
-%I \stelbuttonsin[breedte=,hoogte=,offset=,kader=,
-%I achtergrond=,achtergrondkleur=,achtergrondraster=,
-%I kleur=]
-%P
-%I De elders reeds beschreven commando's \op en \in zijn in
-%I geval van interactie ook als volgt te gebruiken:
-%I
-%I \in{woord}[referentie]
-%I \op{woord}[referentie]
-%I
-%I In dat geval wordt 'tekst~referentie' net zo weergegeven
-%I als
-%I
-%I \naar{woord}[referentie] % woorden
-%I \naarbox{woord}[referentie] % robuust
-%I
-%I opgeroepen verwijzing.
-
-\def\domenubutton[#1][#2]#3[#4]%
- {\bgroup
- \locationdummytrue
- \iffirstargument
- \ifsecondargument
- \setlocationbox{\??am#1}[#2]{#3}[#4]%
- \else
- \ConvertToConstant\doifinstringelse{=}{#1}
- {\setlocationbox{\??bt}[#1]{#3}[#4]}
- {\setlocationbox{\??am#1}[]{#3}[#4]}%
- \fi
- \else
- \setlocationbox{\??bt}[]{#3}[#4]%
- \fi
- \egroup}
-
-\unexpanded\def\menubutton%
- {\dodoubleempty\domenubutton}
-
-\def\domenubox[#1][#2]#3%
- {\bgroup
- \def\setlocationbox##1[##2]##3[##4]%
- {\localframed[##1][##2]%
- {\dolocationattributes{##1}\c!letter\c!kleur{##3}}}%
- \domenubutton[#1][#2]#3[]%
- \egroup}
-
-\def\menubox%
- {\dodoubleempty\domenubox}
-
-%I n=Externe files
-%I c=\gebruikexterndocument,\uit
-%I c=\startsynchroniseer,\stopsynchronisatie,\synchroniseer,
-%I c=\stelsynchronisatiein,\stelsynchronisatiebalkin,\synchronisatiebalk
-%I
-%I Mits ondersteund door het interactieprogramma, kan naar
-%I een andere file worden gesprongen. Zo'n file moet eerst
-%I worden gedefinieerd met:
-%I
-%I \gebruikexterndocument [naam] [file] [omschrijving]
-%I
-%I Een verwijzing naar een andere file ziet er als volgt
-%I uit:
-%I
-%I \in{tekst}[naam::verwijzing]
-%I \op{tekst}[naam::verwijzing]
-%I \naar{tekst}[naam::verwijzing]
-%I
-%I De naam van het andere document kan worden opgeroepen met
-%I
-%I \uit[naam]
-%I
-%I terwijl \uit zonder [naam] de bij \in, \op of \naar
-%I behorende omschrijving oproept.
-%P
-%I Documenten kunnen worden gesynchroniseerd. Dat wil zeggen
-%I dat gesprongen kan worden naar hetzelfde punt in een anders
-%I vormgegeven tekst. Een synchronisatiepunt wordt aangegeven
-%I met:
-%I
-%I \sychroniseer
-%I
-%I Een synchronisatie kan uit de pas lopen, bijvoorbeeld als
-%I we in een kop een synchronisatiebalk oproepen. Wanneer vindt
-%I immers precies de synchronisatie plaats? Vandaar de wat
-%I meer betrouwbare menier van aangeven:
-%I
-%I \startsynchronisatie % voor de kop (nu mag balk)
-%I \stopsynchronisatie % eind van de kop (fixeert plaats)
-%P
-%I Synchronisatie kan worden ingesteld met:
-%I
-%I \stelsynchronisatiein[status=]
-%I
-%I Het synchronisatiemechanisme is in geval van interactieve
-%I teksten standaard niet actief.
-%P
-%I Er kan een synchronisatiebalk worden opgeroepen waarmee
-%I naar een ander document kan worden gesprongen.
-%I
-%I \synchronisatiebalk[naam][instellingen]
-%I
-%I De instellingen kunnen ook apart worden opgegeven:
-%I
-%I \stelsynchronisatiebalkin[variant=,breedte=,
-%I letter=,kleur=,achtergrond=,achtergrondraster=,
-%I achtergrondkleur=]
-%I
-%I Mogelijke varianten zijn 'lokaal' en 'pagina'. In het
-%I eerste geval wordt slechts een mogelijkheid geboden, in het
-%I tweede geval zijn tot drie mogelijkheden mogelijk. Deze
-%I zijn te vergelijken met markeringen.
-
-% Hier volgen de synchronisatiemacro's:
-
-\def\syncprefix{sync}
-\def\syncmarker{syncmark}
-
-%\definieermarkering[\syncmarker]
-%\stelmarkeringin[\syncmarker][\c!expansie=\v!ja]
-
-\newmark\syncmarker
-
-\newcounter\synccounter
-
-\newif\ifsynchronisation
-
-\def\startsynchronisatie%
- {\iflocation\ifsynchronisation
- \doglobal\increment\synccounter
- \fi\fi}
-
-\def\stopsynchronisatie%
- {\iflocation\ifsynchronisation
- %\thisisdestination{\syncprefix:\synccounter}%
- \paginareferentie[\syncprefix:\synccounter]%
- \ifvmode
- \@EA\setmark\@EA\syncmarker\@EA{\synccounter} % \marking[\syncmarker]{\synccounter}%
- \else
- \showmessage{\m!interactions}{4}{\synccounter}%
- \fi
- \fi\fi}
-
-\def\synchroniseer%
- {\startsynchronisatie
- \stopsynchronisatie}
-
-\def\dostelsynchronisatiein[#1]%
- {\getparameters[\??sy][#1]%
- \doifelse{\@@systatus}{\v!start}
- {\synchronisationtrue}
- {\synchronisationfalse}}
-
-\def\stelsynchronisatiein%
- {\dosingleargument\dostelsynchronisatiein}
-
-\def\definieersynchronisatie%
- {\dosingleargument\dodefinieersynchronisatie}
-
-\def\stelsynchronisatiebalkin%
- {\dodoubleargument\getparameters[\??ba]}
-
-\presetlocalframed[\??ba]
-
-\setvalue{synchronisatie\v!pagina}[#1]%
- {\bgroup
- \setupinteraction[\c!breedte=\!!zeropoint]%
- \setbox0=\hbox
- {\localframed[\??ba][]%
- {\dolocationattributes\??ba\c!letter\c!kleur{\strut\@@batekst}}}%
- \mindermeldingen
- \def\onder%
- {\leaders\hrule\!!depth1ex\!!height-.5ex\hfil}%
- \def\boven##1##2##3%
- {\dimen0=\wd0
- \divide\dimen0 by 3
- \multiply\dimen0 by ##2\relax
- \dimen2=.25em
- \advance\dimen0 by -##3\dimen2
- %\gotodestination
- % {}{#1}{\syncprefix:##1}{}
- % {\hbox to \dimen0{\color[\locationcolor\@@bakleur]{\onder}}}}%
- \naarbox
- {\hbox to \dimen0{\color[\locationcolor\@@bakleur]{\onder}}}%
- [#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
- \boven\first30\relax
- \else
- \boven\first21\hss\boven\bot11\relax
- \fi
- \else
- \ifnum\first=\bot\relax
- \boven\top11\hss\boven\first21\relax
- \else
- \boven\top11\hss\boven\first11\hss\boven\bot11\relax
- \fi
- \fi}%
- \wd2=\!!zeropoint\box2
- \box0\relax}%
- \egroup}
-
-\setvalue{synchronisatie\v!lokaal}[#1]%
- {\bgroup
- \setupinteraction[\c!breedte=\!!zeropoint]%
- \def\blackrule{\hbox{\vrule\!!height.5em\!!width.5em}}%
- %\gotodestination
- % {}{##1}{\syncprefix:#1}{0}
- % {\color[\locationcolor\@@bakleur]{\blackrule}}%
- \naarbox %
- {\color[\locationcolor\@@bakleur]{\blackrule}}%
- [#1::\syncprefix:\synccounter]%
- \egroup}
-
-\def\synchronisatiebalk[#1][#2]%
- {\iflocation\ifsynchronisation
- \bgroup
- \stelsynchronisatiebalkin
- [\c!tekst=\getvalue{doc:des:#1},#2]%
- \getvalue{synchronisatie\@@bavariant}[#1]%
- \egroup
- \fi\fi}
-
-%I n=Interactiebalk
-%I c=\interactiebalk,\stelinteractiebalkin
-%I
-%I Het volgende commando genereert een interactiebalk. Pas op:
-%I de waarde van \realpageno staat niet echt vast.
-%I
-%I \interactiebalk[variant=,breedte=,hoogte=,diepte=,
-%I achtergrond=,achtergrondkleur=,achtergrondraster=,
-%I kader=,stap=]
-%I
-%I \interactiebalk[reset]
-%I
-%I \stelinteractiebalkin[...]
-%I
-%I Mogelijke stappen zijn 'klein', 'middel', 'groot' en 'n';
-%I beschikbare varianten zijn:
-%I
-%I a meter (scrollbar)
-%I b jumper (symbool: begin terug vooruit eind)
-%I c jumper (balk: begin terug vooruit eind)
-%I d pagina (subpaginas vast formaat)
-%I e pagina (subpaginas vrij formaat)
-%I f pagina (subpaginas grote aantallen)
-%I g pagina (subpaginas jumper)
-
-% Dit is leuke toepassing van glue!
-
-\newbox\meterbox
-
-\newif\ifbalksymbool
-
-\def\doganaareenpagina#1#2#3% nog checken !
- {\checkreferences % nodig ??
- \iflocation
- \ifnum#3=\realpageno
- {#2}%
- \else
- \doifelsenothing{#1}
- {\hbox{\gotorealpage{}{}{#3}
- {#2}}}
- {\hbox{\gotorealpage{}{}{#3}
- {\dolocationattributes{#1}\c!letter\c!kleur{#2}}}}%
- \fi
- \else
- {#2}%
- \fi}
-
-\def\interactiebalka%
- {\iflocation
- \bgroup
- \setupinteraction[\c!breedte=\!!zeropoint]%
- \setupblackrules[\c!hoogte=\v!max,\c!diepte=\v!max]% maten ??
- \!!widthb=\@@ibbreedte\relax
- \advance\!!widthb by -2.75em\relax
- \!!widtha=\!!widthb\relax
- \divide\!!widtha by \lastpage\relax
- \bgroup
- \advance\realpageno by -1\relax
- \ifvoid\meterbox
- \bgroup
- \processaction
- [\@@ibstap]
- [ \v!klein=>\dimen0=.25em\relax,
- \v!middel=>\dimen0=.5em\relax,
- \v!groot=>\dimen0=1em\relax,
- \s!unknown=>\dimen0=\!!widtha]%
- \ifdim\!!widtha<\dimen0\relax
- \!!counta=\dimen0\relax
- \!!countb=\!!widtha
- \divide\!!counta by \!!countb
- \else
- \!!counta=\@@ibstap\relax
- \fi
- \!!widtha=\!!counta\!!widtha
- \setbox0=\hbox{\blackrule[\c!breedte=\!!widtha]}%
- \global\setbox\meterbox=\hbox to \!!widthb
- {\hss
- \for \teller=1 \to \lastpage \step \!!counta \do
- {\gotorealpage{}{}{\teller}{\copy0}}%
- \hss}%
- \global\wd\meterbox=\!!zeropoint\relax
- \egroup
- \fi
- \egroup
- \noindent
- \strut
- \hbox to \@@ibbreedte
- {\mindermeldingen
- \setupblackrules[\c!breedte=1em]%
- \doganaareenpagina\??ib\blackrule\firstpage
- \hss
- \color[middlegray]{\copy\meterbox}%
- \hbox to \!!widthb
- {\ifdim\!!widtha<1em\relax
- \!!widtha=1em\relax
- \fi
- \setupblackrules[\c!breedte=\!!widtha]%
- \ifnum\realpageno>1\relax
- \!!counta=\realpageno
- \advance\!!counta by -2\relax
- \hskip\!!zeropoint\!!plus\!!counta sp\relax % cm gives overflow
- \doganaareenpagina\??ib\blackrule\prevpage
- \fi
- \color[\@@ibcontrastkleur]{\blackrule[\c!breedte=.5em]}%
- \ifnum\realpageno<\lastpage\relax
- \doganaareenpagina\??ib\blackrule\nextpage
- \!!counta=\lastpage\relax
- \advance\!!counta by -\realpageno
- \advance\!!counta by -1\relax
- \hskip\!!zeropoint\!!plus\!!counta sp\relax % cm gives overflow
- \fi}%
- \hss
- \doganaareenpagina\??ib\blackrule\lastpage}%
- \egroup
- \fi}
-
-\presetlocalframed[\??ib]
-
-\def\interactiebalkc%
- {\iflocation
- \ifnum\lastpage>1
- \hbox to \@@ibbreedte
- {\setupblackrules[\c!hoogte=\@@ibhoogte,\c!diepte=\@@ibdiepte]%
- \def\gotox##1%
- {\doganaareenpagina{}{\blackrule[\c!breedte=##1]}}%
- \dimen0=\@@ibbreedte\relax
- \advance\dimen0 by -4em
- \!!counta=\lastpage
- \advance\!!counta by -1
- \divide\dimen0 by \!!counta
- \!!counta=\realpageno
- \advance\!!counta by -1
- \!!widtha=\!!counta\dimen0\relax
- \!!countb=\lastpage
- \advance\!!countb by -\realpageno
- \!!widthb=\!!countb\dimen0
- \startcolor[\locationcolor\@@ibkleur]%
- \gotox{1em}\firstpage
- \hss
- \gotox{\!!widtha}\prevpage
- \color[\@@ibcontrastkleur]{\blackrule[\c!breedte=1em]}%
- \gotox{\!!widthb}\nextpage
- \hss
- \gotox{1em}\lastpage
- \stopcolor}%
- \fi
- \fi}
-
-\def\interactiebalkd%
- {\iflocation\ifshowingsubpage
- \ifnum\nofsubpages>1
- \hbox
- \bgroup
- \setupinteraction[\c!breedte=\!!zeropoint]%
- \ifbalksymbool % beter: 3 chars assign en 3*box
- \setupsymbolset[\@@iasymboolset]%
- \setbox0=\hbox{\symbol[\v!vorige]}%
- \setbox2=\hbox{\symbol[\v!ergens]}%
- \setbox4=\hbox{\symbol[\v!volgende]}%
- \else
- \setbox0=\hbox
- {\vrule
- \!!height\@@ibhoogte
- \!!depth\@@ibdiepte
- \!!width\@@ibbreedte}%
- \setbox2=\copy0
- \setbox4=\copy0
- \fi
- \startcolor[\locationcolor\@@ibkleur]%
- \for\teller=1\to\nofsubpages\step1\do
- {\bgroup
- \increment(\teller,\firstsubpage)\relax
- \decrement\teller\relax
- \ifnum\teller<\realpageno\relax
- \gotorealpage{}{}{\teller}{\copy0}\relax
- \else\ifnum\teller=\realpageno\relax
- \color
- [\@@ibcontrastkleur]
- {\gotorealpage{}{}{\teller}{\copy2}}%
- \else
- \gotorealpage{}{}{\teller}{\copy4}\relax
- \fi\fi
- \egroup
- \hskip\@@ibafstand}%
- \unskip
- \stopcolor
- \egroup
- \fi
- \fi\fi}
-
-\def\interactiebalke% KAN WORDEN GECOMBINEERD MET D
- {\iflocation\ifshowingsubpage
- \ifnum\nofsubpages>1
- \bgroup
- \!!widthb=\@@ibafstand
- \multiply\!!widthb by \nofsubpages
- \advance\!!widthb by -\@@ibafstand % (n-1)
- \!!widtha=\@@ibbreedte
- \advance\!!widtha by -\!!widthb
- \divide\!!widtha by \nofsubpages\relax
- \ifdim\!!widtha<\@@ibafstand\relax
- \interactiebalkf
- \else
- \setupinteraction[\c!breedte=\!!zeropoint]%
- \noindent
- \hbox to \@@ibbreedte
- \bgroup
- \ifbalksymbool
- \setupsymbolset[\@@iasymboolset]%
- \setbox0=\hbox{\symbol[\v!vorige]}%
- \setbox2=\hbox{\symbol[\v!ergens]}%
- \setbox4=\hbox{\symbol[\v!volgende]}%
- \else
- \setbox0=\hbox
- {\vrule
- \!!height\@@ibhoogte
- \!!depth\@@ibdiepte
- \!!width\!!widtha}%
- \setbox2=\copy0
- \setbox4=\copy0
- \fi
- \startcolor[\locationcolor\@@ibkleur]%
- \for\teller=1\to\nofsubpages\step1\do
- {\bgroup
- \increment(\teller,\firstsubpage)\relax
- \decrement\teller\relax
- \ifnum\teller<\realpageno\relax
- \gotorealpage{}{}{\teller}{\copy0}\relax
- \else\ifnum\teller=\realpageno\relax
- \color
- [\@@ibcontrastkleur]
- {\gotorealpage{}{}{\teller}{\copy2}}%
- \else
- \gotorealpage{}{}{\teller}{\copy4}\relax
- \fi\fi
- \egroup
- \hss}%
- \unskip
- \stopcolor
- \egroup
- \fi
- \egroup
- \fi
- \fi\fi}
-
-\def\interactiebalkf% !! KAN WORDEN GECOMBINEERD MET D !!
- {\iflocation\ifshowingsubpage
- \ifnum\nofsubpages>1
- \setupinteraction[\c!breedte=\!!zeropoint]%
- \noindent
- \hbox to \@@ibbreedte
- \bgroup
- \!!countb=0
- \loop
- \advance\!!countb by 1
- \!!countc=\nofsubpages
- \divide\!!countc by \!!countb
- \advance\!!countc by 1
- \!!widthb=\@@ibafstand
- \multiply\!!widthb by \!!countc
- \advance\!!widthb by -\@@ibafstand
- \!!widtha=\@@ibbreedte
- \advance\!!widtha by -\!!widthb
- \divide\!!widtha by \!!countc
- \ifdim\!!widtha<\@@ibafstand\relax
- \repeat
-\advance\!!countc by -2
-\!!widtha=-\@@ibafstand
-\!!widtha=\!!countc\!!widtha
-\advance\!!widtha by \@@ibbreedte
-\advance\!!countc by 1
-\divide\!!widtha by \!!countc
- \ifbalksymbool
- \setupsymbolset[\@@iasymboolset]%
- \setbox0=\hbox{\symbol[\v!vorige]}%
- \setbox4=\hbox{\symbol[\v!ergens]}%
- \setbox8=\hbox{\symbol[\v!volgende]}%
- \setbox2=\copy4
- \setbox6=\copy4
- \else
- \setbox0=\hbox
- {\vrule
- \!!height\@@ibhoogte
- \!!depth\@@ibdiepte
- \!!width\!!widtha}%
- \setbox4=\copy0
- \setbox8=\copy0
- \setbox2=\hbox
- {\vrule
- \!!height.5\ht0
- \!!depth.5\dp0
- \!!width\!!widtha}%
- \ht2=\ht0
- \dp2=\dp0
- \setbox6=\copy2
- \fi
- \def\gotox##1%
- {\ifnum\teller=\realpageno
- \color
- [\@@ibcontrastkleur]
- {\gotorealpage{}{}{\teller}{\copy##1}}%
- \else
- \gotorealpage{}{}{\teller}{\copy##1}%
- \fi
- \!!countf=0
- \hss}%
- \startcolor[\locationcolor\@@ibkleur]%
- \!!countc=\realpageno \advance\!!countc by -2
- \!!countd=\realpageno \advance\!!countd by 2
- \!!countf=0
- \for\teller=\firstsubpage\to\lastsubpage\step1\do
- {\!!doneafalse
- \advance\!!countf by 1
- \ifnum\teller=\firstsubpage\relax \!!doneatrue \fi
- \ifnum\teller=\lastsubpage\relax \!!doneatrue \fi
- \ifnum\teller>\!!countc \ifnum\teller<\!!countd \!!doneatrue \fi\fi
- \if!!donea
- \ifnum\teller<\realpageno
- \gotox0%
- \else\ifnum\teller>\realpageno
- \gotox4%
- \else
- \gotox8%
- \fi\fi
- \else\ifnum\!!countf=\!!countb
- \ifnum\teller<\realpageno
- \gotox2%
- \else\ifnum\teller>\realpageno
- \gotox6%
- \else
- \gotox4%
- \fi\fi
- \fi\fi}%
- \unskip
- \stopcolor
- \egroup
- \fi
- \fi\fi}
-
-\def\interactiebalkb%
- {\ifnum\lastpage>\firstpage\relax
- \interactiebuttons
- [\v!eerstepagina,
- \v!vorigepagina,
- \v!volgendepagina,
- \v!laatstepagina]%
- \fi}
-
-\def\interactiebalkg%
- {\ifnum\lastsubpage>\firstsubpage\relax
- \interactiebuttons
- [\v!eerstesubpagina,
- \v!vorigesubpagina,
- \v!volgendesubpagina,
- \v!laatstesubpagina]%
- \fi}
-
-\def\checkinteractiebalk#1#2%
- {\doifnothing{\@@ibhoogte}{\def\@@ibhoogte{#1}}%
- \doifnothing{\@@ibdiepte}{\def\@@ibdiepte{#2}}}
-
-\def\complexinteractiebalk[#1]%
- {\doifelse{#1}{\v!reset}
- {\global\setbox\meterbox=\box\voidb@x}%
- {\bgroup
- \iflocation
- \checksubpages % goes wrong / loads \numberofpages too
- \getparameters[\??ib][#1]%
- \doif{\@@ibstatus}{\v!start}
- {\startinteractie
- \processaction
- [\@@ibvariant]
- [ c=>\checkinteractiebalk\v!max\v!max,
- d=>\checkinteractiebalk{.5em}\!!zeropoint,
- e=>\checkinteractiebalk{.5em}\!!zeropoint,
- f=>\checkinteractiebalk{.5em}\!!zeropoint,
- \s!default=>\checkinteractiebalk\v!ruim\!!zeropoint,
- \s!unknown=>\checkinteractiebalk\v!ruim\!!zeropoint]%
- \doifelse{\@@ibsymbool}{\v!ja}
- {\balksymbooltrue}{\balksymboolfalse}%
- \getvalue{interactiebalk\@@ibvariant}%
- \stopinteractie}%
- \fi
- \egroup}}
-
-\definecomplexorsimpleempty\interactiebalk
-
-\def\stelinteractiebalkin%
- {\dodoubleargument\getparameters[\??ib]}
-
-%I n=Profielen
-%I c=\definieerprofiel,\startprofiel,\volgprofiel
-%I
-%I Er kunnen een gericht leesprofiel worden gedefinieerd.
-%I Daartoe worden delen van de tekst gemerkt met commando:
-%I
-%I \startprofiel[label,label,...]
-%I \stopprofiel
-%I
-%I Een profiel wordt vervolgens samengesteld uit gemerkte
-%I teksten:
-%I
-%I \definieerprofiel[naam,naam][label,label,...]
-%I
-%I en kan worden gevolgd met:
-%I
-%I \volgprofiel{tekst}[naam]
-%I
-%I Dit laatste commando is te vergelijken met \naar, met dat
-%I verschil dat naar een serie teksten wordt gesprongen.
-%P
-%I Profielen kunnen worden getest. In dat geval worden de
-%I begin- en eindpunten in de tekst aangegeven. De labels
-%I zijn actief, zodat snel heen en weer gesprongen kan worden.
-%I
-%I \stelprofielenin[optie=]
-%I
-%I Hierbij kan optie de waarde 'test' hebben.
-
-% Er wordt vooralsnog uitgegaan van een symmetrische
-% start-stop situatie.
-
-\def\c!profiel!! {profiel:} % brrr
-\def\c!versie!! {versie:}
-
-\def\dodefinieerprofiel[#1][#2]%
- {\iflocation
- \def\dododefinieerprofiel##1%
- {\def\dodododefinieerprofiel####1%
- {\doifdefinedelse{\c!profiel!!####1}%
- {\edef\!!stringa{\getvalue{\c!profiel!!####1}}%
- \setevalue{\c!profiel!!####1}{\!!stringa,##1}}%
- {\setevalue{\c!profiel!!####1}{##1}}}%
- \processcommalist[#2]\dodododefinieerprofiel}%
- \processcommalist[#1]\dododefinieerprofiel
- \fi}
-
-\def\definieerprofiel%
- {\dodoubleargument\dodefinieerprofiel}
-
-% 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}
- {\number\papierbreedte}{\number\papierhoogte}
- {\profilepage}%
- \else
- \doendofprofile
- \fi}}%
- \def\processedprofiles{}%
- \def\doprocessprofile##1%
- {\doifelse{\@@pfoptie}{\v!test}%
- {\goodbreak\blanko\nobreak\tt[\spatie
- \ifcase#1\v!start\else\v!stop\fi profiel\spatie ##1:\spatie
- \doifdefinedelse{\c!profiel!!##1}%
- {\def\dodoprocessprofile####1%
- {\processoneprofile
- {\naar{####1}[\c!profiel!!####1]}%
- {####1}%
- \spatie}%
- \processcommacommand
- [\getvalue{\c!profiel!!##1}]\dodoprocessprofile}%
- {- }%
- ]\nobreak\blanko}%
- {\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\startprofiel[#1]%
- {\iflocation
- \bgroup
- \addtocommalist{#1}\actualprofile
- \def\stopprofiel%
- {\processprofile1[#1]%
- \egroup}%
- \DoAfterFi\processprofile0[#1]%
- \fi}
-
-\let\stopprofiel=\relax
-
-\def\dovolgprofiel#1[#2]%
- {\iflocation
- \hbox
- {\dostartgoto
- \data
- {\dolocationattributes\??ia\c!letter\c!kleur{#1\presetgoto}}%
- \start
- \dostartgotoprofile
- {\number\buttonwidth}{\number\buttonheight}
- {#2}%
- \stop
- \dostopgotoprofile
- \dostopgoto}%
- \else
- {#1}%
- \fi}
-
-\def\volgprofiel#1[#2]%
- {\iflocation
- \doif{\@@pfoptie}{\v!test}{\pagereference[\c!profiel!!#2]}%
- \dovolgprofiel{#1}[#2]%
- \fi}
-
-\def\stelprofielenin%
- {\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
- \edef\docommando%
- {\writeutilitycommand%
- {\twopassentry%
- {\s!profile}%
- {\currentprofile}%
- {\noexpand\realfolio}}}%
- \docommando}
-
-\def\dogetprofilepage%
- {\gettwopassdata{\s!profile}%
- \let\profilepage=\twopassdata}
-
-%I n=Versies
-%I c=\definieerversie,\stelversiesin,\startversie
-%I c=\selecteerversie,\markeerversie,\volgversie
-%I
-%I Het mechanisme om wijzigingen in een tekst te markeren en
-%I selecteren sluit aan op dat van profielen.
-%I
-%I Een deel van de tekst kan worden gemarkeerd met ofwel
-%I
-%I \startversie[nr,nr,...]
-%I \stopversie
-%I
-%I of tussen @+ ...... @-. Eventueel mogen achter @+ nummers
-%I worden opgenomen: @+nr,nr,... ...... @-.
-%I
-%I Aldus gemerkte tekst kan in een afwijkende letter worden
-%I weergegeven, bijvoorbeeld \ss. Daarbij wordt de laagste
-%I nog te mrkeren versie opgegeven:
-%I
-%I \stelversiesin[nummer=,letter=]
-%I
-%I Een versienummer mag punten (.) bevatten. Deze worden
-%I voor het vergelijken niet meegenomen. Oppassen dus: 1.10
-%I wordt 110 en 2.2 wordt 22.
-%P
-%I Het is mogelijk alleen de 'recente' wijzigingen te
-%I verwerken. Dit gaat in twee slagen:
-%I
-%I \markeerversie (eerste slag)
-%I \selecteerversie (tweede slag)
-%I
-%I Er is gekozen voor het bewust markeren, omdat het
-%I markeren gaat ten koste van de omvang van de hulpfile.
-%P
-%I Evenals profielen, kunnen ook versie worden gevolgd. Ook
-%I hier dient eerst een definitie plaats te vinden:
-%I
-%I \definieerversie[naam][nummer,nummer,nummer]
-%I
-%I waarna gebruik kan worden gemaakt van:
-%I
-%I \volgversie{tekst}[naam]
-%I
-%I Er is ook een combinatie (doorsnede) mogelijk van
-%I profielen en versies:
-%I
-%I \volgprofielversie{tekst}[naam profiel][naam versie]
-
-\newcounter\versionlevel
-\newcounter\versionorder
-
-\newif\ifrecentversion
-
-\let\oldatcharacter=@
-
-\def\minimumversion{0}
-\def\actualversion{0}
-
-\def\dostelversiesin[#1]%
- {\getparameters[\??ve][#1]
- \stripcharacter.\from\@@venummer\to\minimumversion
- \setversion}
-
-\def\stelversiesin%
- {\dosingleargument\dostelversiesin}
-
-\definetwopasslist{\s!versionbegin}
-\definetwopasslist{\s!versionend}
-
-\def\actualprofile{}
-
-\def\doresetpageversion%
- {\edef\docommando%
- {\writeutilitycommand%
- {\twopassentry%
- {\s!versionend}%
- {\versionorder}%
- {\noexpand\realfolio}}}%
- \docommando}
-
-\def\dosetpageversion#1%
- {\recentversiontrue
- \doglobal\increment\versionorder\relax
- \edef\docommando%
- {\writeutilitycommand%
- {\twopassentry%
- {\s!versionbegin}%
- {\versionorder}%
- {\noexpand\realfolio}}}%
- \docommando
- \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
- \writeutilitycommand%
- {\twopassentry%
- {\s!versionbegin}%
- {\versionorder}%
- {\the\!!counta}}%
- \writeutilitycommand%
- {\twopassentry%
- {\s!versionend}%
- {\versionorder}%
- {\the\!!countb}}%
- \for\teller=\!!counta\to\!!countb\step1\do%
- {\@EA\doglobal\@EA\addtocommalist\@EA{\teller}{\recentcontributions}}%
- \let\next=\checkrecentcontributions
- \else
- \let\next=\relax
- \fi
- \else
- \let\next=\relax
- \fi
- \next}
-
-\def\docheckpageversion%
- {\ExpandBothAfter\doifinsetelse{\realfolio}{\recentcontributions}
- {\geselecteerdtrue}%
- {\geselecteerdfalse}}
-
-\let\setpageversion = \gobbleoneargument
-\let\resetpageversion = \relax
-\let\checkpageversion = \relax
-
-\def\complexstartversie[#1]%
- {\bgroup
- \doifelse{\actualprofile}{}%
- {\startprofiel[#1]}%
- {\startprofiel[#1,\actualprofile]}%
- \def\docomplexstartversie##1%
- {\stripcharacter.\from##1\to\actualversion
- \ifnum\versionlevel>0\relax
- \ifnum\actualversion=0\relax
- \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\startversie
-
-\def\stopversie%
- {\stopprofiel
- \doglobal\decrement\versionlevel
- \ifnum\versionlevel<0\relax
- \showmessage{\m!versions}{1}{}%
- \else
- \resetpageversion
- \egroup
- \fi}
-
-\bgroup
-\catcode`@=\active
-\gdef\setversion%
- {\catcode`@=\active % we can't use \@@active here
- \long\def@##1##2 %
- {\ifx##1+%
- \startversie[##2]%
- \else\ifx##1-%
- \stopversie
- \else
- \oldatcharacter##1##2 %
- \fi\fi}}
-\egroup
-
-\def\markeerversie%
- {\showmessage{\m!versions}{2}{}%
- \let\setpageversion=\dosetpageversion
- \let\resetpageversion=\relax
- \let\checkpageversion=\relax}
-
-\def\selecteerversie%
- {\checkrecentcontributions
- \showmessage{\m!versions}{3}{\recentcontributions}%
- \let\setpageversion=\gobbleoneargument
- \let\resetpageversion=\relax
- \let\checkpageversion=\docheckpageversion
- \setversion}
-
-\def\dodefinieerversie[#1][#2]%
- {\setvalue{\c!versie!!#1}{#2}%
- \definieerprofiel[#1][#2]}
-
-\def\definieerversie%
- {\dodoubleargument\dodefinieerversie}
-
-\def\volgversie%
- {\volgprofiel}
-
-\def\volgprofielversie#1[#2][#3]%
- {\def\docommando##1%
- {\definieerprofiel[#2#3][##1]}%
- \processcommacommand[\getvalue{\c!versie!!#3}]\docommando
- \volgprofiel#1[#2#3]}
-
-\newcounter\currentpagetransition
-
-\newif\ifrandomtransitions
-
-\def\stelpaginaovergangenin%
- {\dosingleempty\dostelpaginaovergangenin}
-
-\def\dostelpaginaovergangenin[#1]%
- {\doifelsenothing{#1}
- {\doifnot{\@@scwachttijd}{\v!geen}
- {\let\setpagetransition\setsomepagedelay}}
- {\doifelse{#1}{\v!start}
- {\doifnot{\@@scwachttijd}{\v!geen}
- {\let\setpagetransition\setsomepagedelay}}
- {\doglobal\newcounter\currentpagetransition
- \doifinsetelse{#1}{\v!reset,\v!stop}
- {\let\setpagetransition\relax}
- {\let\setpagetransition\setsomepagetransition
- \doifinsetelse{\v!willekeurig}{#1}
- {\randomtransitionstrue}{\randomtransitionsfalse}%
- \edef\userpagetransitions{#1}%
- \@EA\removefromcommalist\@EA{\v!willekeurig}\userpagetransitions
- \ifx\userpagetransitions\empty
- \let\userpagetransitions\pagetransitions
- \fi}}}}
-
-\def\setsomepagedelay%
- {\expanded{\dosetpagetransition{0}{\@@scwachttijd}}}
-
-\def\setsomepagetransition%
- {\iflocation
- \ifrandomtransitions
- \expanded{\getcommalistsize[\userpagetransitions]}%
- \getrandomnumber{\currentpagetransition}{1}{\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{\@@scwachttijd}{\v!geen}
- {\expanded{\dosetpagetransition{\commalistelement}{0}}}
- {\expanded{\dosetpagetransition{\commalistelement}{\@@scwachttijd}}}%
- \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\blokje\\
-%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\relax
- \advance\scratchcounter by -#2\relax
- \advance\scratchcounter by 1\relax
- \leaders\vrule\hskip\!!zeropoint\!!plus \scratchcounter\!!fill
- \vrule\!!width\!!zeropoint\!!height#4\!!depth#5\relax
- \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\relax
- \advance\scratchcounter by -#2\relax
- \advance\scratchcounter by 1\relax
- \leaders\hrule\vskip\!!zeropoint\!!plus\scratchcounter\!!fill
- \hrule\!!width#4\!!height\!!zeropoint\!!depth\!!zeropoint
- \vskip\!!zeropoint\!!plus #3\!!fill
- \vskip\!!zeropoint\!!plus-#1\!!fill}}
-
-\newbox\commentbox
-
-\def\flushcomments%
- {\ifvoid\commentbox\else
- \inmarge{\hbox{\raise\ht\strutbox\box\commentbox}}%
- \fi}
-
-\def\stelcommentaarin%
- {\dodoubleargument\getparameters[\??cc]}
-
-\setvalue{\e!start\e!commentaar}% the dummy triple gobbles trailing spaces
- {\dotripleempty\dostartcommentaar}
-
-\def\dostartcommentaar[#1][#2][#3]%
- {\bgroup
- \doifassignmentelse{#1}
- {\getparameters[\??cc][#1]}
- {\getparameters[\??cc][\c!titel=#1,#2]}%
- \bgroup
- \obeylines
- \doif{\@@ccspatie}{\v!ja}{\obeyspaces}%
- \long\def\docommando##1%
- {\egroup
- \global\setbox\commentbox=\hbox
- {\!!widtha=\@@ccbreedte
- \!!heighta=\@@cchoogte
- \doinsertcomment
- {\@@cctitel}{\number\!!widtha}{\number\!!heighta}
- {\@@cckleur}{0}{\@@ccsymbool}{##1}%
- \hskip\ifvoid\commentbox\@@ccmarge\else\@@ccafstand\fi
- \box\commentbox
- \egroup}}%
- \grabuntil{\e!stop\e!commentaar}\docommando}
-
-\def\commentaar%
- {\dodoubleempty\docommentaar}
-
-\def\docommentaar[#1][#2]#3%
- {\bgroup
- \doifassignmentelse{#1}
- {\getparameters[\??cc][#1]}
- {\getparameters[\??cc][\c!titel=#1,#2]}%
- \!!widtha=\@@ccbreedte
- \!!heighta=\@@cchoogte
- \hbox to \!!zeropoint
- {\hskip-\@@ccmarge
- \raise\ht\strutbox\hbox
- {\doPDFinsertcomment
- {\@@cctitel}{\number\!!widtha}{\number\!!heighta}
- {\@@cckleur}{0}{\@@ccsymbool}{#3}}}%
- \egroup
- \ignorespaces}
-
-% \startcommentaar
-% hello beautiful\\world
-% \stopcommentaar
-%
-% \startcommentaar[hallo]
-% hello \<< \'e\'erste \>>
-% beautiful
-% world
-% \stopcommentaar
-%
-% \startcommentaar[hallo][kleur=groen,breedte=4cm,hoogte=3cm]
-% hello \<< \'e\'erste \>>
-% beautiful
-% world
-% \stopcommentaar
-%
-% \startcommentaar[hallo][kleur=groen,breedte=4cm,hoogte=3cm]
-% hello \<< \'e\'erste \>>
-%
-% beautiful
-%
-% world
-% \stopcommentaar
-%
-% \startcommentaar[symbool=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.
-% \stopcommentaar
-
-%D \macros
-%D {registermenubuttons}
-%D
-%D A still undocumented macro that generates a clickable
-%D alphabet to a register.
-
-\def\doregistermenubuttons[#1][#2]% [menu id] [register]
- {\bgroup
- \ifsecondargument
- \stelinteractiemenuin
- [#1][\c!onbekendeverwijzing=\v!ja,\c!zelfdepagina=\v!ja]%
- \def\docommando##1%
- {\noindent
- \menubutton[#1]{##1}[#2:##1]%
- \space}%
- \else
- \def\docommando##1%
- {\noindent
- \button[\c!onbekendeverwijzing=\v!ja,\c!zelfdepagina=\v!ja]{##1}[#1:##1]%
- \space}%
- \fi
- \handletokens abcdefghijklmnopqrstuvwxyz\with\docommando
- \egroup}
-
-\def\registermenubuttons%
- {\dodoubleempty\doregistermenubuttons}
-
-\definieerinteractiemenu
- [\v!rechts]
- [\v!rechts]
- [\c!voor=,
- \c!na=\vfil,
- \c!tussen=\blanko,
- \c!afstand=\bodyfontsize, % 12pt
- \c!links=\hss,
- \c!rechts=\hss,
- \c!breedte=\rechterrandbreedte,
- \c!hoogte=\v!ruim]
-
-\definieerinteractiemenu
- [\v!links]
- [\v!links]
- [\c!voor=,
- \c!na=\vfil,
- \c!tussen=\blanko,
- \c!afstand=\bodyfontsize, % 12pt
- \c!links=\hss,
- \c!rechts=\hss,
- \c!breedte=\linkerrandbreedte,
- \c!hoogte=\v!ruim]
-
-\definieerinteractiemenu
- [\v!onder]
- [\v!onder]
- [\c!voor=\vss,
- \c!na=\vss,
- \c!midden=\hfil,
- \c!afstand=\bodyfontsize, % 12pt
- \c!breedte=\v!passend,
- \c!hoogte=\v!ruim]
-
-\definieerinteractiemenu
- [\v!boven]
- [\v!boven]
- [\c!voor=\vss,
- \c!na=\vss,
- \c!midden=\hfil,
- \c!afstand=\bodyfontsize, % 12pt
- \c!breedte=\v!passend,
- \c!hoogte=\v!ruim]
-
-\stelinteractiemenuin
- [\v!links,\v!rechts,\v!boven,\v!onder]
- [\c!offset=.25em,
- \c!kader=\v!aan,
- \c!achtergrond=,
- \c!achtergrondkleur=,
- \c!achtergrondraster=\@@rsraster,
- \c!letter=\@@ialetter,
- \c!kleur=\@@iakleur,
- \c!contrastkleur=\@@iacontrastkleur,
- \c!status=\v!start,
- \c!zelfdepagina=\v!ja,
- \c!onbekendeverwijzing=\v!leeg,
- \c!bovenoffset=\!!zeropoint,
- \c!onderoffset=\!!zeropoint,
- \c!linkeroffset=\!!zeropoint,
- \c!rechteroffset=\!!zeropoint]
-
-%\stelbovenin [\v!tekst] [\c!middentekst={\interactiemenus[\v!boven]}]
-%\stelonderin [\v!tekst] [\c!middentekst={\interactiemenus[\v!onder]}]
-
-\def\plaatsrechterrandblok {\interactiemenus[\v!rechts]}
-\def\plaatslinkerrandblok {\interactiemenus[\v!links]}
-\def\plaatsboventekstblok {\interactiemenus[\v!boven]}
-\def\plaatsondertekstblok {\interactiemenus[\v!onder]}
-
-\def\plaatsboventekstblok%
- {\vbox to \bovenhoogte
- {\getvalue{\??tk\v!boven\v!tekst\c!voor}
- \interactiemenus[\v!boven]
- \getvalue{\??tk\v!boven\v!tekst\c!na}
- \kern\!!zeropoint}}
-
-\def\plaatsondertekstblok%
- {\vbox to \onderhoogte
- {\getvalue{\??tk\v!onder\v!tekst\c!voor}
- \interactiemenus[\v!onder]
- \getvalue{\??tk\v!onder\v!tekst\c!na}
- \kern\!!zeropoint}}
-
-\stelinteractieschermin
- [\c!breedte=\printpapierbreedte,
- \c!hoogte=\printpapierhoogte,
- \c!rugoffset=\!!zeropoint,
- \c!kopoffset=\!!zeropoint,
- \c!rugwit=\rugwit,
- \c!kopwit=\kopwit,
- \c!optie=\c!min,
- \c!wachttijd=\v!geen]
-
-\stelbuttonsin
- [\c!status=\v!start,
- \c!breedte=\v!passend,
- \c!hoogte=\v!ruim,
- \c!offset=0.25em,
- \c!kader=\v!aan,
- \c!achtergrond=,
- \c!achtergrondraster=\@@rsraster,
- \c!achtergrondkleur=,
- \c!letter=\@@ialetter,
- \c!kleur=\@@iakleur,
- \c!contrastkleur=\@@iacontrastkleur,
- \c!zelfdepagina=\v!ja,
- \c!onbekendeverwijzing=\v!ja]
-
-\stelinteractiebalkin
- [\c!status=\v!start,
- \c!variant=a,
- \c!symbool=\v!nee,
- \c!breedte=\rechterrandbreedte,
- \c!hoogte=, % these are taken care
- \c!diepte=, % of at calling time
- \c!afstand=.5em, % beter relateren aan breedte
- \c!stap=1,
- \c!kleur=\@@iakleur,
- \c!contrastkleur=\@@iacontrastkleur,
- \c!kader=\v!aan,
- \c!achtergrond=,
- \c!achtergrondraster=\@@rsraster,
- \c!achtergrondkleur=]
-
-\stelsynchronisatiebalkin
- [\c!variant=\v!pagina,
- \c!breedte=\rechterrandbreedte,
- \c!letter=\@@ialetter,
- \c!kleur=\@@iakleur,
- \c!achtergrond=,
- \c!achtergrondraster=\@@rsraster,
- \c!achtergrondkleur=]
-
-\stelsynchronisatiein
- [\c!status=\v!stop]
-
-\stelprofielenin
- [\c!optie=]
-
-\stelprogrammasin
- [\c!gebied=]
-
-\stelpaginaovergangenin
- [\v!reset]
-
-\stelcommentaarin
- [\c!marge=2.5em,
- \c!afstand=1em,
- \c!breedte=.3\tekstbreedte,
- \c!hoogte=.2\teksthoogte,
- \c!kleur=\@@iakleur,
- \c!titel=,
- \c!spatie=\v!nee,
- \c!symbool=\v!normaal]
-
-\stelversiesin % beware, @ is made active here,
- [\c!nummer=1, % therefore we set this one at the end
- \c!letter=\ss,
- \c!kleur=]
-
-\protect
-
-\endinput
diff --git a/tex/context/base/core-02a.tex b/tex/context/base/core-02a.tex
deleted file mode 100644
index b7f9ac411..000000000
--- a/tex/context/base/core-02a.tex
+++ /dev/null
@@ -1,198 +0,0 @@
-%D \module
-%D [ file=core-02a,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=2A (to be split),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Extra Macros (a)}
-
-\unprotect
-
-\startmessages dutch library: addresses
- title: adressen
- 1: --
- 2: hoofdbestand --
- 3: nevenbestand --
-\stopmessages
-
-\startmessages english library: addresses
- title: addresses
- 1: --
- 2: primary base --
- 3: secondary base --
-\stopmessages
-
-\startmessages german library: addresses
- title: Adressen
- 1: --
- 2: Haupbestand --
- 3: Nebenbestand --
-\stopmessages
-
-\startmessages czech library: addresses
- title: adresy
- 1: --
- 2: primarni baze --
- 3: sekundarni baze --
-\stopmessages
-
-%I n=Kontakten
-%I c=\laadkontakten
-%I
-%I De onderstaande commando's werken samen met het programma
-%I TeXAdres.
-%I
-%I \laadkontakten[naam,groep,...]
-%I
-%I Dit commando doorzoekt eerst de file 'texadres.tao' en
-%I vervolgens de file 'texadres.tae' op naam en groep. Bij
-%I elk gevonden adres (naam of groepslid) wordt het commando
-%I \doemetkontakt{logisch} aangeroepen.
-%I
-%I De waarden van de verschillende velden zijn op te roepen met
-%I het commando \kontaktwaarde{veldnaam}. Let op: het in
-%I bijvoorbeeld een adres opgenomen commando \\ moet men zelf
-%I definieren, bijvoorbeeld: \def\\{\endgraf}.
-%P
-%I TeXAdres zet alle files op een gebied met de extensie 'tai'
-%I om in een file met de extensie 'tao' of 'tae'. Een invoerfile
-%I is als volgt opgebouwd:
-%I
-%I Een adres in de uitvoerfile ziet er als volgt uit:
-%I
-%I \beginvankontakt{...}
-%I \lidvangroep{...,...,...}
-%I \naam{...}
-%I \letters{...}
-%I \...{...}
-%I \postadres{...}
-%I \eindvankontakt{...}
-%P
-%I De invoerfile bevat zowel definities van kontakten als van
-%I groepen.
-%I
-%I Een kontakt wordt als volgt gedefinieerd:
-%I
-%I < kontakt >
-%I
-%I [ logisch ] hagenj
-%I [ naam ] Hagen
-%I [ letters ] J.
-%I [ voornaam ] Hans
-%I [ titel ] heer
-%I [ telefoon ] 053 - 336934
-%I [ telefax ]
-%I [ postadres ] J. Hagen \\ Ridderstraat 27--29 \\ 8061 GH Hasselt
-%I [ info ] ach ja
-%P
-%I Een groep wordt als volgt gedefinieerd:
-%I
-%I < groep >
-%I
-%I [ logisch ] werkgroep
-%I [ naam ]
-%I [ lid ] ottenaf
-%I [ lid ] hagenj
-%I [ lid ] jonkerj
-%I [ lid ] marlecvan
-
-% In eerste instantie leek het werken met % voor te skippen
-% regels mij een aardige oplossing. Echter, het opslurpen van
-% een heel blok tot \eindvankontakt gaat net zo snel.
-%
-% Hoewel het mechanisme inmiddels uitstekend is te combineren
-% met het tekstblok-mechanisme, wordt vooralsnog deze snelle
-% variant gebruikt.
-%
-% Om conflicten te voorkomen met reeds gedefinieerde commando's,
-% zoals \naam, wordt enkele malen \bgroup..\egroup gebruikt.
-
-\newevery \everykontakt \EveryKontakt
-
-\def\stelkontaktenin[#1]%
- {\getparameters[\??kt][#1]}%
-
-\def\presetkontaktwaarde#1%
- {\setgvalue{\??kw#1}{}%
- \setvalue{#1}##1%
- {\setgvalue{\??kw#1}{##1}}}
-
-\def\resetkontaktwaarde#1%
- {\setgvalue{\??kw#1}{}%
- \setvalue{#1}##1%
- {\skipkontakt}}
-
-\def\kontaktwaarde#1%
- {\getvalue{\??kw#1}}
-
-\def\presetkontakt%
- {\rawprocesscommalist%
- [naam,letters,voornaam,titel,telefoon,telefax,postadres,info]%
- \presetkontaktwaarde}
-
-\def\resetkontakt%
- {\rawprocesscommalist%
- [naam,letters,voornaam,titel,telefoon,telefax,postadres,info]%
- \resetkontaktwaarde}
-
-\def\skipkontakt%
- {\long\def\next##1\eindvankontakt%
- {\def\next####1{\egroup}\next}%
- \next}
-
-\newif\ifkontaktok
-
-\let\doemetkontakt=\gobbleoneargument
-
-\def\laadkontakten[#1]%
- {\makerawcommalist[#1]\gevraagdekontakten
- \resetkontakt
- \doifelsenothing{\gevraagdekontakten}
- {\def\gevraagdekontakten{\v!alles}%
- \kontaktoktrue}
- {\kontaktokfalse}%
- \def\checkkontakt##1%
- {\rawdoifinsetelse{##1}{\gevraagdekontakten}{\kontaktoktrue}{}}%
- \def\lidvangroep##1%
- {\doifsomething{##1}
- {\rawprocesscommalist[##1]\checkkontakt}%
- \ifkontaktok
- \let\next=\presetkontakt
- \else
- \let\next=\skipkontakt
- \fi
- \next}%
- \def\beginvankontakt##1%
- {\bgroup
- \ifkontaktok
- \def\lidvangroep####1{}%
- \let\next=\presetkontakt
- \else
- \checkkontakt{##1}%
- \ifkontaktok
- \def\lidvangroep####1{}%
- \let\next=\presetkontakt
- \else
- \let\next=\relax
- \fi
- \fi
- \next}%
- \def\eindvankontakt##1%
- {\relax
- \egroup
- \the\everykontakt
- \doemetkontakt{##1}}%
- \showmessage{\m!addresses}{1}{\gevraagdekontakten}%
- \readsysfile{texadres.tao}{\showmessage{\m!addresses}{2}{(tao)}}{\relax}%
- \readjobfile{texadres.tae}{\showmessage{\m!addresses}{3}{(tae)}}{\relax}}
-
-\protect
-
-\endinput
diff --git a/tex/context/base/core-02b.tex b/tex/context/base/core-02b.tex
deleted file mode 100644
index 52428d1ed..000000000
--- a/tex/context/base/core-02b.tex
+++ /dev/null
@@ -1,171 +0,0 @@
-%D \module
-%D [ file=core-02b,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=2B (to be split),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Extra Macros (b)}
-
-\unprotect
-
-%I n=Karakters
-%I
-%I Het is mogelijk bij het definieren van tabellen gebruik
-%I te maken van speciale karakters:
-%I
-%I \starttabel[|l|c|r|]
-%I ÚÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄ¿
-%I ³ eerste ³ tweede ³ derde ³
-%I ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´
-%I ³ alfa ³ a ³ 1 ³
-%I ³ beta ³ b ³ 22 ³
-%I ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄ´
-%I ³ gamma ³ c ³ 333 ³
-%I ÀÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÙ
-%I \stoptabel
-%I
-%I Eventueel kunnen \starttabel en \stoptabel worden weggelaten.
-%P
-%I Naast \hoog en \laag kunnen (ook in de wiskunde-mode) de
-%I karakters  en  worden gebruikt: m2, x{23} enz.
-%P
-%I De volgende hoge ascii-karakters worden vertaald:
-%I
-%I Ÿ bedrag geen haakjes nodig, wel spaties
-
-\newcount\row
-\newcount\columns
-\newcount\column
-
-\newif\iffullrow
-
-\def\firstrow%
- {\ifintabel
- \HL
- \fi
- \global\row=0\relax
- \global\fullrowfalse}
-
-\def\nextrow%
- {\global\advance\column by 1\relax
- \ifnum\column=\columns
- \global\fullrowtrue
- \VL
- \else
- \iffullrow
- \global\column=1\relax
- \global\fullrowfalse
- \global\advance\row by 1\relax
- \ifnum\row=1
- \FR\VL
- \else
- \MR\VL
- \fi
- \else
- \VL
- \fi
- \fi}
-
-\def\lastrow%
- {\global\fullrowfalse
- \ifnum\row=0
- \global\row=0\relax
- \global\column=0\relax
- \SR\HL
- \else
- \global\row=0\relax
- \global\column=0\relax
- \LR\HL
- \fi}
-
-\def\firstcolumn%
- {\global\column=0\relax
- \global\columns=1}
-
-\def\nextcolumn%
- {\global\advance\columns by 1\relax}
-
-\newif\iflocalintabel
-\localintabelfalse
-
-\def\beginoftable%
- {\ifintabel
- \else\ifcase\columns\or
- \or\starttabel[|l|]\HL
- \or\starttabel[|l|l|]\HL
- \or\starttabel[|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|l|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|l|l|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|l|l|l|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|l|l|l|l|l|l|l|l|l|]\HL
- \or\starttabel[|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|]\HL
- \fi
- \global\localintabeltrue
- \fi}
-
-\def\endoftable%
- {\iflocalintabel
- \stoptabel
- \global\localintabelfalse
- \fi}
-
-% \catcode`\Ú=\@@active \defÚ{\firstrow\firstcolumn}
-% \catcode`\Ã=\@@active \defÃ{\lastrow}
-% \catcode`\À=\@@active \defÀ{\lastrow}
-%
-% \catcode`\¿=\@@active \def¿{\nextcolumn}
-% \catcode`\´=\@@active \def´{}
-% \catcode`\Ù=\@@active \defÙ{\endoftable}
-%
-% \catcode`\Â=\@@active \defÂ{\nextcolumn}
-% \catcode`\Å=\@@active \defÅ{}
-% \catcode`\Á=\@@active \defÁ{}
-%
-% \catcode`\³=\@@active \def³{\beginoftable\nextrow}
-% \catcode`\Ä=\@@active \defÄ{}
-
-\catcode`\Ú=\@@active \defÚ{\ifprocessingverbatim{ }\else\firstrow\firstcolumn\fi}
-\catcode`\Ã=\@@active \defÃ{\ifprocessingverbatim\char`|\else\lastrow\fi}
-\catcode`\À=\@@active \defÀ{\ifprocessingverbatim{ }\else\lastrow\fi}
-
-\catcode`\¿=\@@active \def¿{\ifprocessingverbatim{ }\else\nextcolumn\fi}
-\catcode`\´=\@@active \def´{\ifprocessingverbatim\char`|\else\fi}
-\catcode`\Ù=\@@active \defÙ{\ifprocessingverbatim{ }\else\endoftable\fi}%
-
-\catcode`\Â=\@@active \defÂ{\ifprocessingverbatim\char`-\else\nextcolumn\fi}
-\catcode`\Å=\@@active \defÅ{\ifprocessingverbatim\char`|\else\fi}
-\catcode`\Á=\@@active \defÁ{\ifprocessingverbatim\char`-\else\fi}
-
-\catcode`\³=\@@active \def³{\ifprocessingverbatim\char`|\else\beginoftable\nextrow\fi}
-\catcode`\Ä=\@@active \defÄ{\ifprocessingverbatim\char`-\else\fi}
-
-\catcode`\=\@@active
-\catcode`\=\@@active
-
-\def#1%
- {\ifprocessingverbatim\char`^\relax#1\else\ifmmode^{#1}\else\hoog{#1}\fi\fi}
-
-\def#1%
- {\ifprocessingverbatim\char`_\relax#1\ifmmode_{#1}\else\laag{#1}\fi\fi}
-
-\catcode`\Ÿ=\@@active
-
-\defŸ%
- {\ifprocessingverbatim f\else\bedrag{}~\ignorespaces\fi}
-
-\protect
-
-\endinput
diff --git a/tex/context/base/core-02d.tex b/tex/context/base/core-02d.tex
deleted file mode 100644
index d667a8079..000000000
--- a/tex/context/base/core-02d.tex
+++ /dev/null
@@ -1,49 +0,0 @@
-%D \module
-%D [ file=core-02d,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=2D (to be split),
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-\writestatus{loading}{Context Extra Macros (d)}
-
-\unprotect
-
-\def\definieerfilegroep%
- {\dodoubleargument\dodefinieerfilegroep}
-
-\def\dodefinieerfilegroep[#1][#2]%
- {\getparameters
- [\??fp#1]
- [\c!file=#1,
- \c!voor=,
- \c!na=,
- #2]%
- \setvalue{\e!start#1}{\dostartfilegroep[#1]}}
-
-\def\dostartfilegroep%
- {\dodoubleargument\dodostartfilegroep}
-
-\def\dodostartfilegroep[#1][#2]%
- {\getvalue{\??fp#1\c!voor}%
- \setvalue{\e!stop#1}{\dostopfilegroep[#1][#2]}%
- \edef\!!stringa{\getvalue{\??fp#1\c!file}-#2}%
- \@EA\dolaadfilegroep\@EA[\!!stringa]%
- \getvalue{\e!start#1#2}}
-
-\def\dolaadfilegroep[#1-#2#3#4#5]%
- {\readsysfile{#1-#2#3#4}{}{}}
-
-\def\dostopfilegroep[#1][#2]%
- {\getvalue{\e!stop#1#2}%
- \getvalue{\??fp#1\c!na}}
-
-\protect
-
-\endinput
diff --git a/tex/context/base/core-buf.tex b/tex/context/base/core-buf.tex
new file mode 100644
index 000000000..445abc564
--- /dev/null
+++ b/tex/context/base/core-buf.tex
@@ -0,0 +1,871 @@
+%D \module
+%D [ file=core-buf,
+%D version=2000.01.05,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Buffers and Blockmoves,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+% investigate etex's \readline and \scantokens
+
+\writestatus{loading}{Context Core Macros / Buffers and Blockmoves}
+
+\startmessages dutch library: textblocks
+ title: tekstblokken
+ 1: nieuwe versie, tweede run nodig
+ 2: wegschrijven blokken naar --
+ 3: inlezen blokken uit --
+ 4: er is een tweede run nodig
+ 5: -- niet verborgen
+ 6: -- verborgen en verwerkt
+ 7: -- verborgen
+ 8: -- gehandhaafd
+ 9: -- niet gehandhaafd
+ 10: -- geladen en verwerkt
+ 11: -- geladen en geplaatst
+ 12: -- overgeslagen
+\stopmessages
+
+\startmessages english library: textblocks
+ title: textblocks
+ 1: new version, second pass needed
+ 2: writing blocks to --
+ 3: reading blocks from --
+ 4: second pass needed
+ 5: -- not hidden
+ 6: -- hidden and processed
+ 7: -- hidden
+ 8: -- typeset
+ 9: -- not typeset
+ 10: -- loaded and processed
+ 11: -- loaded and typeset
+ 12: -- skipped
+\stopmessages
+
+\startmessages german library: textblocks
+ title: textblock
+ 1: neue Version, zweiter Durchlauf benoetigt
+ 2: schreibe Bloecke zu --
+ 3: lese Bloecke von --
+ 4: zweiter Durchlauf benoetigt
+ 5: -- nicht verborgen
+ 6: -- verborgen und verarbeitet
+ 7: -- verborgen
+ 8: -- gesetzt
+ 9: -- nicht gesetzt
+ 10: -- geladen und verarbeitet
+ 11: -- geladen und gesetzt
+ 12: -- ausgelassen
+\stopmessages
+
+\startmessages czech library: textblocks
+ title: textovyblok
+ 1: nova verze, je treba druhy beh
+ 2: zapisuji bloky do --
+ 3: ctu bloky z --
+ 4: je treba druhy beh
+ 5: -- neni skryto
+ 6: -- skryto a zpracovano
+ 7: -- skryto
+ 8: -- vysazeno
+ 9: -- nevysazeno
+ 10: -- nacteno a zpracovano
+ 11: -- nacteno a vysazeno
+ 12: -- preskoceno
+\stopmessages
+
+\unprotect
+
+% PAS OP!
+
+\def\checknummer#1%
+ {\bgroup
+%\message{\the\blocklevel}\wait
+ \ifdoingblocks
+ \doifelsevalue{\s!number#1\c!blokwijze}{\v!nee}
+ {\dochecknummer{#1}}
+ {\setblockcounters % dit kan sneller omdat de waarden
+ \dochecknummer{#1}}% % en het type bekend zijn
+ \else
+ \dochecknummer{#1}%
+ \fi
+ \egroup}
+
+\def\maakvoorafgaandenummer[#1]%
+ {\bgroup
+%\message{\the\blocklevel}\wait
+ \ifdoingblocks
+ \doifelsevalue{\s!number#1\c!blokwijze}{\v!nee}
+ {\domaakvoorafgaandenummer[#1]}%
+ {\setblockcounters % dit kan sneller omdat de waarden
+ \domaakvoorafgaandenummer[#1]}% % en het type bekend zijn
+ \else
+ \domaakvoorafgaandenummer[#1]%
+ \fi
+ \egroup}
+
+% \EveryPar%
+% {\doglobal\newcounter\NOfLines}
+%
+% \EveryLine%
+% {\doglobal\increment\NOfLines%
+% \hskip-3em%
+% \hbox to 3em{\hss\NOfLines\hskip1em}}
+
+\def\processnextbufferline#1#2#3%
+ {\relax % checken waarom eerdere macro dit nodig heeft / supp-mps run
+ \convertargument#1 \to\next
+ \ifx\next\emptybufferline
+ \ifsegmentatebuffer \emptybufferlinetrue \fi
+ \def\next{#3}%
+ \else
+ \emptybufferlinefalse
+ \doifinstringelse{\endofblock}{\next}
+ {\ifnum\nestedbufferlevel=0\relax % \relax ?
+ \def\next{#2}%
+ \else
+ \decrement\nestedbufferlevel\relax
+ \def\next{#3}%
+ \fi}
+ {\doifinstringelse{\beginofblock}{\next}
+ {\increment\nestedbufferlevel\relax
+ \def\next{#3}}
+ {\def\next{#3}}}%
+ \fi
+ \next}
+
+\def\dostartbuffer%
+ {\bgroup
+ \obeylines % nodig, anders gaat 't fout als direct \starttabel (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!alinea}{\v!ja}
+ {\segmentatebuffertrue}
+ {\doifnumberelse{\getvalue{\??bu#1\c!alinea}}
+ {\segmentatebuffertrue}
+ {\segmentatebufferfalse}}%
+ \doifelse{#4}{}
+ {\letbeundefined{\e!stop\e!buffer}% % \let\stopbuffer=\relax % \undefined
+ \@EA\@EA\@EA\convertargument\@EA\e!start\e!buffer\to\beginofblock % else a space
+ \@EA\@EA\@EA\convertargument\@EA\e!stop\e!buffer\to\endofblock
+ \let\processnextblockline=\processnextbufferline}
+ {\letbeundefined{#4}% \letvalue{#4}=\relax % \undefined
+ \@EA\convertargument\csname#3\endcsname\to\beginofblock
+ \@EA\convertargument\csname#4\endcsname\to\endofblock}%
+ \def\closeblock%
+ {\ifsegmentatebuffer
+ \immediate\write\tmpblocks{\string\stopbufferparagraph}%
+ \fi
+ \immediate\closeout\tmpblocks
+ \egroup
+ \getvalue{#4}}%
+ \doifelsenothing{#2}
+ {\immediate\openout\tmpblocks=\TEXbufferfile{\jobname}}
+ {\immediate\openout\tmpblocks=\TEXbufferfile{#2}}%
+ \ifsegmentatebuffer
+ \immediate\write\tmpblocks{\string\startbufferparagraph}%
+ \fi
+ \newcounter\nestedbufferlevel
+ \setupcopyblock
+ \let\writeoutblocks\gobbleoneargument
+ \copyblockline}
+
+\letvalue{\e!start\e!buffer}\dostartbuffer
+
+% \setbuffer[name]#2\endbuffer : saves to file #1.tmp
+
+\def\setbuffer[#1]#2\endbuffer%
+ {\immediate\openout\tmpblocks=\TEXbufferfile{#1}%
+ \convertargument#2\to\ascii
+ \immediate\write\tmpblocks{\ascii}%
+ \immediate\closeout\tmpblocks}
+
+\def\dobuffer#1[#2]#3%
+ {\def\dodobuffer##1%
+ {\showmessage{\m!systems}{#1}{##1}%
+ \beginrestorecatcodes
+ \doifdefinedelse{\??bu##1\c!nummer}
+ {#3{\TEXbufferfile{def-\getvalue{\??bu##1\c!nummer}}}{}{}}
+ {#3{\TEXbufferfile{##1}}{}{}}%
+ \endrestorecatcodes}%
+ \doifelsenothing{#2}
+ {\dodobuffer\jobname}
+ {\processcommalist[#2]\dodobuffer}}
+
+\def\haalbuffer%
+ {\dodoubleempty\dohaalbuffer}
+
+\def\dohaalbuffer[#1][#2]%
+ {\ifsecondargument
+ \dodohaalbuffer[#1][#2]%
+ \else
+ \dodohaalbuffer[][#1]%
+ \fi}
+
+\def\dodohaalbuffer[#1][#2]%
+ {\getvalue{\??bu#1\c!voor}%
+ \dobuffer{16}[#2]\readjobfile
+ \getvalue{\??bu#1\c!na}}
+
+\def\typebuffer%
+ {\dodoubleempty\dotypebuffer}
+
+\def\dotypebuffer[#1][#2]%
+ {\iffirstargument
+ \dobuffer{17}[#1]\typefile
+ \else
+ \dobuffer{17}[#2]\typefile
+ \fi}
+
+\def\stelbufferin%
+ {\dodoubleempty\dostelbufferin}
+
+\def\dostelbufferin[#1][#2]%
+ {\ifsecondargument
+ \getparameters[\??bu#1][#2]%
+ \else
+ \getparameters[\??bu][#1]%
+ \fi}
+
+\def\dodefinieerbuffer[#1]%
+ {\iffirstargument % else problems
+ \doglobal\increment\nofdefinedbuffers
+ \setevalue{\??bu#1\c!nummer}{\nofdefinedbuffers}%
+ \setvalue {\??bu#1\c!alinea}{\v!nee}%
+ \setevalue{\e!start#1}%
+ {\noexpand\dostartbuffer[#1][def-\nofdefinedbuffers][\e!start#1][\e!stop#1]}%
+ \setevalue{\e!haal#1}%
+ {\noexpand\dodohaalbuffer[#1][def-\nofdefinedbuffers]}%
+ \setevalue{\e!type#1}%
+ {\noexpand\dodotypebuffer[#1][def-\nofdefinedbuffers]}%
+ \fi}
+
+\def\definieerbuffer%
+ {\dosingleargument\dodefinieerbuffer}
+
+% TODO: no grouping due to sidefloats
+
+\expandafter \convertargument \gobbleoneargument @ \to \emptybufferline
+
+\newif\ifsegmentatebuffer
+\newif\ifemptybufferline
+
+\def\skippedbufferparagraphs{0}
+
+\let\startbufferparagraph\relax
+\let\stopbufferparagraph \par % \relax
+
+\newcount\currentbufferparagraph
+
+\def\getbufferparagraphs%
+ {\dodoubleempty\dogetbufferparagraphs}
+
+\def\dosetbufferoffset#1%
+ {\doifnumberelse{\getvalue{\??bu#1\c!alinea}}
+ {\currentbufferparagraph=-\getvalue{\??bu#1\c!alinea}}
+ {\currentbufferparagraph=0}%
+ \relax}
+
+\def\dogetbufferparagraphs[#1][#2]%
+ {\iffirstargument
+ \ifsecondargument
+ \dosetbufferoffset{#1}%
+ \doifelse{#2}{\v!alles}
+ {\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\getparagraphedbuffer[#1]%
+ {\dobuffer{16}[#1]\readjobfile}
+
+\def\dostopbufferparagraph#1%
+ {\getvalue{\??bu#1\c!na}\par}
+
+\def\dostartbufferparagraph#1%
+ {\par\getvalue{\??bu#1\c!voor}}
+
+\def\normalbufferparagraph%
+ {\advance\currentbufferparagraph 1
+ \ifnum\currentbufferparagraph>0
+ \expandafter\dostartbufferparagraph
+ \else
+ \expandafter\gobbleoneargument
+ \fi}
+
+\def\filterbufferparagraph#1#2%
+ {\advance\currentbufferparagraph 1
+ \ifnum\currentbufferparagraph>0
+ \doifinsetelse{\the\currentbufferparagraph}{#2}
+ {\let\next\dostartbufferparagraph}
+ {\let\next\fakebufferparagraph}%
+ \else
+ \let\next\gobblebufferparagraph
+ \fi
+ \next{#1}}
+
+\long\def\gobblebufferparagraph#1#2\stopbufferparagraph%
+ {}
+
+\def\fakebufferparagraph#1%
+ {\bgroup
+ \def\stopbufferparagraph{\dostopbufferparagraph{#1}\egroup\egroup}%
+ \setbox\scratchbox=\vbox\bgroup\dostartbufferparagraph{#1}}
+
+\def\blockversion {1996.03.10}
+
+\def\@@blockerrormessage%
+ {\showmessage{\m!textblocks}{1}{}%
+ \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]#3%
+ {\setvalue{\??se\s!old#3}{#1}%
+ \doifnot{#3}{\lastsection}
+ {\dodosetblockcounters[#2:0]{\getvalue{\??se#3\c!na}}}}
+
+\def\dosetblockcounters[#1#2::#3]%
+ {\ifblockpermitted
+ \dodosetblockcounters[#3:0]\firstsection
+ \setsectiontype[#1]%
+ \def\@@sectionvalue##1{\getvalue{\??se\s!old##1}}%
+ \def\@@sectionconversion##1##2{##2}% to get rid of {##2}
+ \fi}
+
+\let\blockstatus\empty
+
+\def\setblockcounters%
+ {\ifx\blockstatus\empty \else
+ \@EA\dosetblockcounters\@EA[\blockstatus]%
+ \fi}
+
+\def\getblockstatus#1%
+ {\dosetblklevel{\getvalue{\??by\@@bscriterium}}%
+ \doifblklevelelse[#1]
+ {\global\blockpermittedtrue}
+ {\global\blockpermittedfalse}%
+ \def\blockstatus{#1}}
+
+\def\setupblockparameters%
+ {\dodoubleargument\dosetupblockparameters}
+
+\def\dosetupblockparameters[#1][#2]%
+ {\getparameters[\??tb#1][#2]}
+
+\beginTEX
+
+\def\blockparameter#1#2%
+ {\csname\@EA\ifx\csname\??tb#1#2\endcsname\relax empty\else\??tb#1#2\fi\endcsname}
+
+\endTEX
+
+\beginETEX \ifcsname
+
+\def\blockparameter#1#2%
+ {\@EA\csname\ifcsname\??tb#1#2\endcsname\??tb#1#2\else empty\fi\endcsname}
+
+\endETEX
+
+\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\ifvisible \visibletrue
+\newif\ifblockpermitted
+\newif\iftmpblockstarted
+\newif\ifoldinbijlagen
+\newif\ifdoingblocks
+
+\newcount\blocklevel \blocklevel=0
+
+\def\setblocklevel#1%
+ {\global\advance\blocklevel by #11
+ \ifnum\blocklevel>2\relax\doingblockstrue\else\doingblocksfalse\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
+ \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}
+
+\def\startcopyingblocks%
+ {\global\copyingblocksfalse}
+
+\def\checkcopyingblocks%
+ {\ifcopyingblocks
+ \else
+ \immediate\openout\outblocks\f!utilityfilename.\f!blockextension
+ \immediate\write\outblocks{\string\thisisblockversion{\blockversion}}%
+ \global\copyingblockstrue
+ \fi}
+
+\def\stopcopyingblocks%
+ {\ifcopyingblocks
+ \immediate\closeout\outblocks
+ \copyblockfile
+ \global\copyingblocksfalse
+ \fi}
+
+\def\geenblokkenmeer%
+ {\stopcopyingblocks}
+
+\def\copyblockfile
+ {\ifcopyingblocks
+ \begingroup
+ \showmessage{\m!textblocks}{2}{\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!textblocks}{3}{#1.\f!blockextension}}
+ {\showmessage{\m!textblocks}{4}{}}%
+ \endrestorecatcodes}
+
+\def\setupcopyblock%
+ {\dostepwiserecurse{1}{255}{1}{\catcode\recurselevel=\@@other}%
+ \obeylines}
+
+\def\writeoutblocks%
+ {\immediate\write\outblocks}
+
+\def\processnextblocklineAB#1#2#3%
+ {\convertargument#1 \to\next
+ \doifinstringelse{\endofblockA}{\next}
+ {\def\next{#2}}
+ {\doifinstringelse{\endofblockB}{\next}
+ {\def\next{#2}}
+ {\def\next{#3}}}%
+ \next}
+
+\bgroup
+\obeylines
+\gdef\copyblocklineAB#1
+ {\processnextblocklineAB{#1}%
+ {\closeblock}%
+ {\writeoutblocks{#1}%
+ \writetmpblock{#1}%
+ \copyblocklineAB}}
+\gdef\skipblocklineAB#1
+ {\processnextblocklineAB{#1}%
+ {\closeblock}%
+ {\skipblocklineAB}}
+\egroup
+
+\def\processnextblockline#1#2#3%
+ {\convertargument#1 \to\next
+ \ifx\next\emptybufferline
+ \ifsegmentatebuffer \emptybufferlinetrue \fi
+ \def\next{#3}%
+ \else
+ \emptybufferlinefalse
+ \doifinstringelse{\endofblock}{\next}
+ {\def\next{#2}}
+ {\def\next{#3}}%
+ \fi
+ \next}
+
+\bgroup
+\obeylines
+\gdef\copyblockline#1
+ {\processnextblockline{#1}%
+ {\closeblock}%
+ {\writeoutblocks{#1}%
+ \writetmpblock{#1}%
+ \copyblockline}}
+\gdef\skipblockline#1
+ {\processnextblockline{#1}%
+ {\closeblock}%
+ {\skipblockline}}
+\egroup
+
+\def\skipblock#1%
+ {\checkcopyingblocks
+ \@EA\convertargument\string\thiswasblock{#1}\to\endofblock
+%testen : \expanded{\convertargument\string\thiswasblock{#1}\noexpand\to\noexpand\endofblock}%
+ \let\openblock=\begingroup
+ \let\closeblock=\endgroup
+ \openblock
+ \setupcopyblock
+ \skipblockline}
+
+\def\doafterblock#1#2{}
+\def\dobeforeblock#1#2{}
+
+\def\thisisblock#1%
+ {\executeifdefined{\s!thisisblock#1}{\skipblock{#1}}}
+
+\def\thiswasblock#1%
+ {\getvalue{\s!thiswasblock#1}}
+
+\def\saveblock#1#2%
+ {\checkcopyingblocks
+ \obeylines
+ \@EA\@EA\@EA\convertargument\@EA\string\csname\e!eindvan#1\endcsname\to\endofblockA
+%testen: \expanded{\convertargument\string\csname\e!eindvan#1\endcsname\to\endofblockA}%
+ \@EA\convertargument\string\eindvanblok[#1]\to\endofblockB % 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}{}{}%
+ \setblocklevel-}%
+
+\def\dodefinieerblok[#1]%
+ {\passeerblok[#1]%
+ \handhaafblokken[#1]%
+ \stelblokin
+ [#1]
+ [\c!voor=\blanko,
+ \c!na=\blanko,
+ \c!binnen=,
+ \c!letter=,
+ \c!file=\jobname]}
+
+\def\definieerblok%
+ {\dosingleargumentwithset\dodefinieerblok}
+
+\def\dostelblokin[#1][#2]%
+ {\getparameters[\??tb#1][#2]}
+
+\def\stelblokin%
+ {\dodoubleargumentwithset\dostelblokin}
+
+\def\passeerblok[#1]%
+ {\setvalue{\s!thisisblock#1}##1[##2]%
+ {\skipblock{#1}}}
+
+\def\doverbergblok[#1][#2][#3]%
+ {\doifassignmentelse{#3}
+ {\def\next{\dodoverbergblok[#1][#2][][#3]}}
+ {\def\next{\dodoverbergblok[#1][#2][#3][]}}%
+ \next}
+
+\def\dodoverbergblok[#1][#2][#3][#4]%
+ {\doifelsenothing{#2}
+ {\global\blockpermittedfalse
+ \edef\bloktitel{#1}}
+ {\doifelsenothing{#3}
+ {\global\blockpermittedtrue
+ \edef\bloktitel{#1}}
+ {\doifcommonelse{#2}{#3}
+ {\global\blockpermittedfalse
+ \edef\bloktitel{#1:#2}}
+ {\global\blockpermittedtrue
+ \edef\bloktitel{#1:#3}}}}%
+ \ifblockpermitted
+ \showwarning{\m!textblocks}{5}{\bloktitel}%
+ \def\next%
+ {\def\dobeforeblock####1####2%
+ {\begingroup}%
+ \def\doafterblock####1####2%
+ {\endgroup
+ \doexecuteloadedblock{#1}{#4}}%
+ \saveblock{#1}{#3#4}}%
+ \else
+ \doifinsetelse{+}{#3}
+ {\showwarning{\m!textblocks}{6}{\bloktitel}%
+ \def\next%
+ {\def\dobeforeblock####1####2%
+ {\begingroup
+ \global\visiblefalse}%
+ \def\doafterblock####1####2%
+ {{\setbox0=\vbox
+ {\catcode`\^^M=\@@endofline\relax
+ \loadoneblock
+ \par}}%
+ \endgroup}%
+ \saveblock{#1}{#3#4}}}%
+ {\showwarning{\m!textblocks}{7}{\bloktitel}%
+ \def\next%
+ {\def\dobeforeblock####1####2%
+ {\begingroup
+ \globaldefs=-1\relax}%
+ \def\doafterblock####1####2%
+ {\endgroup}%
+ \copyblock{#1}{#3#4}}}%
+ \fi
+ \next}
+
+\def\doverbergblokken[#1][#2]%
+ {\def\docommando##1%
+ {\setvalue{\e!beginvan##1}%
+ {\bgroup\obeylines\dotripleempty\doverbergblok[##1][#2]}}%
+ \processcommalist[#1]\docommando}
+
+\def\verbergblokken%
+ {\dodoubleempty\doverbergblokken}
+
+\def\doexecuteloadedblock#1#2%
+ {\blockpermittedtrue % ?
+ \bgroup % before \c!voor (think of: \c!voor=\startitemize)
+ \dosetupblockparameters[#1][#2]% voor 'voor'?
+ \getvalue{\??tb#1\c!voor}%
+ \doattributes{\??tb#1}\c!letter\c!kleur{}%
+ \visibletrue
+ \catcode`\^^M=\@@endofline\relax
+ \getvalue{\??tb#1\c!binnen}%
+ \loadoneblock
+ \par
+ \getvalue{\??tb#1\c!na}
+ \egroup}
+
+\def\dohandhaafblok[#1][#2][#3]%
+ {\doifassignmentelse{#3}
+ {\def\next{\dodohandhaafblok[#1][#2][][#3]}}
+ {\def\next{\dodohandhaafblok[#1][#2][#3][]}}%
+ \next}
+
+\def\dodohandhaafblok[#1][#2][#3][#4]%
+ {\doifelsenothing{#2}
+ {\global\blockpermittedtrue
+ \edef\bloktitel{#1}}
+ {\doifcommonelse{#2}{#3}
+ {\global\blockpermittedtrue
+ \edef\bloktitel{#1:#2}}
+ {\doifinsetelse{\v!alles}{#2}
+ {\doifelse{#3}{}
+ {\global\blockpermittedtrue
+ \edef\bloktitel{#1}}
+ {\global\blockpermittedfalse
+ \edef\bloktitel{#1:#3}}}
+ {\global\blockpermittedfalse
+ \doifelse{#3}{}
+ {\edef\bloktitel{#1}}
+ {\edef\bloktitel{#1:#3}}}}}%
+ \ifblockpermitted
+ \showwarning{\m!textblocks}{8}{\bloktitel}%
+ \def\dobeforeblock##1##2%
+ {\begingroup}%
+ \def\doafterblock##1##2%
+ {\endgroup
+ \doexecuteloadedblock{#1}{#4}}%
+ \else
+ \showwarning{\m!textblocks}{9}{\bloktitel}%
+ \fi
+ \saveblock{#1}{#3#4}}
+
+\def\dohandhaafblokken[#1][#2]%
+ {\def\docommando##1%
+ {\setvalue{\e!beginvan##1}%
+ {\bgroup\obeylines\dotripleempty\dohandhaafblok[##1][#2]}}%
+ \processcommalist[#1]\docommando}
+
+\def\handhaafblokken%
+ {\dodoubleempty\dohandhaafblokken}
+
+\newconditional\processblockstatus
+\newconditional\dummyblockstatus
+\newconditional\blockassignmentstatus
+
+\def\dodogebruikblok#1#2#3#4%
+ {\getblockstatus{#2}%
+ \ifblockpermitted
+ \setfalse\dummyblockstatus
+ \doifassignmentelse{#3}
+ {\settrue \blockassignmentstatus}
+ {\setfalse\blockassignmentstatus}%
+ \doifelsenothing{#4}
+ {\edef\bloktitel{#1}}
+ {\ifconditional\blockassignmentstatus
+ \edef\bloktitel{#1}%
+ \else
+ \doifnotcommon{#3}{#4}
+ {\ifconditional\processblockstatus
+ \settrue\dummyblockstatus
+ \else
+ \global\blockpermittedfalse
+ \fi}%
+ \edef\bloktitel{#1:#3}%
+ \fi}%
+ \else
+ \edef\bloktitel{#1}%
+ \fi
+ \ifblockpermitted
+ \setblocklevel+%
+ \ifconditional\blockassignmentstatus \else
+ \doifinset{-}{#3}{\settrue\dummyblockstatus}%
+ \fi
+ \ifconditional\dummyblockstatus
+ \showwarning{\m!textblocks}{10}{\bloktitel}%
+ \setvalue{\s!thiswasblock#1}%
+ {\par
+ \egroup
+ \setblocklevel-}%
+ \def\next%
+ {\setbox0=\vbox\bgroup
+ \ifconditional\blockassignmentstatus
+ \dosetupblockparameters[#1][#3]%
+ \fi}%
+ \else
+ \showwarning{\m!textblocks}{11}{\bloktitel}%
+ \setvalue{\s!thiswasblock#1}%
+ {\par
+ \getvalue{\??tb#1\c!na}%
+ \egroup
+ \setblocklevel-}%
+ \def\next%
+ {\bgroup
+ \ifconditional\blockassignmentstatus
+ \dosetupblockparameters[#1][#3]%
+ \fi
+ \getvalue{\??tb#1\c!voor}%
+ \doattributes{\??tb#1}\c!letter\c!kleur{}%
+ \visibletrue
+ \getvalue{\??tb#1\c!binnen}}%
+ \fi
+ \else
+ \def\next%
+ {\showwarning{\m!textblocks}{12}{\bloktitel}%
+ \skipblock{#1}}%
+ \fi
+ \next}
+
+\def\dogebruikblok[#1][#2]%
+ {\setvalue{\s!thisisblock#1}##1[##2]%
+ {\dodogebruikblok{#1}{##1}{##2}{#2}}}
+
+\def\dodogebruikblokken[#1][#2]%
+ {\def\docommando##1%
+ {\dogebruikblok[##1][#2]}%
+ \processcommalist[#1]\docommando
+ \dogetcommalistelement1\from#1\to\commalistelement
+ \doifdefined{\??tb\commalistelement\c!file}
+ {\loadallblocks{\getvalue{\??tb\commalistelement\c!file}}}%
+ \endgroup}
+
+\def\dogebruikblokken%
+ {\begingroup
+ \doassign[\??bs][\c!criterium=\v!alles]%
+ \dodoubleempty\dodogebruikblokken}
+
+\def\gebruikblokken%
+ {\setfalse\processblockstatus\dogebruikblokken}
+
+\def\verwerkblokken%
+ {\settrue \processblockstatus\dogebruikblokken}
+
+\def\doselecteerblokken[#1][#2][#3]%
+ {\doifelsenothing{#3}
+ {\getparameters[\??bs][#2]%
+ \dogebruikblokken[#1][]}
+ {\getparameters[\??bs][#3]%
+ \dogebruikblokken[#1][#2]}}%
+
+\def\selecteerblokken%
+ {\begingroup
+ \doassign[\??bs][\c!criterium=\v!alles]%
+ \dotripleempty\doselecteerblokken}
+
+\def\beginvanblok[#1]% % er wordt ook gechecked op \eindvanblok[..]
+ {\getvalue{\e!beginvan#1}}
+
+% the buffer mechanism handles nesting, add some switch
+
+\setvalue{\e!start\e!verbergen}%
+ {\dostartbuffer[buf-\nofpostponedblocks]
+ [\e!start\e!verbergen][\e!stop\e!verbergen]}
+
+\stelbufferin
+ [\c!alinea=\v!nee,
+ \c!voor=,
+ \c!na=]
+
+\protect \endinput
diff --git a/tex/context/base/core-con.tex b/tex/context/base/core-con.tex
index 7acd94912..b378db9d9 100644
--- a/tex/context/base/core-con.tex
+++ b/tex/context/base/core-con.tex
@@ -246,40 +246,29 @@
\def\getdayoftheweek#1#2#3%
{\bgroup
- \!!counta=\ifcase#2\relax
- 0\or 0\or 31\or 59\or 90\or120\or151\or
- 181\or212\or243\or273\or304\or334\or365\fi
- \advance\!!counta by #1\relax
- \ifnum\!!counta<31
- \DoMod#3by4to\!!countb
- \ifnum\!!countb=0
- \!!doneafalse
- \DoMod#3by100to\!!countb
- \ifnum\!!countb=0 \else \!!doneatrue \fi
- \DoMod#3by400to\!!countb
- \ifnum\!!countb=0 \!!doneatrue \fi
- \else
- \!!doneafalse
- \fi
- \else
- \!!doneafalse
+ \!!counta=#3\relax
+ \advance\!!counta -1
+ \!!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
- \!!countb=#3\relax
- \multiply\!!countb by 365
- \advance\!!counta by \!!countb
- \DoDiv#3by4to\!!countb
- \advance\!!counta by \!!countb
- \DoDiv#3by400to\!!countb
- \advance\!!counta by \!!countb
- \DoDiv#3by100to\!!countb
- \advance\!!counta by -\!!countb
- \if!!donea
- \advance\!!counta by -1
- \fi
- \advance\!!counta by -1
- \DoMod\!!counta by7to\!!counta
- \advance\!!counta by 1
- \@EA\egroup\@EA\normalweekday\the\!!counta\relax}
+ \!!countc=\!!counta
+ \DoDiv\!!countc by4to\!!countc
+ \advance\!!countb \!!countc
+ \!!countc=\!!counta
+ \DoDiv\!!countc by100to\!!countc
+ \advance\!!countb -\!!countc
+ \!!countc=\!!counta
+ \DoDiv\!!countc by400to\!!countc
+ \advance\!!countb \!!countc
+ \DoMod\!!countb by7to\!!countb
+ \advance\!!countb 1
+ \@EA\egroup\@EA\normalweekday\the\!!countb\relax}
\def\dayoftheweek#1#2#3%
{\getdayoftheweek{#1}{#2}{#3}\doconvertday{\normalweekday}}
@@ -440,6 +429,8 @@
%D \haalbuffer
%D \stopregels
+\def\kenmerkdatumpatroon{j,mm,dd} % jj,mm,dd changed at januari 1-1-2000
+
\def\complexcurrentdate[#1]%
{\bgroup
\let\labellanguage=\currentlanguage
@@ -455,7 +446,7 @@
j=>\the\normalyear,
y=>\the\normalyear,
w=>\betweendates\dayoftheweek\normalday\normalmonth\normalyear,
- \v!kenmerk=>{\complexcurrentdate[jj,mm,dd]},
+ \v!kenmerk=>\expanded{\complexcurrentdate[\kenmerkdatumpatroon]},
\v!dag=>\betweendates\the\normalday,
\v!maand=>\betweendates\month\normalmonth,
\v!MAAND=>\betweendates\MONTH\normalmonth,
diff --git a/tex/context/base/core-des.tex b/tex/context/base/core-des.tex
new file mode 100644
index 000000000..c28867ae2
--- /dev/null
+++ b/tex/context/base/core-des.tex
@@ -0,0 +1,860 @@
+%D \module
+%D [ file=core-des,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Descriptions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Core Macros / Descriptions}
+
+\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. Het commando
+% \??dd#1\s!do\c!status moet in dat geval \v!start zijn.
+%
+% herimplementeren met \nextbox en \unhbox\unvbox
+
+\newbox\@@definitiebox
+
+\def\@@definitiewoord#1%
+ {\getvalue{\??dd#1\s!do\c!commando}{#1}}
+
+\def\normal@@definitiewoord#1[#2]#3#4%
+ {\doattributes
+ {\??dd#1}\c!kopletter\c!kopkleur
+ {\getvalue{\??dd#1\c!commando}% NAAR BUITENSTE NIVEAU !
+ {\begstrut\getvalue{\??dd#1\c!tekst}#4\endstrut}}%
+ \rawreference{\s!def}{#2}{#3}}
+
+\setvalue{@@definitie\v!links}#1%
+ {\@@definitiehang{#1}\@@definitielinkspure\@@definitielinkshang}
+
+\setvalue{@@definitie\v!rechts}#1%
+ {\@@definitiehang{#1}\@@definitierechtspure\@@definitierechtshang}
+
+\def\@@definitiehang#1#2#3%
+ {\processaction
+ [\getvalue{\??dd#1\c!hang}]
+ [ \v!geen=>\let\next=#2,
+ 0=>\let\next=#2,
+ \s!unknown=>\let\next=#3,
+ \s!default=>\let\next=#2]%
+ \next{#1}}
+
+% \def\@@definitielinkspure#1[#2]#3%
+% {\@@dostartdefinitie{#1}[#2]{#3}%
+% \advance\leftskip by \!!widtha
+% \@@makedefinitiepurebox{#1}\raggedright%
+% \advance\leftskip by \!!widthb
+% \llap
+% {\hbox to \leftskip{\copy\@@definitiebox\hss}}% copy ?
+% \@@dodefinitie{#1}}
+%
+% \def\@@definitierechtspure#1[#2]#3%
+% {\@@dostartdefinitie{#1}[#2]{#3}%
+% \advance\rightskip by \!!widtha
+% \@@makedefinitiepurebox{#1}\raggedleft%
+% \rlap
+% {\hskip\hsize
+% \hskip-\leftskip
+% \hskip-\rightskip
+% \copy\@@definitiebox}%
+% \advance\rightskip by \!!widthb
+% \@@dodefinitie{#1}}
+
+\def\@@definitielinkspure#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \leftskip\@@leftdefinitieskip
+ \rightskip\@@rightdefinitieskip
+ \advance\leftskip by \!!widtha
+ \@@makedefinitiepurebox{#1}\raggedright
+ \advance\leftskip by \!!widthb
+ \llap
+ {\hbox to \leftskip
+ {\hskip\@@leftdefinitieskip
+ \copy\@@definitiebox\hss}}%
+ \@@dodefinitie{#1}}
+
+\def\@@definitierechtspure#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \leftskip\@@leftdefinitieskip
+ \rightskip\@@rightdefinitieskip
+ \advance\rightskip by \!!widtha
+ \@@makedefinitiepurebox{#1}\raggedleft
+ \rlap
+ {\hskip\hsize
+ \hskip-\leftskip
+ \hskip-\rightskip
+ \copy\@@definitiebox
+ \hskip\@@rightdefinitieskip}%
+ \advance\rightskip by \!!widthb
+ \@@dodefinitie{#1}}
+
+\def\@@makedefinitiepurebox#1#2%
+ {\setbox\@@definitiebox=\vtop
+ {\mindermeldingen
+ \hsize\!!widtha
+ \leftskip\!!zeropoint
+ \rightskip\!!zeropoint
+ #2\steluitlijnenin[\getvalue{\??dd#1\c!uitlijnen}]%
+ \unhcopy\@@definitiebox}%
+ \ht\@@definitiebox=\ht\strutbox
+ \dp\@@definitiebox=\dp\strutbox}
+
+\def\@@definitielinkshang#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \mindermeldingen
+ \advance\!!widtha by \!!widthb
+ \hangindent=\!!widtha
+ \@@makedefinitiehangbox{#1}{\raggedright}{\advance\rightskip by \!!widthb}%
+ \llap
+ {\dontshowcomposition
+ \vtop to \!!zeropoint{\box\@@definitiebox}}%
+ \@@dodefinitie{#1}}%
+
+\def\@@definitierechtshang#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \mindermeldingen
+ \advance\!!widtha by \!!widthb
+ \hangindent=-\!!widtha
+ \@@makedefinitiehangbox{#1}{\raggedleft}{\advance\leftskip by \!!widthb}%
+ \rlap
+ {\mindermeldingen
+ \dontshowcomposition
+ \dimen0=\hsize
+ \advance\dimen0 by -\leftskip
+ \advance\dimen0 by -\rightskip
+ \hbox to \dimen0
+ {\hss\vtop to \!!zeropoint{\box\@@definitiebox}}}%
+ \@@dodefinitie{#1}}
+
+\def\@@makedefinitiehangbox#1#2#3%
+ {\setbox\@@definitiebox=\vtop % \vbox gaat fout in hang
+ {\forgetall
+ \mindermeldingen
+ \hsize\!!widtha
+ #2\steluitlijnenin[\getvalue{\??dd#1\c!uitlijnen}]#3%
+ \unhcopy\@@definitiebox}%
+ \ht\@@definitiebox=\ht\strutbox
+ \dp\@@definitiebox=\dp\strutbox
+ \doifinsetelse{\getvalue{\??dd#1\c!hang}}{\v!passend,\v!ruim}
+ {\dimen0=\ht\@@definitiebox
+ \advance\dimen0 by \dp\@@definitiebox
+ \doifvalue{\??dd#1\c!hang}{\v!ruim}
+ {\advance\dimen0 by .5\ht\strutbox}%
+ \getnoflines{\dimen0}%
+ \hangafter=-\noflines}
+ {\hangafter=-\getvalue{\??dd#1\c!hang}}}%
+
+%\setvalue{@@definitie\v!boven}#1[#2]#3%
+% {%\pagina[\v!voorkeur]% % Weg ermee!
+% \dosomebreak{\goodbreak}% % Dit is beter en nodig!
+% \@@dostartdefinitie{#1}[#2]{\let\\=\space#3}%
+% \copy\@@definitiebox
+% \nobreak
+% \getvalue{\??dd#1\c!tussen}%
+% \@@dodefinitie{#1}}
+
+\setvalue{@@definitie\v!boven}#1[#2]#3%
+ {%\pagina[\v!voorkeur]% % Weg ermee!
+ %\dosomebreak{\goodbreak}% % Dit is beter en nodig!
+ \dohandelpaginaafX1 % En dit moet het maar worden.
+ \@@dostartdefinitie{#1}[#2]{\let\\=\space#3}%
+ \copy\@@definitiebox\par
+ \nobreak
+ \getvalue{\??dd#1\c!tussen}%
+ \nobreak
+ \@@dodefinitie{#1}}
+
+\setvalue{@@definitie\v!inmarge}#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \inmarge{\unhcopy\@@definitiebox}%
+ \@@dodefinitie{#1}}
+
+\setvalue{@@definitie\v!inlinker}#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \inlinker{\unhcopy\@@definitiebox}%
+ \@@dodefinitie{#1}}
+
+\setvalue{@@definitie\v!inrechter}#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \inrechter{\unhcopy\@@definitiebox}%
+ \@@dodefinitie{#1}}
+
+\def\@@definitieaanelkaarpassend#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \unhcopy\@@definitiebox
+ \hskip\!!widthb % toegevoegd
+ \@@dodefinitie{#1}}
+
+\def\@@definitieaanelkaarruim#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \unhcopy\@@definitiebox
+ \hskip\!!widthb \!!plus .5\!!widthb \!!minus .25\!!widthb
+ \@@dodefinitie{#1}}
+
+\def\@@definitieaanelkaarbreed#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}%
+ \hbox to \!!widtha
+ {\unhcopy\@@definitiebox\hss}%
+ \hskip\!!widthb
+ \ignorespaces
+ \@@dodefinitie{#1}}
+
+\setvalue{@@definitie\v!aanelkaar}#1[#2]#3%
+ {\processaction
+ [\getvalue{\??dd#1\c!breedte}]
+ [\v!passend=>\let\next=\@@definitieaanelkaarpassend,
+ \v!ruim=>\let\next=\@@definitieaanelkaarruim,
+ \s!unknown=>\let\next=\@@definitieaanelkaarbreed,
+ \s!default=>\let\next=\@@definitieaanelkaarruim]%
+ \next{#1}[#2]{#3}}
+
+% \setvalue{@@definitie\v!hangend}#1[#2]#3%
+% {\skip0=-\leftskip % uggly trick
+% \@@dostartdefinitie{#1}[#2]{#3}% % adds \c!marge to \leftskip
+% \advance\skip0 by \leftskip % but useful
+% \ifdim\skip0=\!!zeropoint
+% \skip0=1.5em % just some default
+% \advance\leftskip by \skip0
+% \fi
+% \hskip-\skip0 % no hang in the first line
+% \unhcopy\@@definitiebox
+% \ifdim\!!widthb=\!!zeropoint
+% \kern.75em % another default
+% \else
+% \kern\!!widthb
+% \fi
+% \ignorespaces
+% \@@dodefinitie{#1}}
+
+\setvalue{@@definitie\v!hangend}#1[#2]#3%
+ {\@@dostartdefinitie{#1}[#2]{#3}% % adds \c!marge to \leftskip
+ \advance\leftskip by -\leftskipadaption
+ \ifdim\leftskipadaption=\!!zeropoint
+ \leftskipadaption=1.5em % just some default
+ \ifnum\insidedefinition=1 \ifdim\leftskip>\!!zeropoint
+ \leftskipadaption=\leftskip
+ \fi \fi
+ \fi
+ \ifnum\insidedefinition=1
+ \advance\leftskip by \leftskipadaption
+ \fi
+ \hskip-\leftskipadaption
+ \unhcopy\@@definitiebox
+ \ifdim\!!widthb=\!!zeropoint
+ \kern.75em % another default
+ \else
+ \kern\!!widthb
+ \fi
+ \ignorespaces
+ \@@dodefinitie{#1}}
+
+% \def\@@dostartdefinitie#1[#2]#3%
+% {\getvalue{\??dd#1\c!voor}%
+% \begingroup
+% \doadaptleftskip{\getvalue{\??dd#1\c!marge}}%
+% \showcomposition
+% \setbox\@@definitiebox=\hbox
+% {\forgetall
+% \mindermeldingen
+% \def\\{\crcr}%
+% % \doattributes
+% % {\??dd#1}\c!kopletter\c!kopkleur
+% % {\doifelsevalue{\??dd#1\c!plaats}{\v!aanelkaar}
+% % {\@@definitiewoord{#1}[#2]{#3}{#3}}
+% % {\@@definitiewoord{#1}[#2]{#3}{\vbox{\halign{\strut##\hss\cr#3\crcr}}}}}}%
+% \doifelsevalue{\??dd#1\c!plaats}{\v!aanelkaar}
+% {\@@definitiewoord{#1}[#2]{#3}{#3}}
+% {\@@definitiewoord{#1}[#2]{#3}{\vbox{\halign{\strut##\hss\cr#3\crcr}}}}}%
+% \!!widthb=\getvalue{\??dd#1\c!afstand}\relax
+% \ifdim\!!widthb=\!!zeropoint\relax
+% \doifvalue{\??dd#1\c!breedte}{\v!ruim}{\!!widthb=1em}%
+% \fi
+% \assignwidth
+% {\!!widtha}
+% {\getvalue{\??dd#1\c!breedte}}
+% {\doifelsevaluenothing{\??dd#1\c!monster}
+% {\unhcopy\@@definitiebox}
+% {\doattributes
+% {\??dd#1}\c!kopletter\c!kopkleur
+% {\getvalue{\??dd#1\c!tekst}\getvalue{\??dd#1\c!monster}}}}
+% {\!!widthb}%
+% %\getvalue{\??dd#1\s!do\c!lokaal}%
+% \parindent=\!!zeropoint\relax
+% \noindent
+% \ignorespaces}
+
+%D A new key 'titeluitlijnen' in definitions.
+
+\chardef\insidedefinition=0
+
+\let\@@leftdefinitieskip \!!zeropoint
+\let\@@rightdefinitieskip\!!zeropoint
+
+\def\@@dostartdefinitie#1[#2]#3%
+ {\getvalue{\??dd#1\c!voor}%
+ \begingroup
+ \doadaptleftskip{\getvalue{\??dd#1\c!marge}}%
+ \showcomposition
+ \setbox\@@definitiebox=\hbox
+ {\forgetall
+ \mindermeldingen
+ \def\\{\crcr}%
+ \doifelsevalue{\??dd#1\c!plaats}{\v!aanelkaar}
+ {\@@definitiewoord{#1}[#2]{#3}{#3}}
+ {\@@definitiewoord{#1}[#2]{#3}{\vbox{\halign{\strut##\hss\cr#3\crcr}}}}}%
+ \!!widthb=\getvalue{\??dd#1\c!afstand}\relax
+ \ifdim\!!widthb=\!!zeropoint\relax
+ \doifvalue{\??dd#1\c!breedte}{\v!ruim}{\!!widthb=1em}%
+ \fi
+ \assignwidth
+ {\!!widtha}
+ {\getvalue{\??dd#1\c!breedte}}
+ {\doifelsevaluenothing{\??dd#1\c!monster}
+ {\unhcopy\@@definitiebox}
+ {\doattributes
+ {\??dd#1}\c!kopletter\c!kopkleur
+ {\getvalue{\??dd#1\c!tekst}\getvalue{\??dd#1\c!monster}}}}
+ {\!!widthb}%
+ %\getvalue{\??dd#1\s!do\c!lokaal}%
+ \parindent=\!!zeropoint\relax
+ \doifelsevalue{\??dd#1\c!titeluitlijnen}{\v!nee}
+ {\edef\@@leftdefinitieskip {\the\leftskip }%
+ \edef\@@rightdefinitieskip{\the\rightskip}}
+ {\ifcase\insidedefinition
+ \edef\@@leftdefinitieskip {\the\leftskip }%
+ \edef\@@rightdefinitieskip{\the\rightskip}%
+ \fi}%
+ \ifcase\insidedefinition
+ \chardef\insidedefinition=1
+ \or
+ \chardef\insidedefinition=2
+ \fi
+ \noindent
+ \ignorespaces}
+
+\def\@@stopdefinitie#1%
+ {\par
+ \dostopattributes
+ \endgroup
+ \egroup % temporary hack
+ \getvalue{\??dd#1\c!na}%
+ \doifvalue{\??dd#1\c!springvolgendein}{\v!nee}{\noindentation}}
+
+\def\@@dodefinitie#1%
+ {\dostartattributes{\??dd#1}\c!letter\c!kleur{}%
+ \ignorespaces}
+
+\def\@@somedefinitie#1[#2]#3%
+ {\bgroup % temporary hack
+ %\BeforePar{\getvalue{\??dd#1}[#2]{#3}}%
+ \BeforePar{\executedoordefinitie{#1}[#2]{#3}}%
+ \AfterPar{\@@stopdefinitie{#1}}%
+ \GetPar}
+
+\def\@@startsomedefinitie#1[#2]#3%
+ {\bgroup % temporary hack
+ %\BeforePar{\getvalue{\??dd#1}[#2]{#3}}%
+ \BeforePar{\executedoordefinitie{#1}[#2]{#3}}%
+ \GotoPar}
+
+\def\dodosteldoordefinierenin[#1][#2]%
+ {\getparameters[\??dd#1][#2]}
+
+\def\dosteldoordefinierenin[#1][#2]% % beter: \iffirstargument
+ {\ConvertToConstant\doifelse{#2}{}
+ {\dodosteldoordefinierenin[][#1]}
+ {\dodoubleargumentwithset\dodosteldoordefinierenin[#1][#2]}}
+
+\def\steldoordefinierenin%
+ {\dodoubleempty\dosteldoordefinierenin}
+
+\def\executedoordefinitie#1[#2]%
+ {\ExpandAfter\doifundefined{@@definitie\getvalue{\??dd#1\c!plaats}}
+ {\setvalue{\??dd#1\c!plaats}{\v!links}}%
+ \getvalue{@@definitie\getvalue{\??dd#1\c!plaats}}{#1}[#2]}
+
+\def\dodoordefinieren[#1][#2]%
+ {\copyparameters[\??dd#1][\??dd]
+ [\c!plaats,\c!kopletter,\c!letter,\c!kleur,\c!kopkleur,
+ \c!breedte,\c!hang,\c!monster,\c!voor,\c!tussen,\c!na,\c!marge,
+ \c!springvolgendein,\c!uitlijnen,\c!tekst,\c!afstand,\c!commando]%
+ \getparameters[\??dd#1]
+ [\s!do\c!status=\v!stop,
+ \s!do\c!commando=\normal@@definitiewoord,
+ #2]%
+ \doifvalue{\??dd#1\c!plaats}{\v!boven}%
+ {\doassign[\??dd#1][\c!tussen={\blanko}]}%
+ \setvalue{#1}%
+ {\dodoubleempty\@@definitie[#1]}%
+ \setvalue{\e!start#1}%
+ {\dodoubleempty\@@startdefinitie[#1]}%
+ \setvalue{\e!stop#1}%
+ {\@@stopdefinitie{#1}}}%
+
+\def\@@startdefinitie[#1][#2]%
+ {\doifelsevalue{\??dd#1\s!do\c!status}{\v!start}
+ {\def\next{\@@startsomedefinitie{#1}[#2]{}}}
+ {\def\next{\dowithwargument{\@@startsomedefinitie{#1}[#2]}}}%
+ \next}
+
+\def\@@definitie[#1][#2]%
+ {\doifelsevalue{\??dd#1\s!do\c!status}{\v!start}
+ {\def\next{\@@somedefinitie{#1}[#2]{}}}
+ {\def\next{\dowithwargument{\@@somedefinitie{#1}[#2]}}}%
+ \next}
+
+\def\doordefinieren%
+ {\dodoubleemptywithset\dodoordefinieren}
+
+\def\showdnpuretext#1%
+ {\strut\getvalue{\??dd#1\c!tekst}} % geen spatie
+
+\def\showdntext#1%
+ {\doifelsevaluenothing{\??dd#1\c!tekst}
+ {\ignorespaces}
+ {\strut\getvalue{\??dd#1\c!tekst}\fixedspace}}
+
+\def\showdnnummer#1%
+ {\voorafgaandenummer%
+ \nummer[\getvalue{\??dd#1\??dd\c!nummer}]}
+
+\def\showdnsubnummer#1%
+ {\showdnnummer{#1}%
+ \getvalue{\??dd#1\c!scheider}%
+ \nummer[\v!sub\getvalue{\??dd#1\??dd\c!nummer}]}
+
+\def\showdnsubsubnummer#1%
+ {\showdnsubnummer{#1}%
+ \getvalue{\??dd#1\c!scheider}%
+ \nummer[\v!sub\v!sub\getvalue{\??dd#1\??dd\c!nummer}]}
+
+\def\showdnsubsubsubnummer#1%
+ {\showdnsubsubnummer{#1}%
+ \getvalue{\??dd#1\c!scheider}%
+ \nummer[\v!sub\v!sub\v!sub\getvalue{\??dd#1\??dd\c!nummer}]}
+
+\def\domakednnummer#1#2%
+ {\getvalue{\??dd#2\c!links}%
+ \strut#1{#2}%
+ \getvalue{\??dd#2\c!rechts}}
+
+% #1=name #2=level #3=\show #4[#5]#6#7=#1[#2]#3#4 van definitie
+
+%\def\special@@definitiewoord#1#2#3#4[#5]#6#7%
+% {\strut
+% \doifelsevalue{\??dd#1\c!nummer}{\v!nee}
+% {\!!doneafalse}
+% {\doifelse{#5}{-}
+% {\!!doneafalse}
+% {\!!doneatrue}}%
+% \if!!donea
+% \getvalue{\e!volgende#2#1}%
+% \iflocation
+% \bgroup
+% \setvalue{\??dd#1\c!sectienummer}{\v!ja}%
+% \protectconversion
+% \maakvoorafgaandenummer[#1]%
+% \xdef\internaldoornummer{#3{#1}}%
+% \rawreference{\s!num}{#1:\internaldoornummer}{}%
+% \egroup
+% \fi
+% \maakvoorafgaandenummer[#1]%
+% \hbox
+% {\def\kap##1{##1}% \domakednnumer gaat hier fout binnen kap
+% \doattributes
+% {\??dd#1}\c!kopletter\c!kopkleur
+% {\showdntext{#2#1}%
+% \domakednnummer#3{#1}%
+% \getvalue{\??dd#1\c!afsluiter}}%
+% \iflocation
+% \edef\localconnection{\getvalue{\??dd#1\c!koppeling}:\internaldoornummer}%
+% \doifreferencefoundelse{\localconnection}
+% {\in[\localconnection]}{}% genereert > of <
+% \fi}%
+% \rawreference{\s!num}{#5}{#3{#1}}%
+% \else
+% \edef\!!stringa{\showdnpuretext{#2#1}}% nog eens testen binnen \expanded
+% \expanded{\doattributes{\??dd#1}\noexpand\c!kopletter\noexpand\c!kopkleur
+% {\!!stringa}}%
+% \rawreference{\s!num}{#5}{}%
+% \fi}
+
+\def\special@@definitiewoord#1#2#3#4[#5]#6#7%
+ {\strut
+ \doifelsevalue{\??dd#1\c!nummer}{\v!nee}
+ {\!!doneafalse}
+ {\doifelse{#5}{-}
+ {\!!doneafalse}
+ {\!!doneatrue}}%
+ \chardef\definitiekoppeling=0
+ \iflocation
+ \doifvaluesomething{\??dd#1\c!koppeling}
+ {\processaction % genereert > of <
+ [\getvalue{\??dd#1\c!koppelwijze}]
+ [ \v!lokaal=>\chardef\definitiekoppeling=1, % old: default
+ \v!globaal=>\chardef\definitiekoppeling=2]}% new: global crosslinking
+ \fi
+ \stelnummerin % the number is called indirectly
+ [\getvalue{\??dd#1\??dd\c!nummer}]
+ [\c!sectienummer=\getvalue{\??dd#1\c!sectienummer}]%
+ \if!!donea
+ \getvalue{\e!volgende#2#1}%
+ \iflocation
+ \bgroup
+ \setvalue{\??dd#1\c!sectienummer}{\v!ja}%
+ \protectconversion
+ %\maakvoorafgaandenummer[#1]%
+ \maakvoorafgaandenummer[\getvalue{\??dd#1\??dd\c!nummer}]%
+ \ifcase\definitiekoppeling \or
+ \xdef\internaldoornummer{#3{#1}}%
+ \rawreference{\s!num}{#1:\internaldoornummer}{}%
+ \or
+ \xdef\internaldoornummer{\countervalue{\??dd\c!koppeling#1}}%
+ \rawreference{\s!num}{#1:\internaldoornummer}{}%
+ \fi
+ \egroup
+ \fi
+ %\maakvoorafgaandenummer[#1]%
+ \maakvoorafgaandenummer[\getvalue{\??dd#1\??dd\c!nummer}]%
+ \hbox
+ {\let\normalkap\relax % sorry, uppercase causes troubles
+ \doattributes % \nocase primitive needed
+ {\??dd#1}\c!kopletter\c!kopkleur
+{\getvalue{\??dd#1\c!commando}%
+ {\showdntext{#2#1}%
+ \domakednnummer#3{#1}%
+ \getvalue{\??dd#1\c!afsluiter}}%
+}%
+ \iflocation\ifcase\definitiekoppeling \else
+ \edef\localconnection{\getvalue{\??dd#1\c!koppeling}:\internaldoornummer}%
+ \doifreferencefoundelse{\localconnection}
+ {\in[\localconnection]}{}% genereert > of <
+ %\in[\localconnection]%
+ \fi\fi}%
+ \doifnot{#5}{-}{\rawreference{\s!num}{#5}{#3{#1}}}%
+ \else % Why was this strange expansion needed?
+ \hbox
+ {\edef\!!stringa{\showdnpuretext{#2#1}}% nog eens testen binnen \expanded
+ \expanded{\doattributes{\??dd#1}\noexpand\c!kopletter\noexpand\c!kopkleur
+{\noexpand\getvalue{\??dd#1\c!commando}%
+ {\!!stringa}}%
+}%
+ \doifnot{#5}{-}{\rawreference{\s!num}{#5}{}}}%
+ \fi}
+
+\def\@@ddsetsubsubsubnummer#1%
+ {\edef\doornummer{\getvalue{\??dd#1\??dd\c!nummer}}%
+ \setnummer[\v!sub\v!sub\v!sub\doornummer]}
+
+\def\@@ddsetsubsubnummer#1%
+ {\@@ddresetsubsubsubnummer{#1}%
+ \setnummer[\v!sub\v!sub\doornummer]}
+
+\def\@@ddsetsubnummer#1%
+ {\@@ddresetsubsubnummer{#1}%
+ \setnummer[\v!sub\doornummer]}
+
+\def\@@ddsetnummer#1%
+ {\@@ddresetsubnummer{#1}%
+ \setnummer[\doornummer]}
+
+\def\@@ddresetsubsubsubnummer#1%
+ {\edef\doornummer{\getvalue{\??dd#1\??dd\c!nummer}}%
+ \resetnummer[\v!sub\v!sub\v!sub\doornummer]}
+
+\def\@@ddresetsubsubnummer#1%
+ {\@@ddresetsubsubsubnummer{#1}%
+ \resetnummer[\v!sub\v!sub\doornummer]}
+
+\def\@@ddresetsubnummer#1%
+ {\@@ddresetsubsubnummer{#1}%
+ \resetnummer[\v!sub\doornummer]}
+
+\def\@@ddresetnummer#1%
+ {\@@ddresetsubnummer{#1}%
+ \resetnummer[\doornummer]}
+
+\def\@@ddvolgendesubsubsubnummer#1[#2]%
+ {\edef\doornummer{\getvalue{\??dd#1\??dd\c!nummer}}%
+ \verhoognummer[\v!sub\v!sub\v!sub\doornummer]%
+ \rawreference{\s!num}{#2}{\showdnsubsubsubnummer{\doornummer}}}%
+
+\def\@@ddvolgendesubsubnummer#1[#2]%
+ {\@@ddresetsubsubsubnummer{#1}%
+ \verhoognummer[\v!sub\v!sub\doornummer]%
+ \rawreference{\s!num}{#2}{\showdnsubsubnummer{\doornummer}}}
+
+\def\@@ddvolgendesubnummer#1[#2]%
+ {\@@ddresetsubsubnummer{#1}%
+ \verhoognummer[\v!sub\doornummer]%
+ \rawreference{\s!num}{#2}{\showdnsubnummer{\doornummer}}}
+
+\def\@@ddvolgendenummer#1[#2]%
+ {\@@ddresetsubnummer{#1}%
+ \verhoognummer[\doornummer]%
+ \rawreference{\s!num}{#2}{\showdnnummer{\doornummer}}}
+
+\def\dodosteldoornummerenin[#1][#2]%
+ {\getparameters[\??dd#1][#2]%
+ \doifdefined{\??dd#1\c!start}
+ {\stelnummerin[#1][\c!start=\getvalue{\??dd#1\c!start}]}%
+ \stelnummerin[#1][\c!conversie=\getvalue{\??dd#1\c!conversie}]}
+
+\def\dosteldoornummerenin[#1][#2]%
+ {\ConvertToConstant\doifelse{#2}{}
+ {\getparameters[\??dn][#1]}
+ {\dodoubleargumentwithset\dodosteldoornummerenin[#1][#2]}}
+
+\def\steldoornummerenin%
+ {\dodoubleempty\dosteldoornummerenin}
+
+\def\dododoornummeren#1#2#3[#4][#5]#6%
+ {\makecounter{\??dd\c!koppeling#1}% new: global cross linking
+ \dodoordefinieren[#3#1]%
+ [\s!do\c!status=\v!start,
+ \s!do\c!commando=\special@@definitiewoord{#1}{#3}{#6}]%
+ \copyparameters[\??dd#3#1][\??dn]
+ [\c!plaats,\c!kopletter,\c!letter,\c!kleur,\c!kopkleur,
+ \c!breedte,\c!nummer,\c!afstand,\c!commando,
+ \c!monster,\c!hang,\c!uitlijnen,\c!voor,\c!tussen,\c!na,
+ \c!niveaus,\c!wijze,\c!blokwijze,\c!scheider,\c!marge,
+ \c!springvolgendein,\c!afsluiter,\c!sectienummer,\c!nummer]%
+ \ConvertToConstant\doifinstringelse{=}{#4}
+ {\getparameters[\??dd#3#1]%
+ [\c!tekst=#1,\??dd\c!nummer=#1,\c!conversie=,
+ \c!links=,\c!rechts=,\c!koppeling=,\c!koppelwijze=\v!lokaal,#4]}%
+ {\doifelsenothing{#4}
+ {\getparameters[\??dd#3#1]%
+ [\c!tekst=#1,\??dd\c!nummer=#1,\c!conversie=,
+ \c!links=,\c!rechts=,\c!koppeling=,\c!koppelwijze=,#4]}%
+ {\copyparameters[\??dd#3#1][\??dd#3#4]
+ [\c!plaats,\c!kopletter,\c!letter,\c!kleur,\c!kopkleur,
+ \c!breedte,\c!nummer,\c!afstand,\c!commando,\c!marge,
+ \c!monster,\c!hang,\c!uitlijnen,\c!voor,\c!tussen,\c!na,
+ \c!springvolgendein,\c!links,\c!rechts,\c!koppeling,\c!koppelwijze]%
+ \getparameters[\??dd#3#1]
+ [\c!tekst=#1,\??dd\c!nummer=#4,\c!conversie=,#5]}}%
+ \ExpandBothAfter\doif{\getvalue{\??dd#3#1\??dd\c!nummer}}{#1}
+ {\definieernummer
+ [#3#1]
+ [\c!wijze=\getvalue{\??dd#1\c!wijze},
+ \c!blokwijze=\getvalue{\??dd#1\c!blokwijze},
+ \c!sectienummer=\getvalue{\??dd#1\c!sectienummer}]%
+ \doifvalue{\??dd#1\c!niveaus}{#2}% % for
+ {\doifsomething{\getvalue{\??dd#1\c!conversie}}% % old
+ {\stelnummerin[#3#1] % times
+ [\c!conversie=\getvalue{\??dd#1\c!conversie}]}}}% % sake
+ \setvalue{\s!set#3#1}%
+ {\dosetdoornummer[#1][#3]}%
+ \setvalue{\s!reset#3#1}%
+ {\doresetdoornummer[#1][#3]}%
+ \setvalue{\e!volgende#3#1}%
+ {\dotripleempty\dovolgendedoornummer[#1][#3]}}
+
+\def\dovolgendedoornummer[#1][#2]%
+ {\pluscounter{\??dd\c!koppeling#1}% new: global crosslinking
+ \getvalue{\??dd\c!volgende#2\c!nummer}{#1}}%
+
+\def\doresetdoornummer[#1][#2]%
+ {\getvalue{\??dd\s!reset#2\c!nummer}{#1}}%
+
+\def\dosetdoornummer[#1][#2]%
+ {\getvalue{\??dd\s!set#2\c!nummer}{#1}}%
+
+\def\dodoornummeren[#1][#2][#3]%
+ {\dododoornummeren{#1}{1}{}[#2][#3]\showdnnummer
+ \dododoornummeren{#1}{2}{\v!sub}[#2][#3]\showdnsubnummer
+ \dododoornummeren{#1}{3}{\v!sub\v!sub}[#2][#3]\showdnsubsubnummer
+ \dododoornummeren{#1}{4}{\v!sub\v!sub\v!sub}[#2][#3]\showdnsubsubsubnummer}
+
+\def\doornummeren%
+ {\dotripleemptywithset\dodoornummeren}
+
+% Het default-mechanisme kan mooier: leegtest, enz.
+%
+% Werkprocedure buiten definitie
+
+\def\dodosteldoorspringenin[#1][#2]%
+ {\getparameters[\??ds#1][#2]}
+
+\def\dosteldoorspringenin[#1][#2]%
+ {\ConvertToConstant\doifelse{#2}{}
+ {\dodosteldoorspringenin[][#1]}
+ {\dodoubleargumentwithset\dodosteldoorspringenin[#1][#2]}}
+
+\def\steldoorspringenin%
+ {\dodoubleempty\dosteldoorspringenin}
+
+\def\startdoorspringen%
+ {\witruimte
+ \@@dsvoor
+ \dosomebreak{\goodbreak}% \pagina[\v!voorkeur]
+ \begingroup
+ \parskip=\!!zeropoint\relax}
+
+\def\stopdoorspringen%
+ {\endgroup
+ \@@dsna}
+
+\def\dododoorspringen#1#2#3%
+ {\par
+ \getvalue{\??ds#1\c!voor}%
+ \begingroup
+ \doifvaluenothing{\??ds#1\c!monster}
+ {\setvalue{\??ds#1\c!monster}%
+ {\getvalue{\??ds#1\c!tekst}}}%
+ \assignwidth
+ {\!!widtha}
+ {\getvalue{\??ds#1\c!breedte}}
+ {\doattributes
+ {\??ds#1}\c!kopletter\c!kopkleur
+ {\getvalue{\??ds#1\c!monster}\getvalue{\??ds#1\c!scheider}}}
+ {\getvalue{\??ds#1\c!afstand}}%
+ \advance\!!widtha by \getvalue{\??ds#1\c!afstand}%
+ \setbox2=\hbox to \!!widtha
+ {\doattributes
+ {\??ds#1}\c!kopletter\c!kopkleur
+ {\strut
+ \getvalue{\??ds#1\c!tekst}%
+ \hss
+ \getvalue{\??ds#1\c!scheider}%
+ \hskip\getvalue{\??ds#1\c!afstand}}}%
+ \parindent\!!zeropoint
+ \hskip#2\!!widtha\indent\box2%
+ \hangindent#3\!!widtha
+ \doattributes{\??ds#1}\c!letter\c!kleur{}% #4}%
+ \AfterPar%
+ {\endgroup
+ \getvalue{\??ds#1\c!na}}%
+ \GetPar}
+
+\def\dodoorspringen[#1][#2]%
+ {\copyparameters[\??ds#1][\??ds]
+ [\c!tekst,\c!scheider,\c!breedte,\c!letter,\c!kleur,
+ \c!kopletter,\c!monster,\c!voor,\c!na,\c!afstand]%
+ \getparameters[\??ds#1][#2]%
+ \setvalue{#1}%
+ {\dododoorspringen{#1}{0}{1}}%
+ \setvalue{\v!sub#1}%
+ {\dododoorspringen{#1}{1}{2}}%
+ \setvalue{\v!sub\v!sub#1}%
+ {\dododoorspringen{#1}{2}{3}}}
+
+\def\doorspringen%
+ {\dodoubleargumentwithset\dodoorspringen}
+
+\def\dodoorlabel[#1][#2]%
+ {\getvalue{\s!number#1\c!voor}%
+ \bgroup
+ \doif{\getvalue{\s!number#1\c!plaats}}{\v!marge}
+ {\setvalue{\s!number#1\c!plaats}{\v!inmarge}}%
+ \doattributes{\s!number#1}\c!kopletter\c!kopkleur
+ {\getvalue{\e!volgende#1}[#2]}%
+ \egroup
+ \getvalue{\s!number#1\c!na}}%
+
+\def\dovolgendedoorlabel[#1][#2]%
+ {\volgendenummer[#1][\s!lab][#2]}
+
+\def\dodoorlabelen[#1][#2]%
+ {\definieernummer
+ [#1]
+ [\c!voor=,
+ \c!na=,
+ \c!kopletter=,
+ \c!wijze=\@@nrwijze,
+ #2]%
+ \setvalue{#1}%
+ {\dodoubleempty\dodoorlabel[#1]}%
+ \setvalue{\s!reset#1}%
+ {\resetnummer[#1]}%
+ \setvalue{\e!verhoog#1}%
+ {\verhoognummer[#1]}%
+ \setvalue{\e!volgende#1}%
+ {\dodoubleempty\dovolgendedoorlabel[#1]}%
+ \setvalue{\c!huidige#1}%
+ {\huidigenummer[#1]}}
+
+\def\doorlabelen%
+ {\dodoubleargumentwithset\dodoorlabelen}
+
+\steldoordefinierenin
+ [\c!plaats=\v!links,
+ \c!kopletter=\v!vet,
+ \c!letter=\v!normaal,
+ \c!kleur=,
+ \c!kopkleur=,
+ \c!breedte=8em,
+ \c!afstand=0pt,
+ \c!hang=,
+ \c!monster=,
+ \c!uitlijnen=,
+ \c!marge=\v!nee,
+ \c!voor=\blanko,
+ \c!tussen=\blanko,
+ \c!na=\blanko,
+ \c!springvolgendein=\v!ja,
+ \c!commando=]
+
+\steldoornummerenin
+ [\c!plaats=\v!boven,
+ \c!kopletter=\v!vet,
+ \c!kopkleur=,
+ \c!letter=\v!normaal,
+ \c!kleur=,
+ \c!breedte=8em,
+ \c!afstand=0pt,
+ \c!hang=,
+ \c!monster=,
+ \c!uitlijnen=,
+ \c!marge=\v!nee,
+ \c!voor=\blanko,
+ \c!tussen=\blanko,
+ \c!na=\blanko,
+ \c!springvolgendein=\v!ja,
+ \c!tekst=,
+ \c!niveaus=3, % to be upward compatible
+ \c!conversie=, % to be upward compatible
+ \c!wijze=\v!per\v!tekst,
+ \c!sectienummer=\v!ja,
+ \c!scheider=.,
+ \c!afsluiter=,
+ \c!nummer=,
+ \c!commando=]
+
+\steldoorspringenin
+ [\c!letter=\v!normaal,
+ \c!kopletter=\v!normaal,
+ \c!kleur=,
+ \c!kopkleur=,
+ \c!breedte=\v!passend,
+ \c!tekst=\unknown,
+ \c!monster=,
+ \c!voor=\blanko,
+ \c!na=\blanko,
+ \c!afstand=1em,
+ \c!scheider={ :}]
+
+\protect \endinput
diff --git a/tex/context/base/core-fig.tex b/tex/context/base/core-fig.tex
index 5ae559434..954f88c12 100644
--- a/tex/context/base/core-fig.tex
+++ b/tex/context/base/core-fig.tex
@@ -232,12 +232,11 @@
%D Should be a special!
\def\dogetfiguresizetex#1#2#3#4#5#6% file pagina ...
- {\ifx\@@efextension\c!tex \else \ifx\@@efextension\c!tmp \else
- \doifnumberelse{\@@efextension}
- {\executedfalse}
- {\ExpandBothAfter\doifinset{\@@efextension}{\figuretypes}
- {\executedfalse}}%
- \fi \fi
+ {\doifinset{\@@efextension}{\c!tex,\c!tmp}
+ {\doifnumberelse{\@@efextension}
+ {\executedfalse}
+ {\ExpandBothAfter\doifinset{\@@efextension}{\figuretypes}
+ {\executedfalse}}}%
\ifexecuted
\global\setbox\foundexternalfigure=\vbox
{\insidefloattrue
@@ -273,22 +272,20 @@
\executedfalse % nothing decent found
\fi\fi
\fi\fi
- \ifexecuted\ifx\@@efcurrenttype\c!mps\ifcase\EPScreator
- \executedfalse % searching for mps, eps found, but no valid mps
- \fi\fi\fi
+ \ifexecuted % searching for mps, eps found, but no valid mps
+ \doif{\@@efcurrenttype}{\c!mps}{\ifcase\EPScreator\executedfalse\fi}%
+ \fi
% until here
\ifexecuted
\chardef\figurestatus=3
- \ifx\@@efcurrenttype\c!eps
- \ifcase\EPScreator
+ \doifelse{\@@efcurrenttype}{\c!eps}
+ {\ifcase\EPScreator
\@@eftrace{found}%
- \else
- \let\@@efcurrenttype\c!mps
- \@@eftrace{mps found}%
- \fi
- \else
- \@@eftrace{found}%
- \fi
+ \else
+ \let\@@efcurrenttype\c!mps
+ \@@eftrace{mps found}%
+ \fi}
+ {\@@eftrace{found}}%
\geteparameters % e !
[\??ep]
[\c!x=\the\!!widtha,\c!y=\the\!!heighta,
@@ -335,21 +332,20 @@
\def\getfiguredimensionsC%
{\ifcase\figurestatus\ifrunutilityfile\ifcase\figurefilemode\else
- \ifx\@@efcurrenttype\c!tex\else
- \doiffileelse{\@@efcurrentfile}
- {\edef\@@effilenametype{\@@effilename.\@@efcurrenttype}%
- \@@eftrace{running texutil on \@@effilenametype}%
- \def\@@efloadname{\f!utilityfilename.\f!temporaryextension}%
- \executesystemcommand
- {texutil --fig --out=\@@efloadname\space\@@effilenametype}%
- \@@eftrace{analyzing \@@efloadname\space on \@@effilenametype}%
- \pushendofline
- \let\presetfigure=\presetfigureB
+ \doif{\@@efcurrenttype}{\c!tex}
+ {\doiffileelse{\@@efcurrentfile}
+ {\edef\@@effilenametype{\@@effilename.\@@efcurrenttype}%
+ \@@eftrace{running texutil on \@@effilenametype}%
+ \def\@@efloadname{\f!utilityfilename.\f!temporaryextension}%
+ \executesystemcommand
+ {texutil --fig --out=\@@efloadname\space\@@effilenametype}%
+ \@@eftrace{analyzing \@@efloadname\space on \@@effilenametype}%
+ \pushendofline
+ \let\presetfigure=\presetfigureB
\readsetfile{.}{\@@efloadname}\relax\relax
- \popendofline
- \@@eftrace{\ifcase\figurestatus not \fi found}}
- {}%
- \fi
+ \popendofline
+ \@@eftrace{\ifcase\figurestatus not \fi found}}
+ {}}%
\fi\fi\fi}
\def\presetfigureB[#1][#2]%
@@ -563,32 +559,42 @@
\def\docalculatefigurescales#1#2#3#4%
{\dimen0=#1\relax % #1 = new 1-value
\dimen2=#2\relax % #2 = old 1-value
- \divide\dimen2 by \!!thousand\relax
- \divide\dimen0 by \dimen2\relax
- \figxsca=\dimen0\relax % x scale
- \figysca=\dimen0\relax % y scale
+ \divide\dimen2 by \!!thousand
+ \divide\dimen0 by \dimen2
+ \figxsca=\dimen0 % x scale
+ \figysca=\dimen0 % y scale
\dimen2=#4\relax % #4 = old 2-value
- \divide\dimen2 by \!!thousand\relax
- \multiply\dimen2 by \dimen0\relax
- #3=\dimen2\relax} % #3 = new 2-value
+ \divide\dimen2 by \!!thousand
+ \multiply\dimen2 by \dimen0
+ #3=\dimen2 } % #3 = new 2-value
\def\docalculatefigurescale#1#2#3%
{\dimen0=#1\relax % #1 = new value
\dimen2=#2\relax % #2 = old value
- \divide\dimen2 by \!!thousand\relax
- \divide\dimen0 by \dimen2\relax
- #3=\dimen0\relax} % #3 = schaal
+ \divide\dimen2 by \!!thousand
+ \divide\dimen0 by \dimen2
+ #3=\dimen0 } % #3 = schaal
\def\doapplyfigurescale#1#2#3%
{#1=#2\relax
- \ifcase0\@@efschaal\relax#3=\!!thousand\else#3=\@@efschaal\fi\relax
- \divide#1 by \!!thousand\relax
- \multiply#1 by #3\relax}
+ \ifcase0\@@efschaal\relax
+ #3=\!!thousand
+ \else
+ #3=\@@efschaal
+ \fi
+ \relax % important !
+ \ifnum#3=\!!thousand\else
+ \divide#1 by \!!thousand
+ \multiply#1 by #3\relax
+ \fi}
\def\doapplyfiguresize%
{\ifinner
\teksthoogte=\vsize
\scratchdimen=\teksthoogte
+ \else\ifinpagebody
+ \teksthoogte=\vsize
+ \scratchdimen=\teksthoogte
\else
\ifdim\pagegoal<\maxdimen
\ifdim\pagetotal<\pagegoal
@@ -600,7 +606,7 @@
\else
\scratchdimen=\teksthoogte
\fi
- \fi
+ \fi\fi
\doifelsenothing{\@@efhoogte}
{\edef\@@efvsize{\the\scratchdimen}}
{\let\@@efvsize=\@@efhoogte}%
@@ -610,9 +616,10 @@
\def\convertfigureinsertscale#1#2#3#4%
{\scratchdimen=#1\relax
- %\advance\scratchdimen by .0005pt
- \divide\scratchdimen by \!!thousand
- \multiply\scratchdimen by #3\relax
+ \ifnum#3=\!!thousand\else % better 1000 100 10 ranges, evt round 2sp
+ \divide\scratchdimen by \!!thousand
+ \multiply\scratchdimen by #3\relax
+ \fi
\scratchdimen=-\scratchdimen % beter hier - dan in driver
\edef#2{\number\scratchdimen}%
\scratchdimen=#3pt
@@ -667,15 +674,14 @@
\c!factor=,\c!hfactor=,\c!bfactor=,
\c!achtergrond=,\c!achtergrondkleur=,\c!achtergrondraster=\@@rsraster,
\c!hoek=,\c!straal=.5\korpsgrootte,\c!kader=\v!uit]%
- \ifx\@@efextension\c!mov \presetfiguremov \fi
+ \doif{\@@efextension}{\c!mov}{\presetfiguremov}%
#1[#4][#5][#6]%
- \ifx\@@eftype\c!mov \presetfiguremov \fi
- \ifx\@@eftype\v!buffer
- \ifx\@@efextension\empty
- \let\@@efextension\c!tmp
- \fi
- \let\@@eftype\c!tex
- \fi
+ \doif{\@@eftype}{\c!mov}{\presetfiguremov}%
+ \doif{\@@eftype}{\v!buffer}
+ {\ifx\@@efextension\empty
+ \let\@@efextension\c!tmp
+ \fi
+ \let\@@eftype\c!tex}%
\processaction
[\@@efextension]
[ \c!tex=>\let\@@eftype\c!tex,
@@ -692,12 +698,11 @@
\doifobjectfoundelse{FIG}{\@@efobjectname}{\donetrue}{\donefalse}}
{\donefalse}}
{\donefalse}}%
- \ifx\@@effilename\jobname
- \@EA\removefromcommalist\@EA{\jobsuffix}\figuretypes
- \let\@@efextension=\empty
- \showmessage{\m!figures}{9}{\@@effilename,\jobsuffix}%
- \donefalse
- \fi
+ \doif{\@@effilename}{\jobname}
+ {\@EA\removefromcommalist\@EA{\jobsuffix}\figuretypes
+ \let\@@efextension=\empty
+ \showmessage{\m!figures}{9}{\@@effilename,\jobsuffix}%
+ \donefalse}%
\ifdone
\getobjectdimensions{FIG}{\@@efobjectname}%
\geteparameters % e !
@@ -806,12 +811,13 @@
{\addtocommalist\v!preview\@@efoptions}%
\doif{\@@efherhaal}{\v!ja}
{\addtocommalist\v!herhaal\@@efoptions}%
-\ifx\@@eftype\c!mps\ifcase\EPSspecial\else\ifinobject\else
- \@@eftrace{special mps, object forced}%
- \doglobal\increment\forcedMPSobject
- \edef\@@efobjectname{\c!mps::\forcedMPSobject}%
- \let\@@efobject\v!ja
-\fi\fi\fi
+\doif{\@@eftype}{\c!mps}
+ {\ifcase\EPSspecial\else\ifinobject\else
+ \@@eftrace{special mps, object forced}%
+ \doglobal\increment\forcedMPSobject
+ \edef\@@efobjectname{\c!mps::\forcedMPSobject}%
+ \let\@@efobject\v!ja
+ \fi\fi}%
\global\let\lastfigureobjectname\@@efobjectname
\doifelse{\@@efobject}{\v!nee}
{\donefalse}
@@ -884,18 +890,19 @@
\let\lastfigureobjectname\empty
\def\calculateexternalscreenfigure[#1][#2][#3][#4][#5][#6]%
- {\ifx\@@efscherm\empty\else\ifx\@@efobject\v!nee\else
- \doifobjectssupportedelse
- {\doifspecialavailableelse\doregisterfigure
- {\bgroup
- #1[#4][#5][#6]%
- \doregisterfigure{FIG}{\lastfigureobjectname}%
- \let\@@ef@@scherm\@@efscherm
- \calculateexternalfigure[#1][\@@ef@@scherm][\@@ef@@scherm][#4,\c!scherm=][#5][#6]%
- \egroup}
- {}}
- {}%
- \fi\fi}
+ {\ifx\@@efscherm\empty\else
+ \doifnot{\@@efobject}{\v!nee}
+ {\doifobjectssupportedelse
+ {\doifspecialavailableelse\doregisterfigure
+ {\bgroup
+ #1[#4][#5][#6]%
+ \doregisterfigure{FIG}{\lastfigureobjectname}%
+ \let\@@ef@@scherm\@@efscherm
+ \calculateexternalfigure[#1][\@@ef@@scherm][\@@ef@@scherm][#4,\c!scherm=][#5][#6]%
+ \egroup}
+ {}}
+ {}}%
+ \fi}
\let\dowithfigure\relax
@@ -903,12 +910,15 @@
\let\naturalfigurewidth =\!!zeropoint
\let\figureheight =\!!zeropoint
\let\figurewidth =\!!zeropoint
+\def\noffigurepages {1}
\def\getfiguredimensions%
{\dodoubleempty\dogetfiguredimensions}
+\gdef\noffigurepages{\nofinsertpages}
+
\def\dogetfiguredimensions[#1][#2]%
- {{\let\immediate\relax % very dirty but prevents flushing
+ {{\let\immediate\relax % very dirty but prevents flushing, will change
\setbox0=\hbox{\externalfigure[#1][#2,\c!scherm=,\c!object=\v!nee]}}}
\presetlocalframed[\??ef]
@@ -961,10 +971,6 @@
\getparameters[\??ep][##5]}%
\getvalue{\??ef\??ef#1}}
-\def\getnumberoffigurepages#1%
- {\gdef#1{1}% the default
- \dogetnofinsertpages#1}
-
% \useexternalfigure[alpha][koe]
% \useexternalfigure[beta] [koe] [breedte=1cm]
% \useexternalfigure[gamma][koe][alpha]
@@ -1098,6 +1104,8 @@
\pagina
\getfiguredimensions
[#1][#2]
+ \getparameters
+ [\??ex][\c!offset=\!!zeropoint,#2]
\scratchdimen=\@@exoffset
\dimen0=\figurewidth \advance\dimen0 2\scratchdimen\edef\figurewidth {\the\dimen0}
\dimen0=\figureheight\advance\dimen0 2\scratchdimen\edef\figureheight{\the\dimen0}
@@ -1393,47 +1401,6 @@
%D
%D \showsetup{setupclipping}
-% \def\doclip[#1]% nb top->bottom left->right
-% {\bgroup
-% \getparameters[\??cp][#1]%
-% \dowithnextbox
-% {\ifdim\@@cpbreedte>\!!zeropoint
-% \dimen0=\@@cpbreedte
-% \dimen4=\@@cphoffset
-% \else
-% \dimen0=\wd\nextbox
-% \divide\dimen0 \@@cpnx
-% \dimen4=\@@cpx\dimen0
-% \advance\dimen4 -\dimen0
-% \fi
-% \relax % sure
-% \ifdim\@@cphoogte>\!!zeropoint
-% \dimen2=\@@cphoogte
-% \dimen6=\ht\nextbox
-% \advance\dimen6 by -\@@cpvoffset
-% \advance\dimen6 by -\dimen2
-% \else
-% \dimen2=\ht\nextbox
-% \divide\dimen2 \@@cpny
-% \dimen6=-\@@cpy\dimen2
-% \advance\dimen6 \ht\nextbox
-% \fi
-% \setbox\nextbox=\hbox
-% {\hskip-\dimen4\lower\dimen6\box\nextbox}%
-% \wd\nextbox=\!!zeropoint
-% \ht\nextbox=\!!zeropoint
-% \dp\nextbox=\!!zeropoint
-% \setbox\nextbox=\hbox
-% {\dostartclipping{\@@cpmp}{\number\dimen0}{\number\dimen2}%
-% \box\nextbox
-% \dostopclipping}%
-% \wd\nextbox=\dimen0
-% \ht\nextbox=\dimen2
-% \dp\nextbox=\!!zeropoint
-% \box\nextbox
-% \egroup}%
-% \hbox}
-
\def\doclip[#1]% nb top->bottom left->right
{\bgroup
\getparameters[\??cp][#1]%
@@ -1484,11 +1451,37 @@
\def\setupclipping%
{\dodoubleargument\getparameters[\??cp]}
+%D defining sound tracks:
+%D
+%D \starttypen
+%D \useexternalsoundtrack[label][file]
+%D \stoptypen
+%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}{}%
+ \setgvalue{\??sd#1}{}}}%
+ \fi}
+
+\setexecutecommandcheck {startsound} \checksoundtrack
+
\appendtoks \setupexternalfigures[\c!optie=\v!leeg] \to \everyfastmode
\appendtoks \runMPgraphicsfalse \to \everyfastmode
\appendtoks \insertMPgraphicsfalse \to \everyfastmode
-\appendtoks \flushMPgraphics \to \everylastshipout
+\appendtoks \flushMPgraphics \to \everygoodbye % \everylastshipout
\setupexternalfigures
[\c!optie=,
diff --git a/tex/context/base/core-fil.tex b/tex/context/base/core-fil.tex
index 987fcb2c7..c67aa1702 100644
--- a/tex/context/base/core-fil.tex
+++ b/tex/context/base/core-fil.tex
@@ -189,6 +189,39 @@
\def\convertMPcolorfile%
{\bufferprefix metacmyk.tmp}
+%D Temporarily here:
+
+\def\definieerfilegroep%
+ {\dodoubleargument\dodefinieerfilegroep}
+
+\def\dodefinieerfilegroep[#1][#2]%
+ {\getparameters
+ [\??fp#1]
+ [\c!file=#1,
+ \c!voor=,
+ \c!na=,
+ #2]%
+ \setvalue{\e!start#1}{\dostartfilegroep[#1]}}
+
+\def\dostartfilegroep%
+ {\dodoubleargument\dodostartfilegroep}
+
+\def\dodostartfilegroep[#1][#2]%
+ {\getvalue{\??fp#1\c!voor}%
+ \setvalue{\e!stop#1}{\dostopfilegroep[#1][#2]}%
+ \edef\!!stringa{\getvalue{\??fp#1\c!file}-#2}%
+ \@EA\dolaadfilegroep\@EA[\!!stringa]%
+ \getvalue{\e!start#1#2}}
+
+\def\dolaadfilegroep[#1-#2#3#4#5]%
+ {\readsysfile{#1-#2#3#4}{}{}}
+
+\def\dostopfilegroep[#1][#2]%
+ {\getvalue{\e!stop#1#2}%
+ \getvalue{\??fp#1\c!na}}
+
+%D This will be perfected / changed / weeded.
+
\protect
\endinput
diff --git a/tex/context/base/core-fld.tex b/tex/context/base/core-fld.tex
index 2d1b0b7eb..33b77f9ad 100644
--- a/tex/context/base/core-fld.tex
+++ b/tex/context/base/core-fld.tex
@@ -120,7 +120,7 @@
\@@fdformatteer,\@@fdvalideer,\@@fdbereken}}
\def\presetpushfield%
- {\edef\@@FieldValues{{\@@FieldValues}}% makes sure {a,b,c} is passed
+ {%\edef\@@FieldValues{{\@@FieldValues}}% makes sure {a,b,c} is passed
\presetfieldsymbols[\@@FieldValues]%
\dopresetpushfield
{\@@FieldName}
@@ -273,18 +273,32 @@
\newif\ifdefinemainfield \definemainfieldfalse
+%D We used to have:
+%D
+%D \starttyping
+%D \def\getmainfieldkids#1%
+%D {\let\@@FieldKids\empty
+%D \ifdefinemainfield
+%D \definetwopasslist{fld:#1}% defined by system
+%D \doloop
+%D {\gettwopassdata{fld:#1}%
+%D \iftwopassdatafound
+%D %\addtocommalist\twopassdata\@@FieldKids
+%D \appendtocommalist\twopassdata\@@FieldKids
+%D \else
+%D \exitloop
+%D \fi}%
+%D \fi}
+%D \stoptyping
+%D
+%D The next alternative is much faster when we have a field
+%D with thousands of clones, somthing not that imaginary.
+
\def\getmainfieldkids#1%
{\let\@@FieldKids\empty
\ifdefinemainfield
- \definetwopasslist{fld:#1}% defined by system
- \doloop
- {\gettwopassdata{fld:#1}%
- \iftwopassdatafound
- %\addtocommalist\twopassdata\@@FieldKids
- \appendtocommalist\twopassdata\@@FieldKids
- \else
- \exitloop
- \fi}%
+ \definerawpasslist{fld:#1}% runtime defined by system
+ \moverawpasslist{fld:#1}\@@FieldKids
\fi}
\newcounter\nofmainfieldkids
@@ -314,7 +328,7 @@
\savecurrentvalue\totalnumberoffields\numberoffields
\fi}
-\appendtoks \savenumberoffields \to \everylastshipout
+\appendtoks \savenumberoffields \to \everybye % \everylastshipout
% \def\presetfieldreferences%
% {\ifnum\totalnumberoffields>0
diff --git a/tex/context/base/core-fnt.tex b/tex/context/base/core-fnt.tex
index b6c11dbd3..a7ce7f68f 100644
--- a/tex/context/base/core-fnt.tex
+++ b/tex/context/base/core-fnt.tex
@@ -259,6 +259,41 @@
%D \typebuffer
%D \macros
+%D {stretcheduppercase}
+%D
+%D A convenient alternative is:
+%D
+%D \starttypen
+%D \stretcheduppercase{Is this what you like?}
+%D \stoptypen
+%D
+%D \typebuffer
+%D
+%D this one uses fixed skips and kerns.
+%D
+%D \startvoorbeeld
+%D \haalbuffer
+%D \stopvoorbeeld
+%D
+%D The default skip can be set with:
+
+\def\stretchedspaceamount{.25em}
+
+\unexpanded\def\stretcheduppercase#1%
+ {\bgroup
+ \the\everyuppercase
+ \uppercase{\def\textstring{#1}}%
+ \ifdim\stretchedspaceamount>\!!zeropoint
+ \def\textkern{\kern \stretchedspaceamount}%
+ \def\textskip{\hskip\stretchedspaceamount}%
+ \@EA\processtokens\@EA\relax\@EA\textskip\@EA\relax\@EA
+ {\@EA\textkern\@EA\textkern\@EA}\@EA{\textstring}%
+ \else
+ \textstring
+ \fi
+ \egroup}
+
+%D \macros
%D {underbar,underbars,
%D overbar,overbars,
%D overstrike,overstrikes,
@@ -425,6 +460,62 @@
\def\setupunderbar%
{\dodoubleargument\getparameters[\??on]}
+%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%
+ {\bgroup
+ \scratchdimen=
+ \ifdim\fontdimen5\textfont2=1ex\fontdimen#2\textfont2\else#3ex\fi
+ \advance\scratchdimen by #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{14}{.86}{0}}
+\unexpanded\def\low {\dohighlow\lower{16}{.48}{0}}
+
+\unexpanded\def\lohi#1#2%
+ {\hbox
+ {\setbox4=\hbox{\dohighlow\lower{16}{.48}{.1}{#1}}%
+ \setbox6=\hbox{\dohighlow\raise{14}{.86}{.1}{#2}}%
+ \ifdim\wd4<\wd6
+ \wd4=\!!zeropoint\box4\box6
+ \else
+ \wd6=\!!zeropoint\box6\box4
+ \fi}}
+
%D This module has only a few setups:
\setupunderbar
diff --git a/tex/context/base/core-gen.tex b/tex/context/base/core-gen.tex
index 9ecded535..3876db095 100644
--- a/tex/context/base/core-gen.tex
+++ b/tex/context/base/core-gen.tex
@@ -135,10 +135,10 @@
\def\assignvalue#1#2#3#4#5%
{\processaction
[#1]
- [ \v!klein=>\def#2{#3},
- \v!middel=>\def#2{#4},
- \v!groot=>\def#2{#5},
- \s!unknown=>\def#2{#1}]}
+ [ \v!klein=>\edef#2{#3},
+ \v!middel=>\edef#2{#4},
+ \v!groot=>\edef#2{#5},
+ \s!unknown=>\edef#2{#1}]}
%D \macros
%D {assignwidth}
diff --git a/tex/context/base/core-grd.tex b/tex/context/base/core-grd.tex
index e1dcd4b9d..f5518afec 100644
--- a/tex/context/base/core-grd.tex
+++ b/tex/context/base/core-grd.tex
@@ -57,7 +57,7 @@
%D calculated from the dimensions of a~(. One can disble the
%D correction by calling \type {\offbaselinecorrection}.
%D
-%D When visulaize the first example looks like:
+%D When visualize the first example looks like:
%D
%D {\showbaselinecorrection\haalbuffer[1]}
%D
@@ -260,8 +260,7 @@
\newif\iftracegridsnapping
\newif\ifshowfuzzyskips
-\def\snaptogrid#1% #1 == \hbox or \vbox
- {\ifgridsnapping\expandafter\dosnaptogrid\expandafter#1\fi}
+\chardef\@@alignsnap=0
\def\tracesnapping%
{\iftracegridsnapping
@@ -279,9 +278,25 @@
\vl\currentsnap\vl}}%
\fi}
-\def\dosnaptogrid%
+\def\snaptogrid% [#1]#2 -> #2 == \hbox|\vbox
+ {\dosingleempty\dosnaptogrid}
+
+\def\dosnaptogrid[#1]%
+ {\ifgridsnapping
+ \iffirstargument\verplaatsopgrid[#1]\fi\expandafter\dodosnaptogrid
+ \fi}
+
+\def\dodosnaptogrid%
{\dowithnextbox
{\bgroup
+ \ifcase\@@alignsnap\else % 1=top 2=high 3=middle 4=low
+ \getnoflines{\ht\nextbox}
+ \setbox\nextbox=\vbox to \noflines\lineheight
+ {\ifnum\@@alignsnap=1 \kern\lineheight\kern-\topskip\fi
+ \ifnum\@@alignsnap>2 \vfill\fi
+ \box\nextbox
+ \ifnum\@@alignsnap<4 \vfill\fi}
+ \fi
\forgetall
\par
\ifvbox\nextbox
@@ -364,6 +379,7 @@
\fi
\extrasnapreset
\enablepresnapcorrection
+ \global\chardef\@@alignsnap0
\egroup}}
\def\snaptomathgrid% probably not working ok
@@ -456,6 +472,7 @@
\def\doverplaatsopgrid[#1]%
{\ifgridsnapping
+ \global\chardef\@@alignsnap0
\processaction
[#1]
[ \v!boven=>\gridwarning+\positiveextrasnap\extrasnapbefore,
@@ -464,6 +481,11 @@
-\v!boven=>\gridwarning-\negativeextrasnap\extrasnapbefore,
-\v!onder=>\gridwarning-\negativeextrasnap\extrasnapafter,
-\v!beide=>\negativeextrasnap\extrasnaparound,
+ \v!pagina=>\global\chardef\@@alignsnap1, % topskip
+ \v!hoog=>\global\chardef\@@alignsnap2,
+ \v!midden=>\global\chardef\@@alignsnap3,
+ \v!laag=>\global\chardef\@@alignsnap4,
+ \v!reset=>\positiveextrasnap\extrasnapreset,
\s!default=>\positiveextrasnap\extrasnaparound,
\s!unknown=>\positiveextrasnap\extrasnapreset]%
\fi}
diff --git a/tex/context/base/core-int.tex b/tex/context/base/core-int.tex
index 74377e35a..e99c6af56 100644
--- a/tex/context/base/core-int.tex
+++ b/tex/context/base/core-int.tex
@@ -15,6 +15,66 @@
\writestatus{loading}{Context Core Macros / Interaction}
+\startmessages dutch library: interactions
+ title: interactie
+ 1: aspect ratio -- x -- (b x h)
+ 2: actief
+ 3: niet actief
+ 4: geen paginasynchronisatie (--) in hmode
+\stopmessages
+
+\startmessages english library: interactions
+ title: interaction
+ 1: aspect ratio -- x -- (b x h)
+ 2: active
+ 3: inactive
+ 4: no pagesynchronisation (--) in hmode
+\stopmessages
+
+\startmessages german library: interactions
+ title: Interaktion
+ 1: Aspekt des Verhaeltnis -- x -- (B x H)
+ 2: aktiv
+ 3: inaktiv
+ 4: keine Seitensynchronisation (--) im hmode
+\stopmessages
+
+\startmessages czech library: interactions
+ title: interakce
+ 1: pomer -- x -- (s x v)
+ 2: aktivni
+ 3: neaktivni
+ 4: zadna strankova synchronizace (--) v hmode
+\stopmessages
+
+\startmessages dutch library: versions
+ title: versie
+ 1: er mankeert een @+
+ 2: markeren pagina's
+ 3: geselecteerde pagina's: --
+\stopmessages
+
+\startmessages english library: versions
+ title: version
+ 1: missing @+
+ 2: marking pages
+ 3: selected pages: --
+\stopmessages
+
+\startmessages german library: versions
+ title: Version
+ 1: fehlendes @+
+ 2: Erstelle Seiten
+ 3: Ausgewaehlte Seiten: --
+\stopmessages
+
+\startmessages czech library: versions
+ title: verze
+ 1: postradam @+
+ 2: oznacuji se strany
+ 3: oznacene strany: --
+\stopmessages
+
\unprotect
\definesystemconstant {link}
@@ -168,6 +228,1761 @@
\fi
\egroup}
+\let\setupinteractionscreens\empty
+
+\def\berekeninteractiescherm%
+ {\doifelse{\@@scbreedte}{\v!passend}
+ {\!!widtha=\linkerrandbreedte
+ \advance\!!widtha by \linkerrandafstand
+ \advance\!!widtha by \paginascheiding
+ \advance\!!widtha by \linkermargebreedte
+ \advance\!!widtha by \linkermargeafstand
+ \ifdim\rugwit>\!!widtha\ifdim\rugwit>\!!zeropoint\relax
+ \advance\rugwit by -\!!widtha
+ \fi\fi
+ \advance\!!widtha by \zetbreedte
+ \advance\!!widtha by \rechtermargeafstand
+ \advance\!!widtha by \rechtermargebreedte
+ \advance\!!widtha by \paginascheiding
+ \advance\!!widtha by \rechterrandafstand
+ \advance\!!widtha by \rechterrandbreedte
+ \scratchdimen=\@@scrugwit
+ \advance\scratchdimen by \@@scrugoffset
+ \advance\!!widtha by 2\scratchdimen}
+ {\doifelse{\@@scbreedte}{\v!max}
+ {\!!widtha=\printpapierbreedte}
+ {\!!widtha=\@@scbreedte}}%
+ \doifelse{\@@schoogte}{\v!passend}
+ {\!!heighta=\bovenhoogte
+ \advance\!!heighta by \bovenafstand
+ \ifdim\kopwit>\!!heighta\ifdim\kopwit>\!!zeropoint\relax
+ \advance\kopwit by -\!!heighta
+ \fi\fi
+ \advance\!!heighta by \zethoogte
+ \advance\!!heighta by \onderafstand
+ \advance\!!heighta by \onderhoogte
+ \scratchdimen=\@@sckopwit
+ \advance\scratchdimen by \@@sckopoffset
+ \advance\!!heighta by 2\scratchdimen}
+ {\doifelse{\@@schoogte}{\v!max}
+ {\!!heighta=\printpapierhoogte}
+ {\!!heighta=\@@schoogte}}%
+ \doif{\@@scwachttijd}{\v!geen}{\def\@@scwachttijd{0}}}
+
+\def\initializeidentity% The macro is not to be changed;
+ {\iflocation % only the \@@ia-variables may be set!
+ \dosetupidentity % Although ConTeXt is the producer
+ {\@@iatitel} % we no longer set this field, since
+ {\@@iasubtitel} % we don't want to be bothered with
+ {\@@iaauteur} % remarks about third party documents
+ {\jobname.tex} % and/or associated with documents
+ {\@@iadatum}% % produced outside our control.
+ \global\let\initializeidentity\relax
+ \fi}
+
+\appendtoks \initializeidentity \to \everyshipout
+
+\def\initializepaper%
+ {\bgroup
+ \doif\@@pcstatus\v!start\locationfalse
+ \iflocation % without screen settings
+ \egroup
+ \dosetuppaper
+ {\papierformaat}
+ {\the\papierbreedte}
+ {\the\papierhoogte}%
+ \else
+ \egroup
+ \dosetuppaper
+ {\printpapierformaat}
+ {\the\printpapierbreedte}
+ {\the\printpapierhoogte}%
+ \fi}
+
+\def\doinitializepaper%
+ {\bgroup
+ \berekeninteractiescherm
+ \ifdim\!!widtha>\papierbreedte\ifdim\!!widtha>\!!zeropoint
+ \papierbreedte=\!!widtha
+ \fi\fi
+ \ifdim\!!heighta>\papierhoogte\ifdim\!!heighta>\!!zeropoint
+ \papierhoogte=\!!heighta
+ \fi\fi
+ \dosetuppaper
+ {\printpapierformaat}
+ {\the\papierbreedte}
+ {\the\papierhoogte}%
+ \egroup}
+
+\def\dosetupinteractionscreens% met a, b en \number
+ {\doifnot{\@@pcstatus}{\v!start}
+ {\bgroup
+ \berekeninteractiescherm
+ \processaction
+ [\@@scoptie]
+ [ \v!max=>\!!counte=1,
+ \v!bookmark=>\!!counte=2,
+ \s!unknown=>\!!counte=0,
+ \s!default=>\!!counte=0]%
+ \showmessage{\m!interactions}{1} % niet waterdicht
+ {\@EA\withoutpt\the\!!widtha,\@EA\withoutpt\the\!!heighta}%
+ \dosetupscreen
+ {\number\rugoffset}{\number\kopoffset}
+ {\number\!!widtha}{\number\!!heighta}
+ {\the\!!counte}%
+ \egroup}}
+
+\def\dostelinteractieschermin[#1]%
+ {\getparameters[\??sc][#1]%
+ \ifproductionrun
+ \let\initializepaper\doinitializepaper
+ \let\setupinteractionscreens\dosetupinteractionscreens
+ \fi}
+
+\def\stelinteractieschermin%
+ {\dosingleempty\dostelinteractieschermin}
+
+%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 overuled hoofdstuk
+%
+% .... text ....
+%
+% \placebookmarks [hoofdstuk,paragraaf,subparagraaf,subsubparagraaf,mylist]
+% [open list]
+%
+% \bookmark[mylist]{whatever}
+
+\def\@@bookmark {bm::}
+\def\@@booklevel{bl::}
+\def\@@bookcount{bc::}
+
+\definieerlijst[\@@bookmark]
+
+\appendtoks\flushpostponedbookmark\to\everypar
+\appendtoks\flushpostponedbookmark\to\neverypar
+
+\let\flushpostponedbookmark\relax
+
+\def\simplebookmark#1%
+ {\ifx\flushpostponedbookmark\relax \else
+ \bgroup
+ \convertargument#1\to\ascii
+ \writestatus{system}{clashing bookmarks: \ascii}% ECHTE MESSAGE MAKEN
+ \egroup
+ \fi
+ \gdef\flushpostponedbookmark%
+ {\global\let\flushpostponedbookmark\relax
+ \schrijfnaarlijst[\@@bookmark]{}{#1}}}
+
+\def\complexbookmark[#1]#2%
+ {\schrijfnaarlijst[#1]{}{#2}}
+
+\definecomplexorsimple\bookmark
+
+%\def\insertbookmark[#1]#2%
+% {\bgroup
+% \doifreferencefoundelse{#1}
+% {\doinsertbookmark{0}{0}{#2}{\currentrealreference}}{1}
+% {\unknownreference{#1}}%
+% \egroup}
+
+\newif\iftracebookmarks \tracebookmarksfalse
+
+\let\tracebookmarks\tracebookmarkstrue
+
+\def\placebookmarks%
+ {\dodoubleempty\doplacebookmarks}
+
+\def\doplacebookmarks[#1][#2]%
+ {\iflocation
+ \iffirstargument
+ \bgroup
+ \ifsecondargument
+ \edef\openbookmarklist{#2}%
+ \else
+ \let\openbookmarklist=\empty
+ \fi
+ \global\let\bookmarklevellist=\empty
+ \def\bookmarklevelcount{0}%
+ \doprocessbookmarks[#1]\dogetbookmarkelement
+ \dolijstelement{}{}{}{}{}{}% needed to finish the first pass
+ \doprocessbookmarks[#1]\doputbookmarkelement
+ \flushbookmark
+ \egroup
+ \else
+ \expanded{\placebookmarks\@EA[\getvalue{\??ih\v!inhoud\c!lijst}]}%
+ \fi
+ \fi}
+
+\def\doprocessbookmarks[#1]#2%
+ {\let\dolijstelement=#2\relax
+ \scratchcounter=0
+ \def\docommando##1%
+ {\advance\scratchcounter by 1
+ \getlistlevel[##1]\listlevel{\the\scratchcounter}%
+ \setxvalue{\@@bookcount\the\scratchcounter}{1}%
+ \setxvalue{\@@booklevel##1}{\listlevel}}%
+ \processcommalist[#1]\docommando
+ \setxvalue{\@@bookcount0}{1}%
+ \global\chardef\currentbookmarklevel=0
+ \global\chardef\previousbookmarklevel=0
+ \doutilities{#1,\@@bookmark}{\jobname}{#1}{}{}}
+
+\def\dodogetbookmarkelement#1#2#3#4#5#6%
+ {%\doifsomething{#1}
+ % {\global\chardef\currentbookmarklevel=\getvalue{\@@booklevel#1}}%
+ \doifelsenothing{#1}
+ {\global\chardef\currentbookmarklevel=0\relax}
+ {\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 by -1
+ \dorecurse{\!!countb}
+ {\edef\bookmarktag%
+ {\bookmarktag\getvalue{\@@bookcount\recurselevel}:}}%
+ \edef\bookmarklevelcount%
+ {\getvalue{\@@bookcount\the\!!counta}}%
+ \xdef\bookmarklevellist%
+ {\bookmarklevellist/\bookmarktag:\bookmarklevelcount/}%
+ \advance\!!counta by -1
+ \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\docommando\@EA[\@EA##\@EA1\@EA/\bookmarktag:##2/##3]%
+ {\def\bookmarklevelcount{##2}}%
+ \@EA\@EA\@EA\docommando\@EA\@EA\@EA[\@EA\bookmarklevellist\@EA/\bookmarktag:0/]}
+
+\def\dodoputbookmarkelement#1#2#3#4#5#6%
+ {%\doifsomething{#1}
+ % {\global\chardef\currentbookmarklevel=\getvalue{\@@booklevel#1}}%
+ \doifelsenothing{#1}
+ {\global\chardef\currentbookmarklevel=0\relax}
+ {\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=1}
+ {\chardef\openbookmark=0}%
+ \iftracebookmarks(#6: #4)\quad(\the\openbookmark)\par\fi
+ \doinsertbookmark{#2}{#3}{#4}{#5}{\openbookmark}}
+
+% \startinteractiemenu[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 \\
+% \stopinteractiemenu
+
+\newif\iflocationmenupermitted
+
+\def\testinteractiemenu#1%
+ {\iflocation
+ \doifelse{\@@iamenu}{\v!aan}
+ {\doifelsevalue{\??am#1\c!status}{\v!start}
+ {\global\locationmenupermittedtrue}
+ {\global\locationmenupermittedfalse}}
+ {\global\locationmenupermittedfalse}%
+ \else
+ \global\locationmenupermittedfalse
+ \fi}
+
+\def\doblokkeerinteractiemenu[#1][#2][#3]%
+ {\def\dodoblokkeerinteractiemenu##1%
+ {\doifelse{#3}{}
+ {\setevalue{\??am##1\c!blokkade}{}}
+ {\edef\interactieblokkade{\getvalue{\??am##1\c!blokkade}}
+ \def\docommando####1%
+ {#1{####1}{\interactieblokkade}}% #1 = \remove or \add
+ \processcommalist[#3]\docommando
+ \setevalue{\??am##1\c!blokkade}{\interactieblokkade}}}%
+ \processcommalist[#2]\dodoblokkeerinteractiemenu}
+
+\def\blokkeerinteractiemenu%
+ {\dotripleempty\doblokkeerinteractiemenu[\addtocommalist]}
+
+\def\geefinteractiemenuvrij%
+ {\dotripleempty\doblokkeerinteractiemenu[\removefromcommalist]}
+
+% ja : kader/achtergrond met tekst
+% leeg : kader/achtergrond maar geen tekst
+% nee : alleen ruimte reserveren
+% geen : helemaal weglaten
+
+\newif\iflocationdummy
+\newif\ifskippedmenuitem
+
+\def\dosetlocationbox#1[#2]#3#4%
+ {\global\skippedmenuitemfalse
+ \setbox\locationbox=\hbox
+ {% anders cyclische aanroep !
+ \resetgoto
+ \iflocationdummy
+ \edef\locationboxborder{\getvalue{#1\c!kader}}%
+ \edef\locationboxbackground{\getvalue{#1\c!achtergrond}}%
+ \else
+ \edef\locationboxborder{\v!uit}%
+ \edef\locationboxbackground{}%
+ \fi
+ \localframed[#1]
+ [\c!kader=\locationboxborder,
+ \c!achtergrond=\locationboxbackground,
+ #2]
+ {\dolocationattributes{#1}\c!letter\c!kleur{#3}}}%
+ \hbox{#4{\box\locationbox}}}%{\copy\locationbox}}}
+
+\def\setlocationboxyes#1[#2]#3[#4]%
+ {\ifx\currentouterreference\empty
+ \ifrealreferencepage\!!doneatrue\else\!!doneafalse\fi
+ %\doifelse{\currentrealreference}{\realfolio}
+ % {\!!doneatrue}{\!!doneafalse}%
+ \else
+ \!!doneafalse
+ \fi
+ \if!!donea
+ \ifcase0\getvalue{#1\c!zelfdepagina}\relax
+ \bgroup
+ \locationdummytrue
+ \setevalue{#1\c!kleur}{\getvalue{#1\c!contrastkleur}}%
+ \dosetlocationbox{#1}[#2,\c!leeg=\v!nee]{#3}{\gotolocation{#4}}%
+ \egroup
+ \or
+ \locationdummytrue
+ \dosetlocationbox{#1}[#2,\c!leeg=\v!ja]{#3}{\gotolocation{#4}}%
+ \or
+ \locationdummyfalse
+ \dosetlocationbox{#1}[#2,\c!leeg=\v!ja]{#3}{\gotolocation{#4}}%
+ \or
+ \locationdummyfalse
+ \global\skippedmenuitemtrue
+ \fi
+ \else
+ \locationdummytrue
+ \dosetlocationbox{#1}[#2,\c!leeg=\v!nee]{#3}{\gotolocation{#4}}%
+ \fi}
+
+\def\setlocationboxnop#1[#2]#3[#4]%
+ {\ifcase\getvalue{#1\c!onbekendeverwijzing}\relax
+ \locationdummytrue
+ \dosetlocationbox{#1}[#2,\c!leeg=\v!nee]{#3}{}%
+ \or
+ \locationdummytrue
+ \dosetlocationbox{#1}[#2,\c!leeg=\v!ja]{#3}{}%
+ \or
+ \locationdummyfalse
+ \dosetlocationbox{#1}[#2,\c!leeg=\v!ja]{#3}{}%
+ \or
+ \locationdummyfalse
+ \global\skippedmenuitemtrue
+ \fi}
+
+%\def\setlocationbox#1[#2]#3[#4]%
+% {\doifinstringelse{#4}{\getvalue{#1\c!blokkade}}
+% {\setlocationboxnop{#1}[#2]{#3}[#4]}
+% {\doifreferencefoundelse{#4}
+% {\setlocationboxyes{#1}[#2]{#3}[#4]}
+% {\setlocationboxnop{#1}[#2]{#3}[#4]%
+% \unknownreference{#4}}}}
+
+\def\setlocationbox#1[#2]#3[#4]%
+ {\doifreferencepermittedelse{#4}{\getvalue{#1\c!blokkade}}
+ {\setlocationboxyes{#1}[#2]{#3}[#4]}
+ {\setlocationboxnop{#1}[#2]{#3}[#4]}}
+
+%\dolocationattributes{#1}\c!letter\c!kleur{#3}}}%
+
+\def\dodosetlocationcommanditem#1#2#3[#4]#5\\%
+ {\bgroup
+ \leavevmode
+ \doifelse{#5}{[]}
+ {\doifinstringelse{=}{#4}
+ {#3}
+ {\setlocationbox{\??am#1}[]{#3}[#4]}}
+ {#3}%
+ \ifskippedmenuitem \else
+ \getvalue{\??am#1#2}%
+ \fi
+ \egroup}
+
+\def\dosetlocationcommanditem#1#2#3%
+ {\dodosetlocationcommanditem{#1}{#2}#3[]\\}
+
+\def\setlocationnop#1[#2]#3%
+ {\localframed[#1][#2]{#3}}
+
+\def\executeamboxcommands#1#2#3#4#5%
+ {\processaction
+ [\getvalue{\??am#1\c!dummy}]
+ [ \v!ja=>\chardef\handleunknownmenuitem=0\relax,
+ \v!leeg=>\chardef\handleunknownmenuitem=1\relax,
+ \v!nee=>\chardef\handleunknownmenuitem=2\relax]%
+ \getvalue{\??am#1#3}\relax
+ \ifextendedmenu
+ \setamboxcommands{#1}{#4}%
+ \def\next%
+ {\ignorespaces#2}%
+ \else
+ \def\dolocationcommand##1%
+ {\dosetlocationcommanditem{#1}{#4}{##1}}%
+ \def\next%
+ {\processcommalist[#2]\dolocationcommand}%
+ \fi
+ \next
+ \unskip
+ \getvalue{\??am#1#5}}
+
+\def\setamboxcommands#1#2%
+ {\def\@@amboxcommand##1\\%
+ {\bgroup
+ \leavevmode\ignorespaces##1\unskip\relax
+ \ifskippedmenuitem \else
+ \getvalue{\??am#1#2}%
+ \fi
+ \egroup
+ \ignorespaces}%
+ \def\raw[##1]##2\\%
+ {\@@amboxcommand\naarbox{\ignorespaces##2\unskip}[##1]\\}%
+ \def\but[##1]##2\\%
+ {\@@amboxcommand\setlocationbox{\??am#1}[]{\ignorespaces##2\unskip}[##1]\\}%
+ \def\got[##1]##2\\% pas op! offset
+ {\@@amboxcommand\setlocationbox{\??am#1}[\c!kader=\v!uit,\c!achtergrond=]{\ignorespaces##2\unskip}[##1]\\}%
+ \def\nop##1\\%
+ {\@@amboxcommand\phantom{\localframed[\??am#1][]{}}\\}%
+ \def\txt##1\\%
+ {\@@amboxcommand\localframed[\??am#1][\c!kader=\v!uit,\c!achtergrond=]{\ignorespaces##1\unskip}\\}%
+ \def\rul##1\\%
+ {\@@amboxcommand\localframed[\??am#1][]{\ignorespaces##1\unskip}\\}%
+ \def\com##1\\%
+ {\ignorespaces##1\unskip\ignorespaces}}
+
+\def\@@amhbox#1#2#3#4%
+ {\testinteractiemenu{#3}%
+ \iflocationmenupermitted
+ \bgroup
+\showcomposition
+ \def\dolocationcommand##1%
+ {\dosetlocationcommanditem{#3}{##1}}%
+ \dimen0=\zetbreedte
+ \advance\dimen0 by \pagebackgroundhoffset
+ \advance\dimen0 by \pagebackgroundhoffset
+ \advance\dimen0 by -\getvalue{\??am#3\c!linkeroffset}%
+ \advance\dimen0 by -\getvalue{\??am#3\c!rechteroffset}%
+ \setbox0=\hbox to \dimen0
+ {\forgetall
+ \executeamboxcommands{#3}{#4}\c!links\c!midden\c!rechts}%
+ \wd0=\zetbreedte
+ % geen \ht=#2 setting (yet)
+ \hskip-\pagebackgroundhoffset
+ \hskip \getvalue{\??am#3\c!linkeroffset}%
+ \box0\relax
+ \egroup
+ \else
+ #1\relax
+ \fi}
+
+\def\@@amvbox#1#2#3#4% don't change skipping, this one works!
+ {\testinteractiemenu{#3}%
+ \iflocationmenupermitted
+ \bgroup
+\showcomposition
+ \dimen0=\teksthoogte
+ \advance\dimen0 by \pagebackgroundvoffset
+ \advance\dimen0 by \pagebackgroundvoffset
+ \advance\dimen0 by \pagebackgrounddepth
+ \advance\dimen0 by -\getvalue{\??am#3\c!bovenoffset}%
+ \advance\dimen0 by -\getvalue{\??am#3\c!onderoffset}%
+ \setbox0=\vbox to \dimen0
+ {\forgetall % Voor't geval de afstand
+ \stelblankoin[\v!standaard]% % (tijdelijk) is aangepast.
+ \hsize#2\relax
+ \executeamboxcommands{#3}{#4}\c!voor\c!tussen\c!na}%
+ \setbox0=\vbox
+ {\vskip-\pagebackgroundvoffset
+ \vskip\getvalue{\??am#3\c!bovenoffset}%
+ \ht0=\!!zeropoint
+ \box0
+ \vskip\pagebackgroundvoffset}% overbodig
+ \ht0=\teksthoogte
+ \wd0=#2\relax
+ \box0
+ \egroup
+ \else
+ #1\relax
+ \fi}
+
+\setvalue{\??am\s!do\v!rechts}%
+ {\@@amvbox{\dodummypageskip\v!rechts}\rechterrandbreedte}
+
+\setvalue{\??am\s!do\v!links}%
+ {\@@amvbox{\dodummypageskip\v!links}\linkerrandbreedte}
+
+\setvalue{\??am\s!do\v!boven}%
+ {\@@amhbox{\dodummypageskip\v!boven}\bovenhoogte}
+
+\setvalue{\??am\s!do\v!onder}%
+ {\@@amhbox{\dodummypageskip\v!onder}\onderhoogte}
+
+\def\dointeractiemenu#1#2%
+ {\getvalue{\??am\s!do\getvalue{\??am#1\c!plaats}}{#1}{#2}}
+
+\unexpanded\def\interactiemenu[#1]%
+ {\getvalue{\??am\c!menu#1}}
+
+\def\horizontaalinteractiemenu#1#2#3#4%
+ {\ifdim#2>\!!zeropoint % new
+ \dimen2=\!!zeropoint
+ \setbox0=\hbox
+ {\def\docommando##1%
+ {\doifnotvalue{\??am##1\c!status}{\v!geen}
+ {\hskip\dimen2
+ \setbox2=\hbox to #2
+ {\getvalue{\??am##1#3}\interactiemenu[##1]\getvalue{\??am##1#4}}%
+ \doifelsevalue{\??am##1\c!afstand}{\v!overlay}
+ {\dimen2=\!!zeropoint
+ \wd2=\!!zeropoint}%
+ {\dimen2=\getvalue{\??am##1\c!afstand}}%
+ \box2}}%
+ \startinteractie
+ \processcommacommand[\getvalue{\??am#1}]\docommando
+ \stopinteractie}%
+ \wd0=#2\relax
+ \box0\relax
+ \fi}
+
+\def\vertikaalinteractiemenu#1#2#3#4%
+ {\ifdim#2>\!!zeropoint % new
+ \dimen2=\!!zeropoint
+ \setbox0=\vbox
+ {\def\docommando##1%
+ {\doifnotvalue{\??am##1\c!status}{\v!geen}
+ {\vskip\dimen2
+ \setbox2=\vbox to #2
+ {\getvalue{\??am##1#3}\interactiemenu[##1]\getvalue{\??am##1#4}}%
+ \doifelsevalue{\??am##1\c!afstand}{\v!overlay}
+ {\dimen2=\!!zeropoint
+ \offinterlineskip
+ \dp2=\!!zeropoint
+ \ht2=\!!zeropoint}%
+ {\dimen2=\getvalue{\??am##1\c!afstand}}%
+ \box2}}%
+ \startinteractie
+ \processcommacommand[\getvalue{\??am#1}]\docommando
+ \stopinteractie}%
+ \ht0=#2\relax
+ \dp0=\!!zeropoint
+ \box0\relax
+ \fi}
+
+\def\interactiemenus[#1]%
+ {\iflocation
+ \processaction
+ [#1]
+ [ \v!links=>\horizontaalinteractiemenu\v!links\linkerrandbreedte\c!links\c!rechts,
+ \v!rechts=>\horizontaalinteractiemenu\v!rechts\rechterrandbreedte\c!links\c!rechts,
+ \v!boven=>\vertikaalinteractiemenu\v!boven\bovenhoogte\c!voor\c!na,
+ \v!onder=>\vertikaalinteractiemenu\v!onder\onderhoogte\c!voor\c!na]%
+ \else
+ \dodummypageskip{#1}%
+ \fi}
+
+\setvalue{\??am\v!links }{}
+\setvalue{\??am\v!rechts}{}
+\setvalue{\??am\v!boven }{}
+\setvalue{\??am\v!onder }{}
+
+\newif\ifextendedmenu
+
+\def\dodefinieerinteractiemenu[#1][#2][#3]%
+ {\ConvertToConstant\doifelse{#3}{}
+ {\setvalue{\??am\c!menu#1}%
+ {\extendedmenufalse\dointeractiemenu{#1}{#2}}}
+ {\setvalue{\??am\c!menu#1}%
+ {\extendedmenufalse\dointeractiemenu{#1}{}}%
+ \presetlocalframed[\??am#1]%
+ \letvalue{\??am#1\c!blokkade}\empty
+ \edef\!!stringe{\getvalue{\??am#2}}%
+ \addtocommalist{#1}\!!stringe
+ \letvalue{\??am#2}=\!!stringe
+ \doifnot{#1}{#2}
+ {\copyparameters[\??am#1][\??am#2]
+ [\c!links,\c!midden,\c!rechts,\c!voor,\c!na,\c!tussen,
+ \c!breedte,\c!hoogte,\c!afstand,\c!offset,\c!kader,
+ \c!achtergrond,\c!achtergrondkleur,\c!achtergrondraster,
+ \c!letter,\c!kleur,\c!contrastkleur,\c!zelfdepagina,\c!onbekendeverwijzing,
+ \c!linkeroffset,\c!rechteroffset,\c!bovenoffset,\c!onderoffset]}%
+ \ConvertToConstant\doifinstringelse{=}{#3}
+ {\getparameters[\??am#1][\c!plaats=#2,#3]}%
+ {\doifnot{#2}{#3}
+ {\copyparameters[\??am#1][\??am#3]
+ [\c!links,\c!midden,\c!rechts,\c!voor,\c!na,\c!tussen,
+ \c!breedte,\c!hoogte,\c!afstand,\c!offset,\c!kader,
+ \c!achtergrond,\c!achtergrondkleur,\c!achtergrondraster,
+ \c!letter,\c!kleur,\c!zelfdepagina,\c!onbekendeverwijzing,
+ \c!linkeroffset,\c!rechteroffset,\c!bovenoffset,\c!onderoffset]}%
+ \getparameters[\??am#1][\c!plaats=#2]}}}
+
+\def\definieerinteractiemenu%
+ {\dotripleempty\dodefinieerinteractiemenu}
+
+\processbetween{\e!interactiemenu}\dostartinteractiemenu
+
+\def\dostartinteractiemenu#1%
+ {\dodostartinteractiemenu#1\dodostopinteractiemenu}
+
+\def\dodostartinteractiemenu[#1]#2\dodostopinteractiemenu%
+ {\setvalue{\??am\c!menu#1}{\extendedmenutrue\dointeractiemenu{#1}{#2}}}
+
+\def\dododostelinteractiemenuin#1%
+ {\processaction
+ [\getvalue{#1}]
+ [ \v!ja=>\setvalue{#1}{0},
+ \v!leeg=>\setvalue{#1}{1},
+ \v!nee=>\setvalue{#1}{2},
+ \v!geen=>\setvalue{#1}{3},
+ \s!default=>\setvalue{#1}{1}]}
+
+\def\dodostelinteractiemenuin[#1][#2]%
+ {\def\docommando##1%
+ {\getparameters[\??am##1][#2]%
+ \dododostelinteractiemenuin{\??am##1\c!onbekendeverwijzing}%
+ \dododostelinteractiemenuin{\??am##1\c!zelfdepagina}}%
+ \processcommalist[#1]\docommando}
+
+\def\dostelinteractiemenuin[#1][#2]%
+ {\ConvertToConstant\doifinstringelse{=}{#2}
+ {\dodostelinteractiemenuin[#1][#2]}
+ {\dodefinieerinteractiemenu[#1][#2][]}}
+
+\def\stelinteractiemenuin%
+ {\dodoubleargument\dostelinteractiemenuin}
+
+% \scherm moet worden als \pagina
+
+\def\simplescherm% zou niet nodig moeten zijn
+ {\iflocation
+ \pagina[\v!ja]%
+ \fi}
+
+\def\complexscherm[#1]%
+ {\iflocation
+ \pagina[#1]%
+ \fi}
+
+\definecomplexorsimple\scherm
+
+\def\domenubutton[#1][#2]#3[#4]%
+ {\bgroup
+ \locationdummytrue
+ \iffirstargument
+ \ifsecondargument
+ \setlocationbox{\??am#1}[#2]{#3}[#4]%
+ \else
+ \ConvertToConstant\doifinstringelse{=}{#1}
+ {\setlocationbox{\??bt}[#1]{#3}[#4]}
+ {\setlocationbox{\??am#1}[]{#3}[#4]}%
+ \fi
+ \else
+ \setlocationbox{\??bt}[]{#3}[#4]%
+ \fi
+ \egroup}
+
+\unexpanded\def\menubutton%
+ {\dodoubleempty\domenubutton}
+
+\def\domenubox[#1][#2]#3%
+ {\bgroup
+ \def\setlocationbox##1[##2]##3[##4]%
+ {\localframed[##1][##2]%
+ {\dolocationattributes{##1}\c!letter\c!kleur{##3}}}%
+ \domenubutton[#1][#2]#3[]%
+ \egroup}
+
+\def\menubox%
+ {\dodoubleempty\domenubox}
+
+% Hier volgen de synchronisatiemacro's:
+
+\def\syncprefix{sync}
+\def\syncmarker{syncmark}
+
+%\definieermarkering[\syncmarker]
+%\stelmarkeringin[\syncmarker][\c!expansie=\v!ja]
+
+\newmark\syncmarker
+
+\newcounter\synccounter
+
+\newif\ifsynchronisation
+
+\def\startsynchronisatie%
+ {\iflocation\ifsynchronisation
+ \doglobal\increment\synccounter
+ \fi\fi}
+
+\def\stopsynchronisatie%
+ {\iflocation\ifsynchronisation
+ %\thisisdestination{\syncprefix:\synccounter}%
+ \paginareferentie[\syncprefix:\synccounter]%
+ \ifvmode
+ \@EA\setmark\@EA\syncmarker\@EA{\synccounter} % \marking[\syncmarker]{\synccounter}%
+ \else
+ \showmessage{\m!interactions}{4}{\synccounter}%
+ \fi
+ \fi\fi}
+
+\def\synchroniseer%
+ {\startsynchronisatie
+ \stopsynchronisatie}
+
+\def\dostelsynchronisatiein[#1]%
+ {\getparameters[\??sy][#1]%
+ \doifelse{\@@systatus}{\v!start}
+ {\synchronisationtrue}
+ {\synchronisationfalse}}
+
+\def\stelsynchronisatiein%
+ {\dosingleargument\dostelsynchronisatiein}
+
+\def\definieersynchronisatie%
+ {\dosingleargument\dodefinieersynchronisatie}
+
+\def\stelsynchronisatiebalkin%
+ {\dodoubleargument\getparameters[\??ba]}
+
+\presetlocalframed[\??ba]
+
+\setvalue{synchronisatie\v!pagina}[#1]%
+ {\bgroup
+ \setupinteraction[\c!breedte=\!!zeropoint]%
+ \setbox0=\hbox
+ {\localframed[\??ba][]%
+ {\dolocationattributes\??ba\c!letter\c!kleur{\strut\@@batekst}}}%
+ \mindermeldingen
+ \def\onder%
+ {\leaders\hrule\!!depth1ex\!!height-.5ex\hfil}%
+ \def\boven##1##2##3%
+ {\dimen0=\wd0
+ \divide\dimen0 by 3
+ \multiply\dimen0 by ##2\relax
+ \dimen2=.25em
+ \advance\dimen0 by -##3\dimen2
+ %\gotodestination
+ % {}{#1}{\syncprefix:##1}{}
+ % {\hbox to \dimen0{\color[\locationcolor\@@bakleur]{\onder}}}}%
+ \naarbox
+ {\hbox to \dimen0{\color[\locationcolor\@@bakleur]{\onder}}}%
+ [#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
+ \boven\first30\relax
+ \else
+ \boven\first21\hss\boven\bot11\relax
+ \fi
+ \else
+ \ifnum\first=\bot\relax
+ \boven\top11\hss\boven\first21\relax
+ \else
+ \boven\top11\hss\boven\first11\hss\boven\bot11\relax
+ \fi
+ \fi}%
+ \wd2=\!!zeropoint\box2
+ \box0\relax}%
+ \egroup}
+
+\setvalue{synchronisatie\v!lokaal}[#1]%
+ {\bgroup
+ \setupinteraction[\c!breedte=\!!zeropoint]%
+ \def\blackrule{\hbox{\vrule\!!height.5em\!!width.5em}}%
+ %\gotodestination
+ % {}{##1}{\syncprefix:#1}{0}
+ % {\color[\locationcolor\@@bakleur]{\blackrule}}%
+ \naarbox %
+ {\color[\locationcolor\@@bakleur]{\blackrule}}%
+ [#1::\syncprefix:\synccounter]%
+ \egroup}
+
+\def\synchronisatiebalk[#1][#2]%
+ {\iflocation\ifsynchronisation
+ \bgroup
+ \stelsynchronisatiebalkin
+ [\c!tekst=\getvalue{doc:des:#1},#2]%
+ \getvalue{synchronisatie\@@bavariant}[#1]%
+ \egroup
+ \fi\fi}
+
+% Dit is leuke toepassing van glue!
+
+\newbox\meterbox
+
+\newif\ifbalksymbool
+
+\def\doganaareenpagina#1#2#3% nog checken !
+ {\checkreferences % nodig ??
+ \iflocation
+ \ifnum#3=\realpageno
+ {#2}%
+ \else
+ \doifelsenothing{#1}
+ {\hbox{\gotorealpage{}{}{#3}
+ {#2}}}
+ {\hbox{\gotorealpage{}{}{#3}
+ {\dolocationattributes{#1}\c!letter\c!kleur{#2}}}}%
+ \fi
+ \else
+ {#2}%
+ \fi}
+
+\def\interactiebalka%
+ {\iflocation
+ \bgroup
+ \setupinteraction[\c!breedte=\!!zeropoint]%
+ \setupblackrules[\c!hoogte=\v!max,\c!diepte=\v!max]% maten ??
+ \!!widthb=\@@ibbreedte\relax
+ \advance\!!widthb by -2.75em\relax
+ \!!widtha=\!!widthb\relax
+ \divide\!!widtha by \lastpage\relax
+ \bgroup
+ \advance\realpageno by -1\relax
+ \ifvoid\meterbox
+ \bgroup
+ \processaction
+ [\@@ibstap]
+ [ \v!klein=>\dimen0=.25em\relax,
+ \v!middel=>\dimen0=.5em\relax,
+ \v!groot=>\dimen0=1em\relax,
+ \s!unknown=>\dimen0=\!!widtha]%
+ \ifdim\!!widtha<\dimen0\relax
+ \!!counta=\dimen0\relax
+ \!!countb=\!!widtha
+ \divide\!!counta by \!!countb
+ \else
+ \!!counta=\@@ibstap\relax
+ \fi
+ \!!widtha=\!!counta\!!widtha
+ \setbox0=\hbox{\blackrule[\c!breedte=\!!widtha]}%
+ \global\setbox\meterbox=\hbox to \!!widthb
+ {\hss
+ \for \teller=1 \to \lastpage \step \!!counta \do
+ {\gotorealpage{}{}{\teller}{\copy0}}%
+ \hss}%
+ \global\wd\meterbox=\!!zeropoint\relax
+ \egroup
+ \fi
+ \egroup
+ \noindent
+ \strut
+ \hbox to \@@ibbreedte
+ {\mindermeldingen
+ \setupblackrules[\c!breedte=1em]%
+ \doganaareenpagina\??ib\blackrule\firstpage
+ \hss
+ \color[middlegray]{\copy\meterbox}%
+ \hbox to \!!widthb
+ {\ifdim\!!widtha<1em\relax
+ \!!widtha=1em\relax
+ \fi
+ \setupblackrules[\c!breedte=\!!widtha]%
+ \ifnum\realpageno>1\relax
+ \!!counta=\realpageno
+ \advance\!!counta by -2\relax
+ \hskip\!!zeropoint\!!plus\!!counta sp\relax % cm gives overflow
+ \doganaareenpagina\??ib\blackrule\prevpage
+ \fi
+ \color[\@@ibcontrastkleur]{\blackrule[\c!breedte=.5em]}%
+ \ifnum\realpageno<\lastpage\relax
+ \doganaareenpagina\??ib\blackrule\nextpage
+ \!!counta=\lastpage\relax
+ \advance\!!counta by -\realpageno
+ \advance\!!counta by -1\relax
+ \hskip\!!zeropoint\!!plus\!!counta sp\relax % cm gives overflow
+ \fi}%
+ \hss
+ \doganaareenpagina\??ib\blackrule\lastpage}%
+ \egroup
+ \fi}
+
+\presetlocalframed[\??ib]
+
+\def\interactiebalkc%
+ {\iflocation
+ \ifnum\lastpage>1
+ \hbox to \@@ibbreedte
+ {\setupblackrules[\c!hoogte=\@@ibhoogte,\c!diepte=\@@ibdiepte]%
+ \def\gotox##1%
+ {\doganaareenpagina{}{\blackrule[\c!breedte=##1]}}%
+ \dimen0=\@@ibbreedte\relax
+ \advance\dimen0 by -4em
+ \!!counta=\lastpage
+ \advance\!!counta by -1
+ \divide\dimen0 by \!!counta
+ \!!counta=\realpageno
+ \advance\!!counta by -1
+ \!!widtha=\!!counta\dimen0\relax
+ \!!countb=\lastpage
+ \advance\!!countb by -\realpageno
+ \!!widthb=\!!countb\dimen0
+ \startcolor[\locationcolor\@@ibkleur]%
+ \gotox{1em}\firstpage
+ \hss
+ \gotox{\!!widtha}\prevpage
+ \color[\@@ibcontrastkleur]{\blackrule[\c!breedte=1em]}%
+ \gotox{\!!widthb}\nextpage
+ \hss
+ \gotox{1em}\lastpage
+ \stopcolor}%
+ \fi
+ \fi}
+
+\def\interactiebalkd%
+ {\iflocation\ifshowingsubpage
+ \ifnum\nofsubpages>1
+ \hbox
+ \bgroup
+ \setupinteraction[\c!breedte=\!!zeropoint]%
+ \ifbalksymbool % beter: 3 chars assign en 3*box
+ \setupsymbolset[\@@iasymboolset]%
+ \setbox0=\hbox{\symbol[\v!vorige]}%
+ \setbox2=\hbox{\symbol[\v!ergens]}%
+ \setbox4=\hbox{\symbol[\v!volgende]}%
+ \else
+ \setbox0=\hbox
+ {\vrule
+ \!!height\@@ibhoogte
+ \!!depth\@@ibdiepte
+ \!!width\@@ibbreedte}%
+ \setbox2=\copy0
+ \setbox4=\copy0
+ \fi
+ \startcolor[\locationcolor\@@ibkleur]%
+ \for\teller=1\to\nofsubpages\step1\do
+ {\bgroup
+ \increment(\teller,\firstsubpage)\relax
+ \decrement\teller\relax
+ \ifnum\teller<\realpageno\relax
+ \gotorealpage{}{}{\teller}{\copy0}\relax
+ \else\ifnum\teller=\realpageno\relax
+ \color
+ [\@@ibcontrastkleur]
+ {\gotorealpage{}{}{\teller}{\copy2}}%
+ \else
+ \gotorealpage{}{}{\teller}{\copy4}\relax
+ \fi\fi
+ \egroup
+ \hskip\@@ibafstand}%
+ \unskip
+ \stopcolor
+ \egroup
+ \fi
+ \fi\fi}
+
+\def\interactiebalke% KAN WORDEN GECOMBINEERD MET D
+ {\iflocation\ifshowingsubpage
+ \ifnum\nofsubpages>1
+ \bgroup
+ \!!widthb=\@@ibafstand
+ \multiply\!!widthb by \nofsubpages
+ \advance\!!widthb by -\@@ibafstand % (n-1)
+ \!!widtha=\@@ibbreedte
+ \advance\!!widtha by -\!!widthb
+ \divide\!!widtha by \nofsubpages\relax
+ \ifdim\!!widtha<\@@ibafstand\relax
+ \interactiebalkf
+ \else
+ \setupinteraction[\c!breedte=\!!zeropoint]%
+ \noindent
+ \hbox to \@@ibbreedte
+ \bgroup
+ \ifbalksymbool
+ \setupsymbolset[\@@iasymboolset]%
+ \setbox0=\hbox{\symbol[\v!vorige]}%
+ \setbox2=\hbox{\symbol[\v!ergens]}%
+ \setbox4=\hbox{\symbol[\v!volgende]}%
+ \else
+ \setbox0=\hbox
+ {\vrule
+ \!!height\@@ibhoogte
+ \!!depth\@@ibdiepte
+ \!!width\!!widtha}%
+ \setbox2=\copy0
+ \setbox4=\copy0
+ \fi
+ \startcolor[\locationcolor\@@ibkleur]%
+ \for\teller=1\to\nofsubpages\step1\do
+ {\bgroup
+ \increment(\teller,\firstsubpage)\relax
+ \decrement\teller\relax
+ \ifnum\teller<\realpageno\relax
+ \gotorealpage{}{}{\teller}{\copy0}\relax
+ \else\ifnum\teller=\realpageno\relax
+ \color
+ [\@@ibcontrastkleur]
+ {\gotorealpage{}{}{\teller}{\copy2}}%
+ \else
+ \gotorealpage{}{}{\teller}{\copy4}\relax
+ \fi\fi
+ \egroup
+ \hss}%
+ \unskip
+ \stopcolor
+ \egroup
+ \fi
+ \egroup
+ \fi
+ \fi\fi}
+
+\def\interactiebalkf% !! KAN WORDEN GECOMBINEERD MET D !!
+ {\iflocation\ifshowingsubpage
+ \ifnum\nofsubpages>1
+ \setupinteraction[\c!breedte=\!!zeropoint]%
+ \noindent
+ \hbox to \@@ibbreedte
+ \bgroup
+ \!!countb=0
+ \loop
+ \advance\!!countb by 1
+ \!!countc=\nofsubpages
+ \divide\!!countc by \!!countb
+ \advance\!!countc by 1
+ \!!widthb=\@@ibafstand
+ \multiply\!!widthb by \!!countc
+ \advance\!!widthb by -\@@ibafstand
+ \!!widtha=\@@ibbreedte
+ \advance\!!widtha by -\!!widthb
+ \divide\!!widtha by \!!countc
+ \ifdim\!!widtha<\@@ibafstand\relax
+ \repeat
+\advance\!!countc by -2
+\!!widtha=-\@@ibafstand
+\!!widtha=\!!countc\!!widtha
+\advance\!!widtha by \@@ibbreedte
+\advance\!!countc by 1
+\divide\!!widtha by \!!countc
+ \ifbalksymbool
+ \setupsymbolset[\@@iasymboolset]%
+ \setbox0=\hbox{\symbol[\v!vorige]}%
+ \setbox4=\hbox{\symbol[\v!ergens]}%
+ \setbox8=\hbox{\symbol[\v!volgende]}%
+ \setbox2=\copy4
+ \setbox6=\copy4
+ \else
+ \setbox0=\hbox
+ {\vrule
+ \!!height\@@ibhoogte
+ \!!depth\@@ibdiepte
+ \!!width\!!widtha}%
+ \setbox4=\copy0
+ \setbox8=\copy0
+ \setbox2=\hbox
+ {\vrule
+ \!!height.5\ht0
+ \!!depth.5\dp0
+ \!!width\!!widtha}%
+ \ht2=\ht0
+ \dp2=\dp0
+ \setbox6=\copy2
+ \fi
+ \def\gotox##1%
+ {\ifnum\teller=\realpageno
+ \color
+ [\@@ibcontrastkleur]
+ {\gotorealpage{}{}{\teller}{\copy##1}}%
+ \else
+ \gotorealpage{}{}{\teller}{\copy##1}%
+ \fi
+ \!!countf=0
+ \hss}%
+ \startcolor[\locationcolor\@@ibkleur]%
+ \!!countc=\realpageno \advance\!!countc by -2
+ \!!countd=\realpageno \advance\!!countd by 2
+ \!!countf=0
+ \for\teller=\firstsubpage\to\lastsubpage\step1\do
+ {\!!doneafalse
+ \advance\!!countf by 1
+ \ifnum\teller=\firstsubpage\relax \!!doneatrue \fi
+ \ifnum\teller=\lastsubpage\relax \!!doneatrue \fi
+ \ifnum\teller>\!!countc \ifnum\teller<\!!countd \!!doneatrue \fi\fi
+ \if!!donea
+ \ifnum\teller<\realpageno
+ \gotox0%
+ \else\ifnum\teller>\realpageno
+ \gotox4%
+ \else
+ \gotox8%
+ \fi\fi
+ \else\ifnum\!!countf=\!!countb
+ \ifnum\teller<\realpageno
+ \gotox2%
+ \else\ifnum\teller>\realpageno
+ \gotox6%
+ \else
+ \gotox4%
+ \fi\fi
+ \fi\fi}%
+ \unskip
+ \stopcolor
+ \egroup
+ \fi
+ \fi\fi}
+
+\def\interactiebalkb%
+ {\ifnum\lastpage>\firstpage\relax
+ \interactiebuttons
+ [\v!eerstepagina,
+ \v!vorigepagina,
+ \v!volgendepagina,
+ \v!laatstepagina]%
+ \fi}
+
+\def\interactiebalkg%
+ {\ifnum\lastsubpage>\firstsubpage\relax
+ \interactiebuttons
+ [\v!eerstesubpagina,
+ \v!vorigesubpagina,
+ \v!volgendesubpagina,
+ \v!laatstesubpagina]%
+ \fi}
+
+\def\checkinteractiebalk#1#2#3%
+ {\ifdim\@@ibbreedte=\!!zeropoint\def\@@ibbreedte{#1}\fi
+ \doifnothing{\@@ibhoogte}{\def\@@ibhoogte{#2}}%
+ \doifnothing{\@@ibdiepte}{\def\@@ibdiepte{#3}}}
+
+\def\complexinteractiebalk[#1]%
+ {\doifelse{#1}{\v!reset}
+ {\global\setbox\meterbox=\box\voidb@x}%
+ {\bgroup
+ \iflocation
+ \checksubpages % goes wrong / loads \numberofpages too
+ \getparameters[\??ib][#1]%
+ \doif{\@@ibstatus}{\v!start}
+ {\startinteractie
+ \processaction % breedte defaults !
+ [\@@ibvariant]
+ [ c=>\checkinteractiebalk{.5em}\v!max \v!max,
+ d=>\checkinteractiebalk{.5em}{.5em} \!!zeropoint,
+ e=>\checkinteractiebalk{.5em}{.5em} \!!zeropoint,
+ f=>\checkinteractiebalk{.5em}{.5em} \!!zeropoint,
+ \s!default=>\checkinteractiebalk{10em}\v!ruim\!!zeropoint,
+ \s!unknown=>\checkinteractiebalk{10em}\v!ruim\!!zeropoint]%
+ \doifelse{\@@ibsymbool}{\v!ja}
+ {\balksymbooltrue}{\balksymboolfalse}%
+ \getvalue{interactiebalk\@@ibvariant}%
+ \stopinteractie}%
+ \fi
+ \egroup}}
+
+\definecomplexorsimpleempty\interactiebalk
+
+\def\stelinteractiebalkin%
+ {\dodoubleargument\getparameters[\??ib]}
+
+% Er wordt vooralsnog uitgegaan van een symmetrische
+% start-stop situatie.
+
+\def\c!profiel!! {profiel:} % brrr
+\def\c!versie!! {versie:}
+
+\def\dodefinieerprofiel[#1][#2]%
+ {\iflocation
+ \def\dododefinieerprofiel##1%
+ {\def\dodododefinieerprofiel####1%
+ {\doifdefinedelse{\c!profiel!!####1}%
+ {\edef\!!stringa{\getvalue{\c!profiel!!####1}}%
+ \setevalue{\c!profiel!!####1}{\!!stringa,##1}}%
+ {\setevalue{\c!profiel!!####1}{##1}}}%
+ \processcommalist[#2]\dodododefinieerprofiel}%
+ \processcommalist[#1]\dododefinieerprofiel
+ \fi}
+
+\def\definieerprofiel%
+ {\dodoubleargument\dodefinieerprofiel}
+
+% 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}
+ {\number\papierbreedte}{\number\papierhoogte}
+ {\profilepage}%
+ \else
+ \doendofprofile
+ \fi}}%
+ \def\processedprofiles{}%
+ \def\doprocessprofile##1%
+ {\doifelse{\@@pfoptie}{\v!test}%
+ {\goodbreak\blanko\nobreak\tt[\spatie
+ \ifcase#1\v!start\else\v!stop\fi profiel\spatie ##1:\spatie
+ \doifdefinedelse{\c!profiel!!##1}%
+ {\def\dodoprocessprofile####1%
+ {\processoneprofile
+ {\naar{####1}[\c!profiel!!####1]}%
+ {####1}%
+ \spatie}%
+ \processcommacommand
+ [\getvalue{\c!profiel!!##1}]\dodoprocessprofile}%
+ {- }%
+ ]\nobreak\blanko}%
+ {\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\startprofiel[#1]%
+ {\iflocation
+ \bgroup
+ \addtocommalist{#1}\actualprofile
+ \def\stopprofiel%
+ {\processprofile1[#1]%
+ \egroup}%
+ \DoAfterFi\processprofile0[#1]%
+ \fi}
+
+\let\stopprofiel=\relax
+
+\def\dovolgprofiel#1[#2]%
+ {\iflocation
+ \hbox
+ {\dostartgoto
+ \data
+ {\dolocationattributes\??ia\c!letter\c!kleur{#1\presetgoto}}%
+ \start
+ \dostartgotoprofile
+ {\number\buttonwidth}{\number\buttonheight}
+ {#2}%
+ \stop
+ \dostopgotoprofile
+ \dostopgoto}%
+ \else
+ {#1}%
+ \fi}
+
+\def\volgprofiel#1[#2]%
+ {\iflocation
+ \doif{\@@pfoptie}{\v!test}{\pagereference[\c!profiel!!#2]}%
+ \dovolgprofiel{#1}[#2]%
+ \fi}
+
+\def\stelprofielenin%
+ {\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
+ \edef\docommando%
+ {\writeutilitycommand%
+ {\twopassentry%
+ {\s!profile}%
+ {\currentprofile}%
+ {\noexpand\realfolio}}}%
+ \docommando}
+
+\def\dogetprofilepage%
+ {\gettwopassdata{\s!profile}%
+ \let\profilepage=\twopassdata}
+
+\newcounter\versionlevel
+\newcounter\versionorder
+
+\newif\ifrecentversion
+
+\let\oldatcharacter=@
+
+\def\minimumversion{0}
+\def\actualversion{0}
+
+\def\dostelversiesin[#1]%
+ {\getparameters[\??ve][#1]
+ \stripcharacter.\from\@@venummer\to\minimumversion
+ \setversion}
+
+\def\stelversiesin%
+ {\dosingleargument\dostelversiesin}
+
+\definetwopasslist{\s!versionbegin}
+\definetwopasslist{\s!versionend}
+
+\def\actualprofile{}
+
+\def\doresetpageversion%
+ {\edef\docommando%
+ {\writeutilitycommand%
+ {\twopassentry%
+ {\s!versionend}%
+ {\versionorder}%
+ {\noexpand\realfolio}}}%
+ \docommando}
+
+\def\dosetpageversion#1%
+ {\recentversiontrue
+ \doglobal\increment\versionorder\relax
+ \edef\docommando%
+ {\writeutilitycommand%
+ {\twopassentry%
+ {\s!versionbegin}%
+ {\versionorder}%
+ {\noexpand\realfolio}}}%
+ \docommando
+ \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
+ \writeutilitycommand%
+ {\twopassentry%
+ {\s!versionbegin}%
+ {\versionorder}%
+ {\the\!!counta}}%
+ \writeutilitycommand%
+ {\twopassentry%
+ {\s!versionend}%
+ {\versionorder}%
+ {\the\!!countb}}%
+ \for\teller=\!!counta\to\!!countb\step1\do%
+ {\@EA\doglobal\@EA\addtocommalist\@EA{\teller}{\recentcontributions}}%
+ \let\next=\checkrecentcontributions
+ \else
+ \let\next=\relax
+ \fi
+ \else
+ \let\next=\relax
+ \fi
+ \next}
+
+\def\docheckpageversion%
+ {\ExpandBothAfter\doifinsetelse{\realfolio}{\recentcontributions}
+ {\geselecteerdtrue}%
+ {\geselecteerdfalse}}
+
+\let\setpageversion = \gobbleoneargument
+\let\resetpageversion = \relax
+\let\checkpageversion = \relax
+
+\def\complexstartversie[#1]%
+ {\bgroup
+ \doifelse{\actualprofile}{}%
+ {\startprofiel[#1]}%
+ {\startprofiel[#1,\actualprofile]}%
+ \def\docomplexstartversie##1%
+ {\stripcharacter.\from##1\to\actualversion
+ \ifnum\versionlevel>0\relax
+ \ifnum\actualversion=0\relax
+ \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\startversie
+
+\def\stopversie%
+ {\stopprofiel
+ \doglobal\decrement\versionlevel
+ \ifnum\versionlevel<0\relax
+ \showmessage{\m!versions}{1}{}%
+ \else
+ \resetpageversion
+ \egroup
+ \fi}
+
+\bgroup
+\catcode`@=\active
+\gdef\setversion%
+ {\catcode`@=\active % we can't use \@@active here
+ \long\def@##1##2 %
+ {\ifx##1+%
+ \startversie[##2]%
+ \else\ifx##1-%
+ \stopversie
+ \else
+ \oldatcharacter##1##2 %
+ \fi\fi}}
+\egroup
+
+\def\markeerversie%
+ {\showmessage{\m!versions}{2}{}%
+ \let\setpageversion=\dosetpageversion
+ \let\resetpageversion=\relax
+ \let\checkpageversion=\relax}
+
+\def\selecteerversie%
+ {\checkrecentcontributions
+ \showmessage{\m!versions}{3}{\recentcontributions}%
+ \let\setpageversion=\gobbleoneargument
+ \let\resetpageversion=\relax
+ \let\checkpageversion=\docheckpageversion
+ \setversion}
+
+\def\dodefinieerversie[#1][#2]%
+ {\setvalue{\c!versie!!#1}{#2}%
+ \definieerprofiel[#1][#2]}
+
+\def\definieerversie%
+ {\dodoubleargument\dodefinieerversie}
+
+\def\volgversie%
+ {\volgprofiel}
+
+\def\volgprofielversie#1[#2][#3]%
+ {\def\docommando##1%
+ {\definieerprofiel[#2#3][##1]}%
+ \processcommacommand[\getvalue{\c!versie!!#3}]\docommando
+ \volgprofiel#1[#2#3]}
+
+\newcounter\currentpagetransition
+
+\newif\ifrandomtransitions
+
+\def\stelpaginaovergangenin%
+ {\dosingleempty\dostelpaginaovergangenin}
+
+\def\dostelpaginaovergangenin[#1]%
+ {\doifelsenothing{#1}
+ {\doifnot{\@@scwachttijd}{\v!geen}
+ {\let\setpagetransition\setsomepagedelay}}
+ {\doifelse{#1}{\v!start}
+ {\doifnot{\@@scwachttijd}{\v!geen}
+ {\let\setpagetransition\setsomepagedelay}}
+ {\doglobal\newcounter\currentpagetransition
+ \doifinsetelse{#1}{\v!reset,\v!stop}
+ {\let\setpagetransition\relax}
+ {\let\setpagetransition\setsomepagetransition
+ \doifinsetelse{\v!willekeurig}{#1}
+ {\randomtransitionstrue}{\randomtransitionsfalse}%
+ \edef\userpagetransitions{#1}%
+ \@EA\removefromcommalist\@EA{\v!willekeurig}\userpagetransitions
+ \ifx\userpagetransitions\empty
+ \let\userpagetransitions\pagetransitions
+ \fi}}}}
+
+\def\setsomepagedelay%
+ {\expanded{\dosetpagetransition{0}{\@@scwachttijd}}}
+
+\def\setsomepagetransition%
+ {\iflocation
+ \ifrandomtransitions
+ \expanded{\getcommalistsize[\userpagetransitions]}%
+ \getrandomnumber{\currentpagetransition}{1}{\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{\@@scwachttijd}{\v!geen}
+ {\expanded{\dosetpagetransition{\commalistelement}{0}}}
+ {\expanded{\dosetpagetransition{\commalistelement}{\@@scwachttijd}}}%
+ \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\blokje\\
+%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\relax
+ \advance\scratchcounter by -#2\relax
+ \advance\scratchcounter by 1\relax
+ \leaders\vrule\hskip\!!zeropoint\!!plus \scratchcounter\!!fill
+ \vrule\!!width\!!zeropoint\!!height#4\!!depth#5\relax
+ \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\relax
+ \advance\scratchcounter by -#2\relax
+ \advance\scratchcounter by 1\relax
+ \leaders\hrule\vskip\!!zeropoint\!!plus\scratchcounter\!!fill
+ \hrule\!!width#4\!!height\!!zeropoint\!!depth\!!zeropoint
+ \vskip\!!zeropoint\!!plus #3\!!fill
+ \vskip\!!zeropoint\!!plus-#1\!!fill}}
+
+\newbox\commentbox
+
+\def\flushcomments%
+ {\ifvoid\commentbox\else
+ \inmarge{\hbox{\raise\ht\strutbox\box\commentbox}}%
+ \fi}
+
+\def\stelcommentaarin%
+ {\dodoubleargument\getparameters[\??cc]}
+
+\setvalue{\e!start\e!commentaar}% the dummy triple gobbles trailing spaces
+ {\dotripleempty\dostartcommentaar}
+
+\def\dostartcommentaar[#1][#2][#3]%
+ {\bgroup
+ \doifassignmentelse{#1}
+ {\getparameters[\??cc][#1]}
+ {\getparameters[\??cc][\c!titel=#1,#2]}%
+ \bgroup
+ \obeylines
+ \doif{\@@ccspatie}{\v!ja}{\obeyspaces}%
+ \long\def\docommando##1%
+ {\egroup
+ \global\setbox\commentbox=\hbox
+ {\!!widtha=\@@ccbreedte
+ \!!heighta=\@@cchoogte
+ \doinsertcomment
+ {\@@cctitel}{\number\!!widtha}{\number\!!heighta}
+ {\@@cckleur}{0}{\@@ccsymbool}{##1}%
+ \hskip\ifvoid\commentbox\@@ccmarge\else\@@ccafstand\fi
+ \box\commentbox
+ \egroup}}%
+ \grabuntil{\e!stop\e!commentaar}\docommando}
+
+\def\commentaar%
+ {\dodoubleempty\docommentaar}
+
+\def\docommentaar[#1][#2]#3%
+ {\bgroup
+ \doifassignmentelse{#1}
+ {\getparameters[\??cc][#1]}
+ {\getparameters[\??cc][\c!titel=#1,#2]}%
+ \!!widtha=\@@ccbreedte
+ \!!heighta=\@@cchoogte
+ \hbox to \!!zeropoint
+ {\hskip-\@@ccmarge
+ \raise\ht\strutbox\hbox
+ {\doPDFinsertcomment
+ {\@@cctitel}{\number\!!widtha}{\number\!!heighta}
+ {\@@cckleur}{0}{\@@ccsymbool}{#3}}}%
+ \egroup
+ \ignorespaces}
+
+% \startcommentaar
+% hello beautiful\\world
+% \stopcommentaar
+%
+% \startcommentaar[hallo]
+% hello \<< \'e\'erste \>>
+% beautiful
+% world
+% \stopcommentaar
+%
+% \startcommentaar[hallo][kleur=groen,breedte=4cm,hoogte=3cm]
+% hello \<< \'e\'erste \>>
+% beautiful
+% world
+% \stopcommentaar
+%
+% \startcommentaar[hallo][kleur=groen,breedte=4cm,hoogte=3cm]
+% hello \<< \'e\'erste \>>
+%
+% beautiful
+%
+% world
+% \stopcommentaar
+%
+% \startcommentaar[symbool=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.
+% \stopcommentaar
+
+\def\doregistermenubuttons[#1][#2]% [menu id] [register]
+ {\bgroup
+ \ifsecondargument
+ \stelinteractiemenuin
+ [#1][\c!onbekendeverwijzing=\v!ja,\c!zelfdepagina=\v!ja]%
+ \def\docommando##1%
+ {\noindent
+ \menubutton[#1]{##1}[#2:##1]%
+ \space}%
+ \else
+ \def\docommando##1%
+ {\noindent
+ \button[\c!onbekendeverwijzing=\v!ja,\c!zelfdepagina=\v!ja]{##1}[#1:##1]%
+ \space}%
+ \fi
+ \handletokens abcdefghijklmnopqrstuvwxyz\with\docommando
+ \egroup}
+
+\def\registermenubuttons%
+ {\dodoubleempty\doregistermenubuttons}
+
\stelkoppelingenin
[\c!afstand=.25em,
\c!breedte=\v!passend,
@@ -178,6 +1993,165 @@
\c!achtergrondraster=\@@rsraster,
\c!achtergrondkleur=]
-\protect
+\definieerinteractiemenu
+ [\v!rechts]
+ [\v!rechts]
+ [\c!voor=,
+ \c!na=\vfil,
+ \c!tussen=\blanko,
+ \c!afstand=\bodyfontsize, % 12pt
+ \c!links=\hss,
+ \c!rechts=\hss,
+ \c!breedte=\rechterrandbreedte,
+ \c!hoogte=\v!ruim]
+
+\definieerinteractiemenu
+ [\v!links]
+ [\v!links]
+ [\c!voor=,
+ \c!na=\vfil,
+ \c!tussen=\blanko,
+ \c!afstand=\bodyfontsize, % 12pt
+ \c!links=\hss,
+ \c!rechts=\hss,
+ \c!breedte=\linkerrandbreedte,
+ \c!hoogte=\v!ruim]
+
+\definieerinteractiemenu
+ [\v!onder]
+ [\v!onder]
+ [\c!voor=\vss,
+ \c!na=\vss,
+ \c!midden=\hfil,
+ \c!afstand=\bodyfontsize, % 12pt
+ \c!breedte=\v!passend,
+ \c!hoogte=\v!ruim]
+
+\definieerinteractiemenu
+ [\v!boven]
+ [\v!boven]
+ [\c!voor=\vss,
+ \c!na=\vss,
+ \c!midden=\hfil,
+ \c!afstand=\bodyfontsize, % 12pt
+ \c!breedte=\v!passend,
+ \c!hoogte=\v!ruim]
+
+\stelinteractiemenuin
+ [\v!links,\v!rechts,\v!boven,\v!onder]
+ [\c!offset=.25em,
+ \c!kader=\v!aan,
+ \c!achtergrond=,
+ \c!achtergrondkleur=,
+ \c!achtergrondraster=\@@rsraster,
+ \c!letter=\@@ialetter,
+ \c!kleur=\@@iakleur,
+ \c!contrastkleur=\@@iacontrastkleur,
+ \c!status=\v!start,
+ \c!zelfdepagina=\v!ja,
+ \c!onbekendeverwijzing=\v!leeg,
+ \c!bovenoffset=\!!zeropoint,
+ \c!onderoffset=\!!zeropoint,
+ \c!linkeroffset=\!!zeropoint,
+ \c!rechteroffset=\!!zeropoint]
+
+%\stelbovenin [\v!tekst] [\c!middentekst={\interactiemenus[\v!boven]}]
+%\stelonderin [\v!tekst] [\c!middentekst={\interactiemenus[\v!onder]}]
+
+\def\plaatsrechterrandblok {\interactiemenus[\v!rechts]}
+\def\plaatslinkerrandblok {\interactiemenus[\v!links]}
+\def\plaatsboventekstblok {\interactiemenus[\v!boven]}
+\def\plaatsondertekstblok {\interactiemenus[\v!onder]}
+
+\def\plaatsboventekstblok%
+ {\vbox to \bovenhoogte
+ {\getvalue{\??tk\v!boven\v!tekst\c!voor}
+ \interactiemenus[\v!boven]
+ \getvalue{\??tk\v!boven\v!tekst\c!na}
+ \kern\!!zeropoint}}
+
+\def\plaatsondertekstblok%
+ {\vbox to \onderhoogte
+ {\getvalue{\??tk\v!onder\v!tekst\c!voor}
+ \interactiemenus[\v!onder]
+ \getvalue{\??tk\v!onder\v!tekst\c!na}
+ \kern\!!zeropoint}}
+
+\stelinteractieschermin
+ [\c!breedte=\printpapierbreedte,
+ \c!hoogte=\printpapierhoogte,
+ \c!rugoffset=\!!zeropoint,
+ \c!kopoffset=\!!zeropoint,
+ \c!rugwit=\rugwit,
+ \c!kopwit=\kopwit,
+ \c!optie=\c!min,
+ \c!wachttijd=\v!geen]
+
+\stelbuttonsin
+ [\c!status=\v!start,
+ \c!breedte=\v!passend,
+ \c!hoogte=\v!ruim,
+ \c!offset=0.25em,
+ \c!kader=\v!aan,
+ \c!achtergrond=,
+ \c!achtergrondraster=\@@rsraster,
+ \c!achtergrondkleur=,
+ \c!letter=\@@ialetter,
+ \c!kleur=\@@iakleur,
+ \c!contrastkleur=\@@iacontrastkleur,
+ \c!zelfdepagina=\v!ja,
+ \c!onbekendeverwijzing=\v!ja]
+
+\stelinteractiebalkin
+ [\c!status=\v!start,
+ \c!variant=a,
+ \c!symbool=\v!nee,
+ \c!breedte=\rechterrandbreedte,
+ \c!hoogte=, % these are taken care
+ \c!diepte=, % of at calling time
+ \c!afstand=.5em, % beter relateren aan breedte
+ \c!stap=1,
+ \c!kleur=\@@iakleur,
+ \c!contrastkleur=\@@iacontrastkleur,
+ \c!kader=\v!aan,
+ \c!achtergrond=,
+ \c!achtergrondraster=\@@rsraster,
+ \c!achtergrondkleur=]
+
+\stelsynchronisatiebalkin
+ [\c!variant=\v!pagina,
+ \c!breedte=\rechterrandbreedte,
+ \c!letter=\@@ialetter,
+ \c!kleur=\@@iakleur,
+ \c!achtergrond=,
+ \c!achtergrondraster=\@@rsraster,
+ \c!achtergrondkleur=]
+
+\stelsynchronisatiein
+ [\c!status=\v!stop]
+
+\stelprofielenin
+ [\c!optie=]
+
+\stelprogrammasin
+ [\c!gebied=]
+
+\stelpaginaovergangenin
+ [\v!reset]
+
+\stelcommentaarin
+ [\c!marge=2.5em,
+ \c!afstand=1em,
+ \c!breedte=.3\tekstbreedte,
+ \c!hoogte=.2\teksthoogte,
+ \c!kleur=\@@iakleur,
+ \c!titel=,
+ \c!spatie=\v!nee,
+ \c!symbool=\v!normaal]
+
+\stelversiesin % beware, @ is made active here,
+ [\c!nummer=1, % therefore we set this one at the end
+ \c!letter=\ss,
+ \c!kleur=]
-\endinput
+\protect \endinput
diff --git a/tex/context/base/core-itm.tex b/tex/context/base/core-itm.tex
new file mode 100644
index 000000000..702c5fe5d
--- /dev/null
+++ b/tex/context/base/core-itm.tex
@@ -0,0 +1,583 @@
+%D \module
+%D [ file=core-itm,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Itemize,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Core Macros / Itemize}
+
+\startmessages dutch library: layouts
+ 9: momenteel maximaal -- niveaus in opsommingen
+\stopmessages
+
+\startmessages english library: layouts
+ 9: currently no more than -- levels in itimezations
+\stopmessages
+
+\startmessages german library: layouts
+ 9: z.Z. nicht mehr als -- Niveaus in Posten
+\stopmessages
+
+\startmessages czech library: layouts
+ 9: aktualne ne vice nez -- urovne/urovni vyctu
+\stopmessages
+
+\unprotect
+
+% - meerdere niveaus (moet niet moeilijk zijn)
+% - instellingen in macro
+% - \defineitemize
+% - [0] voor start op 0
+
+\newif\ifsubsom \subsomfalse
+\newif\ifsymsom \symsomfalse
+\newif\ifkopsom \kopsomfalse
+\newif\ifsomintro \somintrofalse
+\newif\ifsomautointro \somautointrofalse
+\newif\ifoptimizeitems \optimizeitemstrue
+\newif\ifpackeditems \packeditemsfalse
+\newif\iffirstlist \firstlistfalse
+\newif\ifparagraphitems \paragraphitemsfalse
+
+\newcounter \itemcolumndepth
+
+\definetwopasslist{\s!list}
+
+\newcounter\noflists
+\newcounter\itemlevel
+
+\def\dolistreference%
+ {\immediatewriteutilitycommand%
+ {\twopassentry%
+ {\s!list}%
+ {\currentlist}%
+ {\currentlist:\noflistelements}}}
+
+\def\setnextitemlevel#1%
+ {\doifundefined{\??op#1\c!breedte}
+ {\edef\itemreferences{\itemreferences,#1}%
+ \copyparameters
+ [\??op#1][\??oo]
+ [\c!breedte,\c!factor,\c!afstand,
+ \c!letter,\c!marletter,\c!symletter,\c!kopletter,
+ \c!kleur,\c!markleur,\c!symkleur,\c!kopkleur,
+ \c!kopvoor,\c!kopna,\c!voor,\c!tussen,\c!na,
+ \c!afsluiter,\c!plaatsafsluiter,\c!inspringen,
+ \c!n,\c!binnen,\c!symbool,\c!marge]%
+ \makecounter{\s!itemcount#1}%
+ \setvalue{\??op\c!symbool\s!global#1}{#1}}}
+
+\def\maxitemlevel{0}
+\def\itemreferences{0}
+
+\def\dostelopsommingenin[#1]% % still undocumented
+ {\getparameters[\??oo][\c!niveaus=4,#1]%
+ \ifnum\@@ooniveaus>\maxitemlevel
+ \edef\maxitemlevel{\@@ooniveaus}%
+ %\herhaal[\maxitemlevel*\setnextitemlevel{\herhaler}]%
+ \dorecurse{\maxitemlevel}{\setnextitemlevel\recurselevel}%
+ \fi}
+
+\def\stelopsommingenin%
+ {\dosingleargument\dostelopsommingenin}
+
+\def\doitemreference#1,#2,#3\\%
+ {\ifnum\itemlevel>#1
+ \ifnum#1>0
+ \tempsymbool
+ \fi
+ \getvalue{\??op\c!symbool#2}%
+ \doitemreference#2,#3\\%
+ \fi}
+
+\def\itemreference%
+ {\expandafter\doitemreference\itemreferences,,\\}
+
+\def\itemuse#1%
+ {\getvalue{\??op\itemlevel#1}}%
+
+\def\packitems%
+ {\ifnum\itemlevel=0 \else\packeditemstrue\fi}
+
+\def\dostelopsomminginvariable[#1][#2]% niveau instellingen
+ {\doifelsenothing{#1}
+ {\getparameters[\??op\itemlevel][#2]}%
+ {\getparameters[\??op#1][#2]}}
+
+\def\dododostelopsomminginconstant[#1][#2#3#4]% * permits [2]
+ {\processaction
+ [#2#3#4]
+ [ \v!opelkaar*=>\packitems,
+ \v!vanelkaar*=>\packeditemsfalse,
+ \v!intro*=>\somintrotrue,
+ \v!autointro*=>\somautointrotrue,
+ \v!ruim*=>{\doassign[\??op#1][\c!factor=1]},
+ #2#3*\v!ruim*=>{\doassign[\??op#1][\c!factor=#2#3]},
+ #2*\v!ruim*=>{\doassign[\??op#1][\c!factor=#2]},
+ \v!marge*=>{\doassign[\??op#1][\c!breedte=-2em]}, % signal
+ \v!inmarge*=>{\doassign[\??op#1][\c!breedte=-2em]}, % signal
+ \v!opmarge*=>\doifnot{#1}{1}{\doassign[\??op#1][\c!breedte=0em]}, % signal
+ \v!kolommen*=>\packitems,
+ \v!los*=>\optimizeitemsfalse,
+ \v!alinea*=>{\paragraphitemstrue
+ \packitems},
+ \v!aansluitend*=>{\getparameters[\??op#1]
+ [\c!kopvoor=,\c!kopna=,
+ \c!voor=,\c!tussen=,\c!na=]%
+ \packitems},
+ \v!aanelkaar*=>{\doassign[\??op#1][\c!factor=-1]},
+ #2#3*\v!aanelkaar*=>{\doassign[\??op#1][\c!factor=-#2#3]},
+ #2*\v!aanelkaar*=>{\doassign[\??op#1][\c!factor=-#2]},
+ \v!afsluiter*=>{\doassign[\??op#1][\c!plaatsafsluiter=\v!ja]},
+ \v!standaard*=>{\getparameters[\??op#1]
+ [\c!breedte=1.5em,
+ \c!factor=0,
+ \c!afstand=.5em,
+ \c!kopvoor=,
+ \c!kopna=\blanko,
+ \c!voor=\blanko,
+ \c!tussen=\blanko,
+ \c!na=\blanko,
+ \c!binnen=]}]}
+
+\def\dostelopsomminginconstant[#1][#2]%
+ {\def\dodostelopsomminginconstant##1%
+ {\dododostelopsomminginconstant[#1][##1*]}%
+ \processcommalist[#2]\dodostelopsomminginconstant}
+
+\def\dodododostelopsommingin[#1][#2]%
+ {\ConvertToConstant\doifinstringelse{=}{#2}
+ {\dostelopsomminginvariable[#1][#2]}
+ {\setvalue{\??op#1}{\dostelopsomminginconstant[#1][#2]}}}%
+
+\def\dododostelopsommingin[#1][#2]%
+ {\ConvertToConstant\doifnot{#2}{}
+ {\doifelse{#1}{\v!elk}
+ {\herhaal[\maxitemlevel*{\ExpandFirstAfter\dodododostelopsommingin[\herhaler][#2]}]}
+% {\dorecurse{\maxitemlevel}{\ExpandFirstAfter\dodododostelopsommingin[\recurselevel][#2]}}
+ {\ExpandFirstAfter\dodododostelopsommingin[#1][#2]}}}
+
+\def\dodostelopsommingin[#1][#2]%
+ {\ConvertToConstant\doifelse{#2}{}
+ {\ifnum\itemlevel=0\relax
+ \dododostelopsommingin[\v!elk][#1]%
+ \else
+ \dododostelopsommingin[\itemlevel][#1]%
+ \fi}
+ {\doifelsenothing{#1}
+ {\dododostelopsommingin[\itemlevel][#2]}
+ {\dododostelopsommingin[#1][#2]}}}
+
+\def\dostelopsommingin[#1][#2][#3]%
+ {\dodostelopsommingin[#1][#2]%
+ \ConvertToConstant\doifnot{#3}{} % anders wordt #2 overruled
+ {\dodostelopsommingin[#1][#3]}}
+
+\def\stelopsommingin%
+ {\dotripleempty\dostelopsommingin}
+
+\def\doadvanceitem%
+ {\ifsubsom\else\ifsymsom\else
+ \pluscounter{\s!itemcount\itemlevel}%
+ \fi\fi}
+
+\def\setitemlevel#1%
+ {\ifnum\itemlevel>0\relax
+ \firstlisttrue
+ \doifnotinset{\v!verder}{#1}
+ {\resetcounter{\s!itemcount\itemlevel}}%
+ \def\tempnumber%
+ {\countervalue{\s!itemcount\itemlevel}}%
+ \doifelsevalue{\??op\itemlevel\c!plaatsafsluiter}{\v!ja}
+ {\def\tempsymbool{\getvalue{\??op\itemlevel\c!afsluiter}}}
+ {\def\tempsymbool{}}%
+ \fi}
+
+% PAS OP: ook 'opelkaar' en zo worden getest, nog eens afvangen!
+
+\def\setitemmark#1% % en pas op: resets \docommando
+ {\doifsymboldefinedelse{#1}
+ {\setxvalue{\??op\c!symbool\s!global\itemlevel}{#1}%
+ \setgvalue{\??op\c!symbool\s!local\itemlevel}{?}%
+ \def\listitem{\symbol[#1]}%
+ \let\docommando\gobbleoneargument}
+ {\doifconversiondefinedelse{#1}
+ {\setxvalue{\??op\c!symbool\s!global\itemlevel}{#1}%
+ \setgvalue{\??op\c!symbool\s!local\itemlevel}%
+ {\convertnumber{#1}{\countervalue{\s!itemcount\itemlevel}}}%
+ \def\listitem%
+ {\getvalue{\??op\c!symbool\s!local\itemlevel}\tempsymbool}%
+ \let\docommando\gobbleoneargument}
+ {\let\listitem\empty}}}
+
+%\def\calculatelistwidth#1#2%
+% {#2=\getvalue{\??op#1\c!afstand}\relax
+% \multiply#2 by \getvalue{\??op#1\c!factor}\relax
+% \advance#2 by \getvalue{\??op#1\c!breedte}\relax}
+
+\def\calculatelistwidth#1#2%
+ {#2=\getvalue{\??op#1\c!afstand}\relax
+ \ifnum\getvalue{\??op#1\c!factor}>0
+ \ifdim#2=\!!zeropoint #2=.5em\fi
+ \fi
+ \multiply#2 by \getvalue{\??op#1\c!factor}\relax
+ \advance#2 by \getvalue{\??op#1\c!breedte}\relax}
+
+\def\dodostartopsomming[#1][#2]%
+ {\ifhmode
+ \par
+ \fi
+ \ifnum\itemlevel=\maxitemlevel\relax
+ \showmessage{\m!layouts}{9}{\maxitemlevel}%
+ \def\itemincrement{0}%
+ \else
+ \def\itemincrement{1}%
+ \fi
+ \doglobal\increment(\itemlevel,\itemincrement)%
+ \begingroup
+ \ifnum\itemlevel=1 % NIEUW
+ \doadaptleftskip{\getvalue{\??op1\c!marge}}%
+% \dosetraggedcommand{\@@oouitlijnen}\raggedcommand
+ \fi
+ \dosetraggedcommand{\getvalue{\??op\itemlevel\c!uitlijnen}}\raggedcommand
+ \doifvaluesomething{\??op\itemlevel\c!inspringen}
+ {\expanded{\stelinspringenin[\getvalue{\??op\itemlevel\c!inspringen}]}}%
+ \doifinset{\v!kolommen}{#1}%
+ {\ifbinnenkolommen\else\ifnum\itemcolumndepth=0
+ \global\let\itemcolumndepth\itemlevel
+ \getvalue{\??op\itemlevel\c!voor}%
+ \processfirstactioninset
+ [#1]
+ [ \v!een=>\!!counta=1\relax,
+ \v!twee=>\!!counta=2\relax,
+ \v!drie=>\!!counta=3\relax,
+ \v!vier=>\!!counta=4\relax,
+ \v!vijf=>\!!counta=5\relax,
+ \s!unknown=>\@EA\!!counta\getvalue{\??op\itemlevel\c!n}]%
+ \startkolommen
+ [\c!n=\!!counta, % netter \??op\itemlevel\c!n
+ \c!hoogte=,
+ \c!lijn=\v!uit,
+ \c!balanceren=\v!ja,
+ \c!uitlijnen=\v!nee]%
+ \fi\fi}%
+ \doifinsetelse{\v!intro}{#1}
+ {\somintrotrue}
+ {\somintrofalse}%
+ \doglobal\increment\noflists
+ \let\currentlist=\noflists
+ \newcounter\noflistelements
+ \kopsomfalse
+ \subsomfalse
+ \symsomfalse
+ \let\marsymbol=\relax
+ \global\let\somdestination=\empty
+ \def\symsymbol{}%
+ \def\som%
+ {\dosom}%
+ \def\but[##1]%
+ {\gdef\somdestination{##1}%
+ \dosom}%
+ \def\nop%
+ {\sym{\strut}\strut}%
+ \definecomplexorsimple\its
+ \setvalue{\v!mar}##1%
+ {\def\marsymbol%
+ {\llap
+ {\doattributes{\??op\itemlevel}\c!marletter\c!markleur{##1}%
+ \hskip\leftskip\hskip\linkermargeafstand}}%
+ \dosom}%
+ \setvalue{\v!kop}%
+ {\kopsomtrue\dokop}%
+ \setvalue{\v!sub}%
+ {\subsomtrue\dosom}%
+ \setvalue{\v!sym}##1%
+ {\def\symsymbol%
+ {\doattributes{\??op\itemlevel}\c!symletter\c!symkleur{##1}}%
+ \symsomtrue
+ \dosom}%
+% \setvalue{\v!its}%
+% {\getvalue{\v!sym}%
+% {\calculatelistwidth{\itemlevel}{\dimen0}%
+% \hbox to \dimen0
+% {\dorecurse{\getvalue{\??op\itemlevel\c!items}}
+% {\listitem\hss}%
+% \unskip
+% \hskip\getvalue{\??op\itemlevel\c!afstand}}}}%
+ \setvalue{\v!its}%
+ {\getvalue{\v!ran}%
+ {\dorecurse{\getvalue{\??op\itemlevel\c!items}}{\listitem\hss}%
+ \unskip}}%
+ \setvalue{\v!ran}##1%
+ {\getvalue{\v!sym}%
+ {\calculatelistwidth{\itemlevel}{\dimen0}%
+ \hbox to \dimen0
+ {##1\hskip\getvalue{\??op\itemlevel\c!afstand}}}}%
+ \setitemlevel{#1}%
+ \getvalue{\??op\itemlevel}%
+ \doifelsenothing{#1} % iffirstargument
+ {\edef\@@opsymbool{\getvalue{\??op\itemlevel\c!symbool}}%
+ \setgvalue{\??op\c!symbool\s!global\itemlevel}{}%
+ \setgvalue{\??op\v!verder\itemlevel}{}%
+ \setitemmark{\@@opsymbool}%
+ \dostelopsomminginvariable[\itemlevel][#2]}
+ {\dostelopsomminginconstant[\itemlevel][#1]%
+ \dostelopsomminginvariable[\itemlevel][#2]%
+ \doifinsetelse{\v!verder}{#1}% \noexpand, else problems in non-etex with chinese
+ %{\edef\@@opsymbool{\getvalue{\??op\c!symbool\s!global\itemlevel}}%
+ {\edef\@@opsymbool{\noexpand\getvalue{\??op\c!symbool\s!global\itemlevel}}%
+ \getvalue{\??op\v!verder\itemlevel}}
+ %{\edef\@@opsymbool{\getvalue{\??op\itemlevel\c!symbool}}%
+ {\edef\@@opsymbool{\noexpand\getvalue{\??op\itemlevel\c!symbool}}%
+ \setgvalue{\??op\v!verder\itemlevel}%
+ {\dostelopsomminginconstant[\itemlevel][#1]%
+ \dostelopsomminginvariable[\itemlevel][#2]}}%
+ \def\docommando{\setitemmark}% \setitemmark resets \docommando
+ \processcommalist[#1,\@@opsymbool]\docommando}%
+ \ifsomautointro\ifnum\prevgraf<3
+ \somintrotrue
+ \fi\fi
+ \ifparagraphitems
+ \ifnum\itemlevel>1 \doassign[\??op\itemlevel][\c!tussen=]\fi
+ \else\ifpackeditems
+ \doassign[\??op\itemlevel][\c!tussen=]%
+ \fi\fi
+ \calculatelistwidth{\itemlevel}{\dimen0}%
+ \ifdim\dimen0>\!!zeropoint\relax
+ \advance\leftskip by \dimen0\relax
+ \fi}
+
+\def\dostartopsomming[#1][#2]%
+ {\ifsecondargument
+ \dodostartopsomming[#1][#2]%
+ \else
+ \doifassignmentelse{#1}
+ {\dodostartopsomming[][#1]}
+ {\dodostartopsomming[#1][]}%
+ \fi}
+
+\def\startopsomming%
+ {\bgroup
+ \dodoubleempty\dostartopsomming}
+
+\def\stopopsomming%
+ {\par
+ \ifnum\itemcolumndepth=0 \dolistreference \fi % beware !
+ \iffirstlist \else \endgroup \fi % toegevoegd, eerste \som opent groep
+ \ifnum\itemcolumndepth=\itemlevel\relax
+ \stopkolommen
+ \doglobal\newcounter\itemcolumndepth
+ \getvalue{\??op\itemlevel\c!na}%
+ \else
+ \ifnum\itemlevel=1
+ \dosomebreak\allowbreak % toegevoegd
+ \getvalue{\??op1\c!na}%
+ \doif{\@@oospringvolgendein}{\v!nee}{\noindentation}%
+ \fi
+ \fi
+ \endgroup
+ \doglobal\decrement(\itemlevel,\itemincrement)%
+ \egroup}
+
+\def\sombreak%
+ {\flushfootnotes\penalty-5\relax} % -10
+
+\def\somnobreak%
+ {\flushfootnotes\penalty+5\ifbinnenkolommen\else00\fi\relax} % +5
+
+\def\dolistitem% evt aantal items opslaan per niveau, scheelt zoeken
+ {\par
+ \ignorespaces
+ \increment\noflistelements
+ \ifnum\itemcolumndepth=0\relax\ifoptimizeitems
+ \ifnum\noflistelements=1 % tgv bv kolommen/nesting
+ \findtwopassdata{\s!list}{\noflists:}% % wordt soms de volgorde
+ \fi % verstoord, vandaar \find
+ \iftwopassdatafound
+ \ifnum\twopassdata=3
+ \ifnum\noflistelements>1
+ \dosomebreak\somnobreak
+ \fi
+ \else\ifnum\twopassdata>3
+ \ifnum\noflistelements=2
+ \ifsomintro
+ \dosomebreak\nobreak
+ \else
+ \dosomebreak\somnobreak
+ \fi
+ \else\ifnum\twopassdata=\noflistelements\relax
+ \dosomebreak\somnobreak
+ \else\ifnum\noflistelements>2
+ \dosomebreak\sombreak
+ \else
+ \ifsomintro\else\dosomebreak\sombreak\fi
+ \fi\fi\fi
+ \fi\fi
+ \fi
+ \fi\fi
+ \noindent
+ \ifkopsom
+ \setbox8=\hbox
+ {\doattributes{\??op\itemlevel}\c!kopletter\c!kopkleur{\listitem}}%
+ \else\ifsymsom
+ \setbox8=\hbox{\symsymbol}%
+ \else
+ \setbox8=\hbox
+ {\doattributes{\??op\itemlevel}\c!letter\c!kleur{\listitem}}%
+ \fi\fi
+ \doifsomething{\somdestination}
+ %{\setbox8=\hbox{\naar{\copy8}[\somdestination]}}%
+ {\setbox8=\hbox{\naar{\box8}[\somdestination]}}%
+ \global\let\somdestination=\empty
+ \dimen2=\getvalue{\??op\itemlevel\c!breedte}\relax
+ \ifdim\dimen2<\!!zeropoint\relax
+ \llap{\ifsubsom\llap{+}\fi\box8\hskip\linkermargeafstand}%
+ \else
+ \ifdim\dimen2=\!!zeropoint\relax
+ \calculatelistwidth{1}{\dimen0}%
+ \else
+ \calculatelistwidth{\itemlevel}{\dimen0}%
+ \fi
+ \llap{\hbox to \dimen0{\ifsubsom\llap{+}\fi\box8\hfill}}%
+ \fi
+ \setevalue{\??op\c!symbool\itemlevel}%
+ %{\getvalue{\??op\c!symbool\s!local\itemlevel}}% problems with \uchar
+ {\noexpand\getvalue{\??op\c!symbool\s!local\itemlevel}}%
+ \kopsomfalse
+ \subsomfalse
+ \symsomfalse
+ \EveryPar{\ignorespaces}%
+ \ignorespaces}
+
+\def\complexdosom[#1]%
+ {\par
+ \ignorespaces
+ \doadvanceitem
+ \ifnum\itemcolumndepth=0\relax\ifnum\noflistelements>0\relax
+ \dosomebreak\nobreak
+ \fi\fi
+ \iffirstlist
+ \firstlistfalse
+ \begingroup
+ \ifcase\itemlevel
+ \or % 1
+ \ifnum\itemcolumndepth=0\relax
+ \ifsomintro\dosomebreak\nobreak\fi
+ \getvalue{\??op1\c!voor}%
+ \ifsomintro\dosomebreak\nobreak\fi
+ \fi
+ \else % 2 en hoger
+ \ifparagraphitems \else
+ \let\previtemlevel=\itemlevel
+ \decrement\previtemlevel
+ \getvalue{\??op\previtemlevel\c!tussen}% = itemlevel-1
+ \fi
+ \fi
+ \else
+ \itemuse\c!tussen
+ \fi
+ \ignorespaces
+ \dolistitem
+ \ifpackeditems
+ \stelwitruimtein[\v!geen]%
+ \fi
+ \itemuse\c!binnen
+ \marsymbol
+ \let\marsymbol=\relax
+ \doifsomething{#1}
+ {\doifnot{\itemreference}{?}
+ {\bgroup
+ \protectconversion
+ \rawreference{\s!lst}{#1}{\itemreference}%
+ \egroup}}%
+ \strut % added 11-08-99
+ \ignorespaces}
+
+\def\complexsom[#1]#2\par% todo: no two pass data
+ {\startopsomming[#1]
+ \complexdosom[]\ignorespaces\begstrut#2\unskip\endstrut\par
+ \stopopsomming}
+
+\definecomplexorsimpleempty\som
+\definecomplexorsimpleempty\dosom
+
+% \def\complexdokop[#1]#2\par%
+% {\ifpackeditems\else\itemuse\c!kopvoor\fi
+% \dosomebreak{\pagina[\v!voorkeur]}% geen \goodbreak ! \allowbreak testen
+% \complexdosom[#1]{\doattributes{\??op\itemlevel}\c!kopletter\c!kopkleur
+% {\ignorespaces#2}}\par
+% \ifpackeditems\else\itemuse\c!kopna\fi
+% \dosomebreak\nobreak
+% \noindentation}
+
+\def\complexdokop[#1]#2\par% % beter in \complexdosom hangen met een if
+ {\iffirstlist\else\dosomebreak\allowbreak\fi
+ \ifpackeditems\else\itemuse\c!kopvoor\fi
+ \iffirstlist\ifsomintro\else\ifcase\itemlevel % incr in \complexdosom
+ %\dosomebreak{\pagina[\v!voorkeur]}% geen \goodbreak ! \allowbreak testen
+ \dosomebreak\allowbreak
+ \fi\fi\fi
+ \complexdosom[#1]{\doattributes{\??op\itemlevel}\c!kopletter\c!kopkleur
+ {\ignorespaces#2}}\par
+ \dosomebreak\nobreak
+ \ifpackeditems\else\itemuse\c!kopna\fi
+ \dosomebreak\nobreak
+ \noindentation}
+
+\def\complexkop[#1]#2\par#3\par%
+ {\startopsomming[#1]%
+ \complexdokop[]\ignorespaces#2\par#3\par
+ \stopopsomming}
+
+\definecomplexorsimpleempty\kop
+\definecomplexorsimpleempty\dokop
+
+\def\sym#1%
+ {\noindent
+ \setbox0=\hbox{#1}%
+ \ifdim\wd0<1em\relax
+ \setbox0=\hbox to 1.5em{#1\hfil}%
+ \else
+ \setbox0=\hbox spread 1em{#1\hfil}%
+ \fi
+ \hangindent=\wd0\relax
+ \box0
+ \ignorespaces}
+
+\stelopsommingenin % undocumented
+ [\c!niveaus=6,
+ \c!marge=\!!zeropoint,
+ \c!springvolgendein=\v!ja,
+ \c!breedte=1.5em,
+ \c!factor=0,
+ \c!afstand=.5em,
+ \c!uitlijnen=\v!normaal,
+ \c!inspringen=, % untouched if empty
+ \c!kleur=,
+ \c!letter=, % kan tzt weg
+ \c!marletter=\c!type, % \c! ???
+ \c!symletter=,
+ \c!kopletter=,
+ \c!markleur=,
+ \c!symkleur=,
+ \c!kopkleur=,
+ \c!kopvoor=,
+ \c!kopna=\blanko,
+ \c!voor=\blanko,
+ \c!tussen=\blanko,
+ \c!na=\blanko,
+ \c!afsluiter=.,
+ \c!plaatsafsluiter=\v!ja,
+ \c!binnen=,
+ \c!n=2,
+ \c!items=4,
+ \c!symbool=\itemlevel]
+
+\protect \endinput
diff --git a/tex/context/base/core-lst.tex b/tex/context/base/core-lst.tex
new file mode 100644
index 000000000..a9e4d4142
--- /dev/null
+++ b/tex/context/base/core-lst.tex
@@ -0,0 +1,889 @@
+%D \module
+%D [ file=core-lst,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Lists,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Core Macros / Lists}
+
+\unprotect
+
+% \getlistlevel[hoofdstuk]\test{0} \test
+
+\def\getlistlevel[#1]#2#3% [list] \variable \default
+ {\doifdefinedelse{\??ko#1\c!sectie}
+ {\edef#2{\getvalue{\??ko#1\c!sectie}}%
+ \doifdefinedelse{\??se#2\c!niveau}
+ {\edef#2{\getvalue{\??se#2\c!niveau}}}
+ {\edef#2{#3}}}
+ {\edef#2{#3}}}
+
+% \def\doschrijfnaarlijst#1#2#3#4%
+% {\doifvalue{\??li#1\c!status}{\v!start}
+% {\begingroup
+% \thisisnextinternal{#1}%
+% %
+% % Dit gaat goed als #2 geen commando's bevat. Dit is
+% % bij interactieve teksten echter soms wel het geval.
+% % Vandaar dat we dit optioneel moeten maken, bijvoorbeeld
+% % met \stellijstin[referentie=ja].
+% %
+% \ExpandFirstAfter\processaction
+% [\getvalue{\??li#1\c!expansie}]
+% [ \v!ja=>{\edef\ascii{#3}},
+% \v!commando=>{\convertcommand#3\to\ascii},
+% \s!unknown=>{\convertargument#3\to\ascii}]%
+% \makesectionformat
+% \doifelse{\@@nmstatus}{\v!start}
+% {\def\dopaginanummer{\noexpand\pagenumber}}
+% {\def\dopaginanummer{0}}%
+% \edef\schrijfwegnaarlijst%
+% {\writeutilitycommand%
+% {\listentry%
+% {#1}%
+% {\nextinternalreference}%
+% {#2}%
+% {\ascii}%
+% {\sectionformat::\dopaginanummer}%
+% {\noexpand\realfolio}}}%
+% \schrijfwegnaarlijst
+% \endgroup}}
+
+\def\doschrijfnaarlijst#1#2#3#4%
+ {\doifvalue{\??li#1\c!status}{\v!start}
+ {\begingroup
+ \convertexpanded{\??li#1}{#3}\asciilistentry
+ \makesectionformat
+ \doifelse{\@@nmstatus}{\v!start}
+ {\def\dopaginanummer{\noexpand\pagenumber}}
+ {\def\dopaginanummer{0}}%
+ % niet waterdicht, wat te doen met figuren en zo
+ % first hack: scheelt rommel, second hack: alleen koppen
+ \ExpandBothAfter\rawdoifinsetelse{#1}{\crossdocumentelements}
+ {\doif{\@@sectionlevel\@@sectie}{0}{\autocrossdocumentfalse}}
+ {\autocrossdocumentfalse}%
+ % blijft nog wat zwakjes
+ \ifautocrossdocument
+ \bgroup
+ \thisisdestination{#1::\sectionformat}%
+ \@EA\setsectieenkoppeling\@EA{#1}%
+ \edef\currentlevel{\@@sectionlevel\@@sectie}%
+ \def\docommando##1%
+ {\def\dodocommando####1%
+ {\setsectieenkoppeling{####1}%
+ \def\level{\@@sectionlevel\@@sectie}%
+ \ifnum\level>\currentlevel
+ \expanded{\definereference[##1::####1][\v!geen]}%
+ \else\ifnum\level=\currentlevel
+ \expanded{\definereference[##1::####1][##1::{####1::\sectionformat}]}%
+ \fi\fi}%
+ \processcommacommand[\crossdocumentelements]\dodocommando}%
+ \processcommacommand[\crossdocumentreferences]\docommando
+ \egroup
+ \else
+ \thisisnextinternal{#1}%
+ \fi
+ \edef\schrijfwegnaarlijst%
+ {\writeutilitycommand%
+ {\listentry%
+ {#1}%
+ {\nextinternalreference}%
+ {#2}%
+ {\asciilistentry}%
+ {\sectionformat::\dopaginanummer}%
+ {\noexpand\realfolio}}}%
+ \schrijfwegnaarlijst
+ \endgroup}}
+
+\def\doschrijftussenlijst#1#2%
+ {\doif{\getvalue{\??li#1\c!status}}{\v!start}
+ {\begingroup
+ \convertargument#2\to\ascii
+ \makesectionformat
+ \doifelse{\@@nmstatus}{\v!start}
+ {\def\dopaginanummer{\noexpand\pagenumber}}
+ {\def\dopaginanummer{0}}%
+ \edef\schrijfwegnaarlijst%
+ {\writeutilitycommand%
+ {\listbetween%
+ {#1}%
+ {\ascii}%
+ {\sectionformat::\dopaginanummer}%
+ {\noexpand\realfolio}}}%
+ \schrijfwegnaarlijst
+ \endgroup}}
+
+\def\listentry#1%
+ {\executeifdefined{#1\c!lijst}\gobblefivearguments}
+
+\def\listbetween#1%
+ {\executeifdefined{#1\c!tussen}\gobblethreearguments}
+
+\def\@@livarianta% nr - tit - pag
+ {\def\lijstfill{\hskip 1.25em}%
+ \def\lijstskip{0em}%
+ \def\lijstwidth{2em}}
+
+\def\@@livariantb% nr - tit - fill - pag
+ {\def\lijstfill{\hfill}%
+ \def\lijstskip{5em}%
+ \def\lijstwidth{2em}}
+
+\def\@@livariantc% nr - tit - dots - pag
+ {\def\lijstfill{\leaders\hbox to .5em{\hss.\hss}\hfill\hskip.5em}%
+ \def\lijstskip{5em}%
+ \def\lijstwidth{0pt}}
+
+\def\@@livariant%
+ {\lijstvariantb}
+
+\@@livariantb
+
+\def\dostellijstin[#1][#2]%
+ {\def\docommando##1%
+ {\getparameters[\??li##1][#2]%
+ \preparepaginaprefix{\??li##1}}%
+ \processcommalist[#1]\docommando}
+
+\def\stellijstin%
+ {\dodoubleargument\dostellijstin}
+
+\def\dodosetlijst#1%
+ {\def\geenlijst##1{\unknown}%
+ \setvalue{#1\c!tussen}{\dotussenlijst{#1}}%
+ \setvalue{#1\c!lijst}{\dolijstelement{#1}}}
+
+\def\dodoresetlijst#1%
+ {\let\geenlijst\empty
+ \setvalue{#1\c!tussen}{\gobblefourarguments{#1}}%
+ \setvalue{#1\c!lijst}{\gobblesixarguments{#1}}}
+
+\let\geenlijst\empty
+
+\def\dodefinieerlijst[#1][#2][#3]%
+ {\presetlocalframed[\??li#1]%
+ \getparameters
+ [\??li#1]
+ [\c!hoogte=\v!ruim,
+ \c!diepte=\v!ruim,
+ \c!offset=0.25em,
+ \c!maxbreedte=,
+ \c!status=\v!start,
+ \c!koppeling=\v!uit,
+ \c!criterium=\v!lokaal,
+ \c!breedte=3em,
+ \c!variant=\c!b,
+ \c!letter=\v!normaal,
+ \c!tekstletter=\getvalue{\??li#1\c!letter},
+ \c!nummerletter=\getvalue{\??li#1\c!letter},
+ \c!paginaletter=\getvalue{\??li#1\c!letter},
+ \c!kleur=,
+ \c!tekstkleur=\getvalue{\??li#1\c!kleur},
+ \c!nummerkleur=\getvalue{\??li#1\c!kleur},
+ \c!paginakleur=\getvalue{\??li#1\c!kleur},
+ \c!nummercommando=\lijstnummercommando,
+ \c!tekstcommando=\lijsttekstcommando,
+ \c!paginacommando=\lijstpaginacommando,
+ \c!paginanummer=\v!ja,
+ \c!paginaovergangen=,
+ \c!marge=\!!zeropoint,
+ \c!titeluitlijnen=,
+ \c!voor=,
+ \c!na=,
+ \c!tussen=,
+ \c!symbool=,
+ \c!interactie=\v!sectienummer,
+ \v!deel\v!nummer=\v!ja, % nodig ? % v
+ \c!label=\v!nee,
+ \c!afstand=\!!zeropoint,
+ \c!scheider=]%
+ \ConvertToConstant\doifinstringelse{=}{#2}
+ {\getparameters[\??li#1][#2]}
+ {\ConvertToConstant\doifnot{#2}{}
+ {\copyparameters % interactie ?
+ [\??li#1][\??li#2]
+ [\c!status,\c!breedte,\c!variant,\c!letter,\c!kleur,
+ \c!tekstletter,\c!tekstkleur,\c!tekstcommando,
+ \c!paginaletter,\c!paginacommando,\c!paginakleur,
+ \c!nummerletter,\c!nummerkleur,\c!nummercommando,
+ \c!paginanummer,\c!paginaovergangen,\c!marge,\c!symbool,
+ \c!titeluitlijnen,\c!voor,\c!na,\c!tussen,\v!deel\c!nummer,\c!label]%
+ \getparameters[\??li#1][#3]}}%
+ \addutilityreset{#1}%
+ \setvalue{\s!set#1}%
+ {\dodosetlijst{#1}}%
+ \setvalue{\s!reset#1}%
+ {\dodoresetlijst{#1}}}
+
+\def\definieerlijst%
+ {\dotripleempty\dodefinieerlijst}
+
+\def\iflijstgeplaatst{\ifutilitydone}
+
+\def\dobeginoflist%
+ {\begingroup
+ \startopelkaar[\v!blanko]}
+
+\def\doendoflist%
+ {\stopopelkaar
+ \endgroup}
+
+\def\doplaatslijst[#1][#2]%
+ {\dobeginoflist
+ \dogetcommalistelement1\from#1\to\firstlistelement
+ \dostellijstin[#1][#2]%
+ \doifvalue{\??li\firstlistelement\c!koppeling}{\v!aan}
+ {\startlistreferences{#1}}%
+ \dosettoclevel{\getvalue{\??li\firstlistelement\c!criterium}}%
+ \doutilities{#1}{\jobname}{#1}{}{\par}%
+ \stoplistreferences{#1}%
+ \doendoflist
+ \dosetlistmode}
+
+\def\dosetlistmode%
+ {\iflijstgeplaatst
+ \enablemode [\systemmodeprefix\v!lijst]%
+ \else
+ \disablemode[\systemmodeprefix\v!lijst]%
+ \fi}
+
+\def\plaatslijst%
+ {\dodoubleempty\doplaatslijst}
+
+\def\dodovolledigelijst[#1][#2][#3]% enkelvoud, meervoud, instellingen
+ {\systemsuppliedtitle[#2]{\headtext{#2}}
+ \doplaatslijst[#1][#3]}
+
+\def\dovolledigelijst[#1][#2]%
+ {\dodovolledigelijst[#1][#1][#2]}
+
+\def\volledigelijst%
+ {\dodoubleempty\dovolledigelijst}
+
+\def\lijstelementen {} % bevat lijst met paginaovergangen
+\def\lijstnummercommando #1{#1} % geen strut i.v.m. intractieve versie
+\def\lijsttekstcommando #1{\begstrut#1\endstrut}
+\def\lijstpaginacommando #1{\strut#1}
+
+\def\doassigndimen#1#2#3%
+ {\doifinsetelse{#2}{\v!passend,\v!ruim}
+ {#1=#3\relax}
+ {#1=#2\relax}}
+
+\def\dosetlistsymbol#1#2%
+ {\processaction
+ [\getvalue{\??li#1\c!symbool}]
+ [ \v!geen=>\def\listsymbol%
+ {\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
+ \hbox to \dimen0{}},
+ 1=>\def\listsymbol%
+ {\strut$\bullet$},
+ 2=>\def\listsymbol%
+ {\vrule\!!width1em\!!height1ex\!!depth\!!zeropoint},
+ 3=>\def\listsymbol% very slow
+ {{\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
+ \doassigndimen{\dimen2}{\getvalue{\??li#1\c!hoogte}}{1ex}%
+ \doassigndimen{\dimen4}{\getvalue{\??li#1\c!diepte}}{0pt}%
+ \vrule\!!width\dimen0\!!height\dimen2\!!depth\dimen4}},
+ \s!unknown=>\def\listsymbol{\getvalue{\??li#1\c!symbool}},
+ \s!default=>\doifelsevalue{\??li#1\c!prefix}{\v!nee}
+ {\aftersplitstring#2\at.\to\splitlistsymbol}
+ {\def\splitlistsymbol{#2}}% geen \edef ivm enz
+ \def\listsymbol% kan iets efficienter met \ifdone
+ {\doifvalue{\??li#1\c!label}{\v!ja}{\leftlabeltext{#1}}%
+ \strut\splitlistsymbol\getvalue{\??li#1\c!scheider}%
+ \doifvalue{\??li#1\c!label}{\v!ja}{\rightlabeltext{#1}}}]}
+
+\def\dosomelijstelement#1#2#3{#1 #2 \translatednumber[#3]}
+
+\def\dodolijstelementa{\let\dosomelijstelement\dodofixdlijstelementABC}
+\def\dodolijstelementb{\let\dosomelijstelement\dodofixdlijstelementABC}
+\def\dodolijstelementc{\let\dosomelijstelement\dodofixdlijstelementABC}
+\def\dodolijstelementd{\let\dosomelijstelement\dodofixdlijstelementD}
+\def\dodolijstelemente{\let\dosomelijstelement\dodofixdlijstelementE}
+\def\dodolijstelementf{\let\dosomelijstelement\dodofixdlijstelementF}
+\def\dodolijstelementg{\let\dosomelijstelement\dodofixdlijstelementG}
+
+\setvalue{dodolijstelement\v!geen}%
+ {\def\dosomelijstelement{\dodofreevlijstelement}}
+
+\setvalue{dodolijstelement\v!vertikaal}%
+ {\def\dosomelijstelement{\dodofreevlijstelement}}
+
+\setvalue{dodolijstelement\v!horizontaal}%
+ {\def\dosomelijstelement{\dodofreehlijstelement}}
+
+\setvalue{dodolijstelement\v!commando}%
+ {\let\dosomelijstelement\dodocommandlijstelement}
+
+% Here I learned something new: \leftskip can be changed
+% within a paragraph and the last one counts. Therefore we
+% cannot use \bgroup's! The placement of the \leftskip
+% assignment and the \endgraf's may not be changed. We have to
+% end the preceding paragraph before changing \leftskip. This is
+% because every listelement sets the \leftskip.
+
+% \strippedcsname\dodolijstelement
+
+\def\newlineinlist{\space}
+
+\def\dolijstelement#1#2#3#4#5#6% pas op: wordt ook elders gedefinieerd
+ {\doiftoclevelelse[#5]
+ {\getvalue{dodolijstelement\getvalue{\??li#1\c!variant}}%
+ %\showcomposition
+ \let\@@iabreedte=\!!zeropoint % moet boolean worden
+ \bgroup
+ \edef\lijstelementen%
+ {\getvalue{\??li#1\c!paginaovergangen}}%
+ \ExpandSecondAfter\doifinset{#3}{\lijstelementen}%
+ {\showmessage{\m!systems}{14}{#3}%
+ \pagina}%
+ \egroup
+ \mindermeldingen
+ \setfullsectionnumber{\??li#1}%
+ \dosetlistsymbol{#1}{#3}%
+ \dosomelijstelement{#1}{#2}{#3}{#4}{#5}{#6}%
+ \global\utilitydonetrue}
+ {}}
+
+\def\dolistattributes#1#2#3%
+ {\doifvaluesomething{\??li#1#3}
+ {\setupinteraction[\c!kleur=,\c!contrastkleur=]}%
+ \doattributes{\??li#1}{#2}{#3}}
+
+\def\dodocommandlijstelement#1#2#3#4#5#6%
+ {\doifdefinedelse{\??li#1\c!commando}
+ {\getvalue{\??li#1\c!commando}
+ {#3}{#4}{\paginaprefix\??li#1[#5]\translatednumber[#5]}}
+ {[#1: #3 - #4 - \paginaprefix\??li#1[#5]\translatednumber[#5]]}}
+
+\def\dodofreelijstelement#1#2#3#4#5#6#7#8%
+ {\def\makelijstelement##1##2%
+ {\hbox
+ {\doifelsevalue{\??li#1\c!interactie}{##1}
+ {\setbox0=\hbox{\showcontrastlocation{\??ia}{#6}{##2}}%
+ \linklisttoelement{#1}{#2}{#5}{#6}{\box0}}%{\copy0}}%
+ {##2}}}%
+ \getvalue{\??li#1\c!voor}% can be \hskip
+ \doifdefinedelse{\??li#1\c!commando}
+ {\makelijstelement{\getvalue{\??li#1\c!interactie}}% this forces all
+ {\getvalue{\??li#1\c!commando}%
+ {#3}% geen conversies etc
+ {#4}% geen conversies etc
+ {\paginaprefix\??li#1[#5]%
+ \translatednumber[#5]}}}
+ {#7%
+ \vbox
+ {\forgetall
+ \makelijstelement\v!alles
+ {\makelijstelement\v!sectienummer
+ {\dolistattributes{#1}\c!nummerletter\c!nummerkleur
+ {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}}%
+ \makelijstelement\v!tekst
+ {\dolistattributes{#1}\c!tekstletter\c!tekstkleur
+ {\let\\=\newlineinlist
+ \dontconvertfont
+ \getvalue{\??li#1\c!tekstcommando}{#4}}}%
+ \doifvalue{\??li#1\c!paginanummer}{\v!ja}
+ {\doifsomething{#5}
+ {\makelijstelement\v!paginanummer
+ {\dolistattributes{#1}\c!paginaletter\c!paginakleur
+ {\getvalue{\??li#1\c!paginacommando}
+ {\paginaprefix\??li#1[#5]%
+ \translatednumber[#5]}}}}}}}%
+ #8}%
+ \getvalue{\??li#1\c!na}}
+
+\def\dodofreehlijstelement#1#2#3#4#5#6%
+ {\dodofreelijstelement{#1}{#2}{#3}{#4}{#5}{#6}
+ {\noindent}{}}
+
+\def\dodofreevlijstelement#1#2#3#4#5#6% % \nointerlineskip nodig,
+ {\dodofreelijstelement{#1}{#2}{#3}{#4}{#5}{#6} % anders verkeerde spatiering
+ {\ifvmode\nointerlineskip\fi} % bij multi-line lijsten
+ {\nointerlineskip\endgraf\allowbreak}} %
+
+\def\dodofixdlijstelementABC#1#2#3#4#5#6% weeden
+ {\endgraf
+ \leftskip=\getvalue{\??li#1\c!marge}% na de \endgraf !
+ \getvalue{\??li#1\c!voor}%
+ \!!widthc=\getvalue{\??li#1\c!afstand}%
+ \doifelsevalue{\??li#1\c!breedte}{\v!passend}
+ {\!!widtha=\!!zeropoint}
+ {\doifelsenothing{#3}
+ {\doifelsevalue{\??li#1\c!titeluitlijnen}{\v!ja}
+ {\!!widtha=\!!zeropoint
+ \!!widthc=\!!zeropoint}
+ {\!!widtha=\getvalue{\??li#1\c!breedte}}}
+ {\!!widtha=\getvalue{\??li#1\c!breedte}}}%
+ \getvalue{\??li\c!variant\getvalue{\??li#1\c!variant}}%
+ \endgraf
+ \def\makelijstelement##1##2%
+ {\doifelsevalue{\??li#1\c!interactie}{##1}
+ {\setbox0=\hbox{\showcontrastlocation{\??ia}{#6}{##2}}%
+ \linklisttoelement{#1}{#2}{#5}{#6}{\box0}}%{\copy0}}%
+ {\hbox{##2}}}%
+ \doifvalue{\??li#1\c!interactie}{\v!tekst} % not supported
+ {\doassign[\??li#1][\c!interactie=\v!alles]}%
+ \makelijstelement\v!alles
+ {\hbox to \hsize
+ {\!!widthb=\hsize
+ \setbox2=\hbox \ifdim\!!widtha>\!!zeropoint to \!!widtha \fi
+ {\makelijstelement\v!sectienummer
+ {\dolistattributes{#1}\c!nummerletter\c!nummerkleur
+ {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}%
+ \hfill}}%
+ \setbox4=\hbox
+ {\doifvalue{\??li#1\c!paginanummer}{\v!ja}
+ {\doifsomething{#5} % \lijstwidth is new ; temp hack
+ {\hbox \ifdim\lijstwidth>\!!zeropoint to \lijstwidth\fi
+ {\hfill
+ \makelijstelement\v!paginanummer
+ {\dolistattributes{#1}\c!paginaletter\c!paginakleur
+ {\getvalue{\??li#1\c!paginacommando}
+ {\paginaprefix\??li#1[#5]%
+ \translatednumber[#5]}}}}}}}%
+ \vbox
+ {\hsize\!!widthb
+ \ifdim\!!widtha<\hsize
+ \hangindent=\wd2
+ \dimen2=\!!widthc % \getvalue{\??li#1\c!afstand}%
+ \advance\hangindent by \dimen2
+ \hangafter=1
+ \ifvoid4
+ % we kunnen gewoon afbreken aan het eind
+ \else
+ \ifdim\lijstskip>\!!zeropoint\relax
+ \rightskip=\lijstskip\!!plus10em\relax
+ \parfillskip=-\rightskip
+ \fi
+ \fi
+ \else
+ \dimen2=\!!zeropoint
+ \fi
+ \parindent=\!!zeropoint\relax
+ \leavevmode
+ \box2\relax
+ \hskip\dimen2
+ \bgroup
+ \dolistattributes{#1}\c!tekstletter\c!tekstkleur
+ {\let\\=\newlineinlist
+ \dontconvertfont
+ \getvalue{\??li#1\c!tekstcommando}{#4}}%
+ \egroup
+ \ifvoid4
+ \ifdim\!!widtha<\hsize
+ \hfill\strut
+ \fi
+ \else
+ \nobreak\hskip.5em\lijstfill
+ \box4\relax
+ \relax
+ \fi}%
+ \hss}}%
+ \nointerlineskip % anders verkeerde spatiering bij multi-line
+ \endgraf
+ \allowbreak
+ \getvalue{\??li#1\c!na}}
+
+% overrulen interactie kan sneller, bv door hulpconstanten
+% te gebruiken en die te letten
+
+\def\dodofixdlijstelementD#1#2#3#4#5#6%
+ {%\leftskip=\getvalue{\??li#1\c!marge}%
+\ifvmode
+ \advance\leftskip\getvalue{\??li#1\c!marge}% AANGEPAST
+\fi
+ \bgroup
+ \ifvmode
+ \noindent\leavevmode
+ \fi
+ \doifvalue{\??li#1\c!interactie}{\v!tekst} % not supported
+ {\doassign[\??li#1][\c!interactie=\v!sectienummer]}%
+ \doifvalue{\??li#1\c!interactie}{\v!alles} % not supported
+ {\doassign[\??li#1][\c!interactie=\v!sectienummer]}%
+ \def\makelijstelement##1##2%
+ {\doifelsevalue{\??li#1\c!interactie}{##1}
+ {\setbox0=\hbox{\showcontrastlocation{\??ia}{#6}{##2}}%
+ \linklisttoelement{#1}{#2}{#5}{#6}{\box0}}%{\copy0}}%
+ {\hbox{##2}}}%
+ \setbox4=\hbox
+ {\doifvalue{\??li#1\c!paginanummer}{\v!ja}
+ {\doifsomething{#5}
+ {\makelijstelement\v!paginanummer
+ {\dolistattributes{#1}\c!paginaletter\c!paginakleur
+ {\getvalue{\??li#1\c!paginacommando}
+ {\paginaprefix\??li#1[#5]%
+ \translatednumber[#5]}}}}}}%
+ \hbox
+ {\getvalue{\??li#1\c!links}%
+ \makelijstelement\v!sectienummer
+ {\dolistattributes{#1}\c!nummerletter\c!nummerkleur
+ {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}}%
+ \getvalue{\??li#1\c!rechts}%
+ \hskip.5em}%
+ \nobreak
+ \tolerance3500 % niet zomaar veranderen
+ \dolistattributes{#1}\c!tekstletter\c!tekstkleur
+ {\let\\=\newlineinlist
+ \dontconvertfont
+ \getvalue{\??li#1\c!tekstcommando}{#4}}%
+ \ifvoid4\else
+ \nobreak
+ \hskip.75em\relax
+ \nobreak
+ \box4
+ \fi
+ \dimen0=\getvalue{\??li#1\c!afstand}\relax
+ \ifdim\dimen0<1em\relax
+ \hskip1em\!!plus1em\!!minus.25em\relax
+ \else
+ \hskip\dimen0\!!plus.5\dimen0\!!minus.25\dimen0\relax
+ \fi
+ \egroup}
+
+\def\dodofixdlijstelementE#1%
+ {\dodofixdlijstelementEFG
+ {\setupinteraction[\c!strut=\v!nee]}
+ {\localframed[\??li#1][\c!diepte=\!!zeropoint,\c!kleur=]}
+ {#1}}
+
+\def\dodofixdlijstelementF#1%
+ {\dodofixdlijstelementEFG
+ {}
+ {\dosetraggedhbox{\getvalue{\??li#1\c!uitlijnen}}\raggedbox}
+ {#1}}
+
+\def\dodofixdlijstelementG#1%
+ {\dodofixdlijstelementEFG
+ {}
+ \regelmidden
+ {#1}}
+
+\def\dodofixdlijstelementEFG#1#2#3#4#5#6#7#8%
+ {\noindent
+ \hbox
+ {#1% in case E nils the strut
+ \let\\=\newlineinlist
+ \setbox0=\hbox
+ {#2{\showcontrastlocation{\??ia}{#8}
+ {\dostartattributes{\??li#3}\c!letter\c!kleur{}%
+ \ignorespaces\dontconvertfont\setstrut
+ \begstrut
+ \doifelsenothing{\??li#3\c!maxbreedte}
+ {\getvalue{\??li#3\c!tekstcommando}{#6}}
+ {\getvalue{\??li#3\c!tekstcommando}{\limitatetext{#6}{\getvalue{\??li#3\c!maxbreedte}}{\unknown}}}%
+ \endstrut % struts new
+ \dostopattributes}}}%
+ \linklisttoelement{#3}{#4}{#7}{#8}{\box0}}%{\copy0}}%
+ \par
+ \getvalue{\??li#3\c!tussen}}
+
+\def\strippedlistentry[#1::#2::#3]{#1::#2}%
+
+\def\linklisttoelement#1#2#3#4#5% % list location format page data
+ {\ifautocrossdocument
+ \gotodestination{}{}{#1::\strippedlistentry[#3]}{#4}{#5}%
+ \else
+ \gotonextinternal{#1}{#2}{#4}{#5}%
+ \fi}
+
+\def\schrijfnaarlijst[#1]#2#3%
+ {\doifsomething{#1}
+ {\convertargument#2\to\firstlistelement
+ \@EA\doschrijfnaarlijst\@EA{#1}{\firstlistelement}{#3}{\v!kop}}}
+
+\def\dotussenlijst#1#2#3#4% pas op: wordt ook elders gedefinieerd
+ {\doiftoclevelelse[#3]
+ {#2}
+ {}}
+
+\def\schrijftussenlijst[#1]#2%
+ {\@EA\doschrijftussenlijst\@EA{#1}{#2}} % #2 weg en \expanded
+
+% NOG ENGELS MAKEN
+
+\def\lijstlengte {\utilitylistlength}
+\def\lijstbreedte {\utilitylistwidth}
+\def\lijsthoogte {\utilitylistheight}
+
+\def\utilitylistlength {0}
+\def\utilitylistwidth {0pt}
+\def\utilitylistheight {0pt}
+
+\def\dobepaallijstkenmerken[#1][#2]%
+ {\begingroup
+ \doglobal\newcounter\utilitylistlength
+ \def\dolijstelement##1##2##3##4##5##6%
+ {\doiftoclevelelse[##5]
+ {\doglobal\increment\utilitylistlength
+ \hbox
+ {\doattributes
+ {\??li##1}\c!tekstletter\c!tekstkleur
+ {\let\\=\newlineinlist
+ \dontconvertfont
+ \getvalue{\??li##1\c!tekstcommando}{##4}}}%
+ \global\utilitydonetrue}
+ {}}%
+ \dostellijstin[#1][#2]%
+ \dogetcommalistelement1\from#1\to\commalistelement
+ \dosettoclevel{\getvalue{\??li\commalistelement\c!criterium}}%
+ \setbox0=\vbox
+ {\doutilities{#1}{\jobname}{#1}{}{\par}}%
+ \xdef\utilitylistheight{\the\ht0}%
+ \xdef\utilitylistwidth {\the\wd0}%
+ \endgroup
+ \dosetlistmode}
+
+\def\bepaallijstkenmerken%
+ {\dodoubleempty\dobepaallijstkenmerken}
+
+% \definieerreferentielijst
+% [externalfigure]
+% [commando=\toongrootfiguur,
+% voor=\pagina,
+% na=\pagina]
+%
+% \definieerreferentielijst
+% [externaltable]
+% [commando=\toongrotetabel,
+% voor=\pagina,
+% na=\pagina]
+%
+% \def\toongrootfiguur#1%
+% {\externfiguur[#1][kader=aan,factor=max]}
+%
+% \def\toongrotetabel#1%
+% {\switchtobodyfont[12pt]\haalbuffer[#1]}
+%
+% \schrijfnaarreferentielijst[externalfigure]{koe}{\externfiguur[koe][breedte=3cm,kader=aan]}
+% \schrijfnaarreferentielijst[externalfigure]{paard}{\externfiguur[paard][breedte=3cm,kader=aan]}
+%
+% \startbuffer[kanweg]
+% \starttabel[|||]
+% \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
+% \stoptabel
+% \stopbuffer
+%
+% \schrijfnaarreferentielijst[externaltable]{kanweg}{\switchtbodyfont[5pt]\haalbuffer[kanweg]}
+%
+% \plaatsreferentielijst
+% [externalfigure,externaltable]
+
+% algemeen
+
+\def\referentiebutton#1[#2]%
+ {\hbox\bgroup % the \hbox is needed to bypass
+ \let\referenceprefix=\empty % \dontleavehmode in \naarbox
+ \setupinteraction[\c!kleur=,\c!contrastkleur=,\c!strut=]%
+ \setupreferencing[\c!prefix=]%
+ \naarbox{\hbox{\ignorespaces#1}}[#2]%
+ \egroup}
+
+\newcounter\referencecounter
+
+\def\doreferentielijstelement#1#2#3#4#5%
+ {\doiftoclevelelse[#4]
+ {\getvalue{\??rl#1\c!voor}%
+ \referentiebutton
+ {\getvalue{\??rl#1\c!commando}{#3}\pagereference[\r!to#2]}%
+ [\r!from#2]%
+ \global\utilitydonetrue
+ \getvalue{\??rl#1\c!na}}
+ {}}
+
+\def\doplaatsreferentielijst[#1][#2]%
+ {\begingroup
+% \let\doschrijfnaarreferentielijst=\gobblethreearguments
+ \stelreferentielijstin[#1][#2,\c!status=\v!stop]%
+ \dogetcommalistelement1\from#1\to\commalistelement
+ \dosettoclevel{\getvalue{\??rl\commalistelement\c!criterium}}%
+ \doutilities{#1}{\jobname}{#1}{}{\par}%
+ \endgroup}
+
+\def\plaatsreferentielijst%
+ {\dodoubleempty\doplaatsreferentielijst}
+
+\def\doschrijfnaarreferentielijst#1#2#3%
+ {\doifvalue{\??rl#1\c!status}{\v!start}
+ {\begingroup
+ \makesectionformat
+ \doifelse{\@@nmstatus}{\v!start}
+ {\def\dopaginanummer{\noexpand\pagenumber}}
+ {\def\dopaginanummer{0}}%
+ \edef\schrijfwegnaarlijst%
+ {\writeutilitycommand%
+ {\referencelistentry%
+ {#1}% tag
+ {#2}% number
+ {#3}% data
+ {\sectionformat::\dopaginanummer}%
+ {\noexpand\realfolio}}}%
+ \schrijfwegnaarlijst
+ \endgroup}}
+
+%\def\schrijfnaarreferentielijst[#1]#2#3% #1=class #2=data #3=visualization
+% {\doifelsevalue{\??rl#1\c!status}{\v!start}
+% {\doglobal\increment\referencecounter
+% \referentiebutton
+% {#3%
+% \pagereference[\r!from\referencecounter]%
+% \doschrijfnaarreferentielijst{#1}{\referencecounter}{#2}}%
+% [\r!to\referencecounter]}
+% {#3}}
+
+\def\schrijfnaarreferentielijst[#1]#2% #1=class #2=data #3=visualization
+ {\dowithnextbox
+ {\doifelsevalue{\??rl#1\c!status}{\v!start}
+ {\doglobal\increment\referencecounter % must be resolved due to #2
+ \referentiebutton
+ {\box\nextbox
+ \pagereference[\r!from\referencecounter]%
+ \doschrijfnaarreferentielijst{#1}{\referencecounter}{#2}}%
+ [\r!to\referencecounter]}
+ {\box\nextbox}}
+ \hbox} % \vbox ?
+
+\def\referencelistentry#1%
+ {\executeifdefined{#1\c!lijst}\gobblefourarguments}
+
+\def\dodosetreferentielijst#1%
+ {\setvalue{#1\c!lijst}{\doreferentielijstelement{#1}}}
+
+\def\dodoresetreferentielijst#1%
+ {\setvalue{#1\c!lijst}{\gobblefourarguments}}
+
+\def\dodefinieerreferentielijst[#1][#2]%
+ {\stelreferentielijstin[#1]
+ [\c!commando=,
+ \c!status=\v!start,
+ \c!criterium=\v!alles,
+ \c!voor=,
+ \c!na=,
+ #2]
+ \setcounter{#1}{0}%
+ \addutilityreset{#1}%
+ \setvalue{\s!set#1}%
+ {\dodosetreferentielijst{#1}}%
+ \setvalue{\s!reset#1}%
+ {\dodoresetreferentielijst{#1}}}
+
+\def\definieerreferentielijst%
+ {\dodoubleempty\dodefinieerreferentielijst}
+
+\def\dostelreferentielijstin[#1][#2]%
+ {\getparameters[\??rl#1][#2]}
+
+\def\stelreferentielijstin%
+ {\dodoubleempty\dostelreferentielijstin}
+
+\def\dostelsamengesteldelijstin[#1][#2]%
+ {\getparameters[\??ih#1][#2]%
+ \ExpandFirstAfter\stellijstin[\getvalue{\??ih#1\c!lijst}][#2]}
+
+\def\stelsamengesteldelijstin%
+ {\dodoubleargument\dostelsamengesteldelijstin}
+
+% \def\doplaatssamengesteldelijst[#1][#2]%
+% {\begingroup
+% \getparameters[\??ih#1][#2]%
+% \dosettoclevel{\getvalue{\??ih#1\c!criterium}}%
+% \edef\samengesteldelijst{\getvalue{\??ih#1\c!lijst}}% om voorlopig nog
+% \stripspaces\from\samengesteldelijst\to\samengesteldelijst % compatible te
+% \ExpandFirstAfter\doifnumberelse{\getvalue{\??ih#1\c!niveau}}% blijven
+% {\!!counta=\getvalue{\??ih#1\c!niveau}% met de vorige implementatie
+% \advance\!!counta by 1\relax% accepteren we ook nummers (0==deel)
+% \getfromcommacommand[\samengesteldelijst][\!!counta]%
+% \edef\maximumlijst{\commalistelement}}%
+% {\edef\maximumlijst{\getvalue{\??ih#1\c!niveau}}}%
+% \!!counta=\getvalue{\??se\getvalue{\??ko\maximumlijst \c!sectie}\c!niveau}%
+% \let\!!stringa=\samengesteldelijst
+% \let\samengesteldelijst=\empty
+% \def\docommando##1%
+% {\ifnum\getvalue{\??se\getvalue{\??ko##1\c!sectie}\c!niveau}>\!!counta
+% \else
+% \addtocommalist{##1}\samengesteldelijst
+% \fi}%
+% \processcommacommand[\!!stringa]\docommando
+% \doifvalue{\??ih#1\c!koppeling}{\v!aan}
+% {\startlistreferences{#1}}%
+% \ExpandFirstAfter\dodoplaatssamengesteldelijst[\samengesteldelijst][#2]%
+% \stoplistreferences{#1}%
+% \endgroup}
+
+\def\doplaatssamengesteldelijst[#1][#2]%
+ {\begingroup
+ \getparameters[\??ih#1][#2]%
+ \dosettoclevel{\getvalue{\??ih#1\c!criterium}}%
+ \edef\samengesteldelijst{\getvalue{\??ih#1\c!lijst}}%
+ \stripspaces\from\samengesteldelijst\to\samengesteldelijst
+ \doifelsevalue{\??ih#1\c!niveau}{\v!huidige} % criterium=vorige,niveau=huidige
+ {\!!counta=0\@@koniveau} % hm: \@@koniveau
+ {\ExpandFirstAfter\doifnumberelse{\getvalue{\??ih#1\c!niveau}}% in verband
+ {\!!counta=\getvalue{\??ih#1\c!niveau}% met de vorige implementatie
+ \advance\!!counta by 1 % accepteren we ook nummers (0==deel)
+ \getfromcommacommand[\samengesteldelijst][\!!counta]%
+ \edef\maximumlijst{\commalistelement}}%
+ {\edef\maximumlijst{\getvalue{\??ih#1\c!niveau}}}%
+ \!!counta=\getvalue{\??se\getvalue{\??ko\maximumlijst\c!sectie}\c!niveau}}%
+ \let\!!stringa=\samengesteldelijst
+ \let\samengesteldelijst=\empty
+ \def\docommando##1%
+ {\ifnum\getvalue{\??se\getvalue{\??ko##1\c!sectie}\c!niveau}>\!!counta
+ \else
+ \addtocommalist{##1}\samengesteldelijst
+ \fi}%
+ \processcommacommand[\!!stringa]\docommando
+ \doifvalue{\??ih#1\c!koppeling}{\v!aan}
+ {\startlistreferences{#1}}%
+ \ExpandFirstAfter\dodoplaatssamengesteldelijst[\samengesteldelijst][#2]%
+ \stoplistreferences{#1}%
+ \endgroup
+ \dosetlistmode}
+
+\def\dodoplaatssamengesteldelijst[#1][#2]%
+ {\dobeginoflist
+ \dostellijstin[#1][#2]%
+ \doutilities{#1}{\jobname}{#1}{}{\par}%
+ \doendoflist}
+
+\def\dovolledigesamengesteldelijst[#1][#2]%
+ {\systemsuppliedtitle[#1]{\headtext{#1}}%
+ \doplaatssamengesteldelijst[#1][#2]}
+
+\def\dodefinieersamengesteldelijst[#1][#2][#3]%
+ {\setvalue{\??ih#1\c!lijst}{#2}%
+ \getcommalistsize[#2]%
+ \getfromcommalist[#2][\commalistsize]%
+ \doeassign[\??ih#1][\c!niveau=\commalistelement]%
+ \getparameters
+ [\??ih#1]
+ [\c!criterium=\v!lokaal,
+ #3]%
+ \setvalue{\e!stel#1\e!in}%
+ {\dodoubleempty\dostelsamengesteldelijstin[#1]}%
+ \setvalue{\e!plaats#1}%
+ {\dodoubleempty\doplaatssamengesteldelijst[#1]}%
+ \setvalue{\e!volledige#1}%
+ {\dodoubleempty\dovolledigesamengesteldelijst[#1]}}
+
+\def\definieersamengesteldelijst%
+ {\dotripleempty\dodefinieersamengesteldelijst}
+
+\def\plaatssamengesteldelijst%
+ {\dodoubleempty\doplaatssamengesteldelijst}
+
+\protect \endinput
diff --git a/tex/context/base/core-mar.tex b/tex/context/base/core-mar.tex
new file mode 100644
index 000000000..836dd64b6
--- /dev/null
+++ b/tex/context/base/core-mar.tex
@@ -0,0 +1,126 @@
+%D \module
+%D [ file=core-mar,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Markings,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Core Macros / Markings}
+
+\unprotect
+
+% voor 'interne' doeleinden zijn beschikbaar:
+%
+% \fetchmark[naam][plaats]
+
+% nog expansie in hoofdmarkering
+
+% ook nog reset koppelen aan sectie
+
+\def\hoofdmarkering#1%
+ {\getvalue{\??mk#1\c!koppeling}}
+
+\def\dodoresetmarkering#1%
+ {\doifdefined{\??mk\hoofdmarkering{#1}}
+ {\expandafter\resetmark\csname\??mk\hoofdmarkering{#1}\endcsname}}
+
+\def\doresetmarkering[#1]%
+ {\processcommalist[#1]\dodoresetmarkering}
+
+\def\resetmarkering%
+ {\dosingleargument\doresetmarkering}
+
+\def\dostelmarkeringin[#1][#2]%
+ {\getparameters[\??mk#1][#2]}
+
+\def\stelmarkeringin%
+ {\dodoubleargument\dostelmarkeringin}
+
+\letvalue{\??mk \v!vorige}\gettopmark
+\letvalue{\??mk \v!eerste}\getfirstmark
+\letvalue{\??mk\v!laatste}\getbotmark
+
+\def\dododefinieermarkering[#1][#2]%
+ {\stelmarkeringin[#1]
+ [% \c!expansie=\v!nee, % saves a macro
+ \c!scheider={ --- }, % watch the spaces
+ \c!status=\v!start]%
+ \ontkoppelmarkering[#1]% % no coupling with sections
+ \setevalue{\??mk#1\c!koppeling}{#2}%
+ \expandafter\newmark\csname\??mk#2\endcsname
+ \showmessage{\m!systems}{13}{#1,[#2]}}
+
+\def\dodefinieermarkering[#1][#2]%
+ {\doifelsenothing{#2}
+ {\dododefinieermarkering[#1][#1]}
+ {\dododefinieermarkering[#1][#2]}}
+
+\def\definieermarkering%
+ {\dodoubleempty\dodefinieermarkering}
+
+\let\geenmarkering=\relax
+
+%\def\fetchmark[#1][#2]% geen \def, anders problemen in \doif...
+% {\def\dofetchmark{\getvalue{\??mk#2}}%
+% \expandafter\dofetchmark\csname\??mk\hoofdmarkering{#1}\endcsname}
+
+\def\dofetchmark#1#2% needed because we need to expand
+ {\getvalue{\??mk#2}#1}
+
+\def\fetchmark[#1][#2]% never \unexpanded
+ %{\getvalue{\getvalue{\??mk#2}\??mk\hoofdmarkering{#1}}}
+ {\expandafter\dofetchmark\csname\??mk\hoofdmarkering{#1}\endcsname{#2}}
+
+\def\fetchtwomarks[#1]%
+ {\doifsomething{\fetchmark[#1][\v!eerste]}
+ {\fetchmark[#1][\v!eerste]%
+ \doifsomething{\fetchmark[#1][\v!laatste]}
+ {\doifnot{\fetchmark[#1][\v!eerste]}{\fetchmark[#1][\v!laatste]}
+ {\getvalue{\??mk#1\c!scheider}\fetchmark[#1][\v!laatste]}}}}
+
+\def\fetchallmarks[#1]%
+ {\doifsomething{\fetchmark[#1][\v!eerste]}
+ {\doifsomething{\fetchmark[#1][\v!vorige]}
+ {\doifnot{\fetchmark[#1][\v!vorige]}{\fetchmark[#1][\v!eerste]}
+ {\fetchmark[#1][\v!vorige]\getvalue{\??mk#1\c!scheider}}}}%
+ \fetchtwomarks[#1]}
+
+\def\dohaalmarkering[#1][#2]%
+ {\doifvalue{\??mk#1\c!status}{\v!start}
+ {\bgroup
+ \def\geenmarkering##1{\unknown\ }%
+ \setfullsectionnumber{\??mk#1}%
+ \processaction
+ [#2]
+ [ \v!beide=>{\fetchtwomarks[#1]},
+ \v!alles=>{\fetchallmarks[#1]},
+ \s!default=>{\fetchmark[#1][\v!eerste]},
+ \s!unknown=>{\fetchmark[#1][#2]}]%
+ \egroup}}
+
+\def\nohaalmarkering[#1][#2]%
+ {}
+
+\unexpanded\def\haalmarkering%
+ {\dodoubleargument\dohaalmarkering}
+
+\def\domarking[#1]#2%
+ {\bgroup
+ \doifelsevalue{\??mk#1\c!expansie}{\v!ja}
+ {\expandmarkstrue}
+ {\expandmarksfalse}%
+% \honorunexpanded
+% \getvalue{\??mk\hoofdmarkering{#1}}{#2}%
+ \expandafter\setmark\csname\??mk\hoofdmarkering{#1}\endcsname{#2}%
+ \egroup}
+
+\def\marking%
+ {\dosingleargument\domarking}
+
+\protect \endinput
diff --git a/tex/context/base/core-mps.tex b/tex/context/base/core-mps.tex
index c92aee271..724402983 100644
--- a/tex/context/base/core-mps.tex
+++ b/tex/context/base/core-mps.tex
@@ -15,9 +15,22 @@
\unprotect
-%D Let's first load the auxiliary file.
+%D Let's first preload a few auxiliary \METAPOST\ files.
-\appendtoks input mp-tool ;\to \MPinitializations
+\appendtoks
+ input mp-tool ;
+ input mp-spec ;
+ _inline_shading_ := true ;
+\to \MPinitializations
+
+%D We save the number of graphics for the sake of \TEXEXEC.
+
+\newcounter\totalnumberofMPgraphics
+\def\thecurrentMPgraphic{\the\currentMPgraphic}
+
+\appendtoks
+ \savecurrentvalue\totalnumberofMPgraphics\thecurrentMPgraphic
+\to \everybye
%D The next few macros tell \METAPOST\ how the \CONTEXT\
%D pagebody looks.
@@ -54,7 +67,9 @@
\writeMPpagedata RightMarginWidth \rechtermargebreedte
\writeMPpagedata RightEdgeDistance \rechterrandafstand
\writeMPpagedata RightEdgeWidth \rechterrandbreedte
- \writeMPpagedata PageOffset {\getvalue{\??ma\v!pagina\c!offset}}%
+ \doifelsevalue{\??ma\v!pagina\c!offset}{\v!overlay}
+ {\writeMPpagedata PageOffset {0pt}}
+ {\writeMPpagedata PageOffset {\getvalue{\??ma\v!pagina\c!offset}}}%
\writeMPpagedata PageDepth {\getvalue{\??ma\v!pagina\c!diepte}}%
\immediate\closeout\scratchwrite
\egroup}
@@ -80,6 +95,49 @@
\to \MPinitializations
\let\prepareMPpagedata\relax}
+%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 \starttypen
+%D \defineoverlay[example][\uniqueMPgraphic{test}]
+%D
+%D \startuniqueMPgraphic {test}
+%D draw unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+%D \stopuniqueMPgraphic
+%D \stoptypen
+
+\long\def\startuniqueMPgraphic#1#2\stopuniqueMPgraphic%
+ {\setvalue{MP:#1}%
+ {\startreusableMPgraphic{\overlaystamp:#1}#2\stopreusableMPgraphic
+ \reuseMPgraphic{\overlaystamp:#1}}}
+
+\def\uniqueMPgraphic#1%
+ {\getvalue{MP:#1}}
+
+\def\overlaystamp%
+ {\overlaywidth:\overlayheight:\overlaydepth:\overlaycolor}
+
+%D We redefine a macro from \type {supp-mps.tex}:
+
+\def\MPdatafile%
+ {\bufferprefix mpd-\the\currentMPgraphic.tmp}
+
+%D We also have to make sure that \METAPOST\ knows this:
+
+\appendtoks
+ if not known _data_prefix_ :
+ string _data_prefix_ , _data_suffix_ ;
+ fi ;
+ _data_prefix_ := "\bufferprefix mpd-" ;
+ _data_suffix_ := ".tmp" ;
+\to \MPinitializations
+
+%D Happy drawing.
+
\protect
\endinput
diff --git a/tex/context/base/core-mul.tex b/tex/context/base/core-mul.tex
index ae8055f98..f358604e0 100644
--- a/tex/context/base/core-mul.tex
+++ b/tex/context/base/core-mul.tex
@@ -139,6 +139,8 @@
%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}} \\
@@ -246,10 +248,11 @@
%D are applied to columns. The final values are used when
%D flushing the columns.
-\newcount\nofcolumns \nofcolumns=2
+\newcount\nofcolumns \nofcolumns=2
-\def\maxnofcolumns {16}
-\def\allocatednofcolumns {0}
+\def\maxnofcolumns {16}
+\def\allocatednofcolumns {0}
+\def\minbalancetoplines {1}
\newif\ifbalancecolumns \balancecolumnsfalse
\newif\ifstretchcolumns \stretchcolumnsfalse
@@ -268,6 +271,11 @@
\newtoks\singlecolumnout
+%D The next dimension 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
@@ -414,7 +422,7 @@
%D The local column width is available in the dimension
%D register \type{\localcolumnwidth}, which is calculated as:
-\def\setcolumnhsize%
+\def\setcolumnhsize% beware, this one is available for use in macros
{\setbox0=\hbox
{\parindent\!!zeropoint\betweencolumns}%
\intercolumnwidth=\wd0
@@ -648,70 +656,6 @@
\edef\maxcolumndepth{\the\dp\currentcolumnbox}%
\fi}}
-% \def\flushcolumnedpage%
-% {\bgroup
-% \forgetall
-% \setmulticolumnsout
-% \showcomposition
-% \setmaxcolumndimensions
-% \postprocesscolumns
-% \dohandleallcolumns % \hbox i.v.m. \showcomposition
-% {\global\setbox\currentcolumnbox=\hbox to \localcolumnwidth
-% {\box\currentcolumnbox
-% \global\wd\currentcolumnbox=\localcolumnwidth
-% \ifheightencolumns
-% \global\ht\currentcolumnbox=\fixedcolumnheight
-% \fi}}%
-% \setmaxcolumndimensions
-% \overlaycolumnfootnotes
-% \setbox0=\vbox
-% {\hbox to \finalcolumntextwidth
-% {\dohandleallcolumns
-% {\finishcolumnbox{\hbox
-% {\ifx\finishcolumnbox\relax\else\strut\fi
-% \box\currentcolumnbox}}%
-% \ifnum\currentcolumn<\nofcolumns
-% \hfil
-% \fi}}}%
-% \scratchdimen=\!!zeropoint
-% \dohandleallcolumns
-% {\ifdim-\ht\currenttopcolumnbox<\scratchdimen
-% \scratchdimen=-\ht\currenttopcolumnbox
-% \fi
-% \global\setbox\currenttopcolumnbox=\box\voidb@x}%
-% \advance\scratchdimen by \ht0
-% \setbox2=\hbox to \columntextwidth
-% {\vrule\!!width\!!zeropoint\!!height\scratchdimen\!!depth\dp0
-% \dostepwiserecurse{2}{\nofcolumns}{1}{\hfil\betweencolumns}\hfil}%
-% \setbox0=\hbox
-% {\box0\hskip-\columntextwidth\color[black]{\box2}}%
-% \ifvoid\partialpage \else
-% \ifgridsnapping % do you believe this junk?
-% \scratchdimen=\savedpagetotal
-% \advance\scratchdimen by -\ht\partialpage
-% \advance\scratchdimen by -\dp\partialpage
-% \advance\scratchdimen by -\topskip
-% \box\partialpage
-% \kern\scratchdimen
-% \else
-% \unvbox\partialpage
-% \fi
-% \fi
-% \global\partialpageheight=\!!zeropoint
-% \setvsize
-% \dosomebreak\nobreak
-% \ifgridsnapping \else
-% \dimen0=\topskip
-% \advance\dimen0 by -\openstrutheight
-% \nointerlineskip
-% \vskip-\dimen0
-% \fi
-% \prevdepth\openstrutdepth
-% \nointerlineskip
-% \dp0=\!!zeropoint
-% \box0
-% \egroup}
-
\def\flushcolumnedpage%
{\bgroup
\forgetall
@@ -776,6 +720,9 @@
\prevdepth\openstrutdepth
\nointerlineskip
\dp0=\!!zeropoint
+ \global\finalcolumnheights=\ht0
+ \getnoflines\finalcolumnheights
+ \global\finalcolumnlines=\noflines
\box0
\egroup}
@@ -959,17 +906,6 @@
\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
-% \unvbox#1}}
-
-% \def\splitlastcolumn from \box#1to \dimen#2%
-% {\global\setbox\lastcolumnbox=\vbox
-% {\unvcopy\lasttopcolumnbox
-% \unvbox#1
-% \fakecolumnfootnotes\lastcolumnbox}}
-
\def\splitlastcolumn from \box#1to \dimen#2%
{\global\setbox\lastcolumnbox=\vbox
{\unvcopy\lasttopcolumnbox
@@ -1028,7 +964,7 @@
%D mode was entered, or floats that migrate to next columns.
%D Flushing floats is a delicate process.
-\def\continuousmulticolumnsout%
+\def\continuousmulticolumnsout%
{\bgroup
\forgetall
\setmulticolumnsout
@@ -1095,8 +1031,6 @@
% \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.
@@ -1105,13 +1039,36 @@
%D \type{\box4} garantees a more robust check when skips are
%D used.
-\def\balancedmulticolumnsout%
+\def\balancedmulticolumnsout%
{\bgroup
\setmulticolumnsout
\dontshowcomposition
\widowpenalty=0
\setbox0=\vbox{\unvbox\normalpagebox}%
- \ifdim\ht0>\openlineheight
+\ifdim\ht0>\openlineheight % at least one line
+ \ifnum\minbalancetoplines<2 % balance anyway
+ \donetrue
+ \else % check criterium to available lines
+ \getnoflines{\ht0}%
+ \divide\noflines by \nofcolumns \relax
+ \ifnum\noflines<\minbalancetoplines \relax
+ \dimen0=\ht0
+ \advance\dimen0 by \ht\firsttopcolumnbox
+ \advance\dimen0 by \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 by \topskip
\advance\dimen0 by -\baselineskip
diff --git a/tex/context/base/core-nav.tex b/tex/context/base/core-nav.tex
index 49f7f9794..acbbeec47 100644
--- a/tex/context/base/core-nav.tex
+++ b/tex/context/base/core-nav.tex
@@ -61,6 +61,11 @@
\showmessage{\m!interactions}{3}{\ifusepagedestinations\space(PAGE)\fi}%
\global\locationfalse
\fi}%
+ \iflocation
+ \enablemode [\systemmodeprefix\v!interactie]%
+ \else
+ \disablemode[\systemmodeprefix\v!interactie]%
+ \fi
\doifsomething{\@@iabereken}
{\doregistercalculationset\@@iabereken}%
\doifelse{\@@iastrut}{\v!ja}
diff --git a/tex/context/base/core-new.tex b/tex/context/base/core-new.tex
index 6e02e0144..610d89aae 100644
--- a/tex/context/base/core-new.tex
+++ b/tex/context/base/core-new.tex
@@ -30,16 +30,29 @@
%
% \startnotmode [list]
% \stopnotmode
-
+%
+% system modes have a * as prefix
+%
% to be implemented: mode naar texutil/scherm + message
+% : geen #2 en nesting (\startregels)
+
+\def\systemmodeprefix{*}
\let\currentmode=\empty
+% \def\enablemode[#1]%
+% {\expandafter\addtocommalist\expandafter{#1}\currentmode}
+%
+% \def\disablemode[#1]%
+% {\expandafter\removefromcommalist\expandafter{#1}\currentmode}
+%
+% this one fails in removing system modes
+
\def\enablemode[#1]%
- {\expandafter\addtocommalist\expandafter{#1}\currentmode}
+ {\expanded{\addtocommalist{#1}\noexpand\currentmode}}
\def\disablemode[#1]%
- {\expandafter\removefromcommalist\expandafter{#1}\currentmode}
+ {\expanded{\removefromcommalist{#1}\noexpand\currentmode}}
\def\doifmodeelse%
{\unprotect\dodoifmodeelse}
diff --git a/tex/context/base/core-not.tex b/tex/context/base/core-not.tex
index 3bf022fed..7b88a254b 100644
--- a/tex/context/base/core-not.tex
+++ b/tex/context/base/core-not.tex
@@ -350,17 +350,17 @@
{\bgroup
\unskip\unskip
\ifdim\lastkern=\footnotesignal
- \hoog{\kern\@@vnafstand}% gets the font right, hack !
+ \high{\kern\@@vnafstand}% gets the font right, hack !
\fi
\ignorespaces
\nobreak
\iflocation
\naarbox
- {\hoog{\tx\footnotenumber\domovednote\v!vorigepagina\v!volgendepagina}}
+ {\high{\tx\footnotenumber\domovednote\v!vorigepagina\v!volgendepagina}}
[\s!fnt:t:\internalfootreference]%
\rawreference{\s!fnt}{\s!fnt:f:\internalfootreference}{}%
\else
- \hoog{\tx\footnotenumber\domovednote\v!vorigepagina\v!volgendepagina}%
+ \high{\tx\footnotenumber\domovednote\v!vorigepagina\v!volgendepagina}%
\ifconditional\pagewisefootnotes
\rawreference{\s!fnt}{\s!fnt:f:\internalfootreference}{}%
\fi
@@ -418,7 +418,7 @@
{\iffootnotesenabled
\bgroup
\unskip
- \naarbox{\hoog{\tx\currenttextreference}}[#1]%
+ \naarbox{\high{\tx\currenttextreference}}[#1]%
\egroup
\fi}
@@ -613,7 +613,7 @@
\newbox\localpostponedfootnotes
\def\collectlocalfootnotes%
- {\gdef\localfootinsert##1%
+ {\def\localfootinsert##1% was \gdef, but never reset!
{%\message{[local footnote]}%
\global\setbox\localpostponedfootnotes=\vbox\bgroup
\unvbox\localpostponedfootnotes
@@ -755,7 +755,7 @@
%\c!breedte=\ifdim\hsize<\zetbreedte\hsize\else\zetbreedte\fi,
\c!breedte=\defaultfootnotewidth,
\c!hoogte=\teksthoogte,
- \c!nummercommando=\hoog,
+ \c!nummercommando=\high,
\c!n=1]
\protect
diff --git a/tex/context/base/core-num.tex b/tex/context/base/core-num.tex
new file mode 100644
index 000000000..45ce75092
--- /dev/null
+++ b/tex/context/base/core-num.tex
@@ -0,0 +1,133 @@
+%D \module
+%D [ file=core-num,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Numbering,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Core Macros / Numbering}
+
+\unprotect
+
+% Commando's ten behoeve van nummeren:
+%
+% \definieernummer[naam]
+% \stelnummerin[naam][wijze=,blok=,tekst=,plaats=,conversie=,start=]
+% \setnummer[naam]{waarde}
+% \resetnummer[naam]
+% \verhoognummer[naam]
+% \verlaagnummer[naam]
+% \volgendenummer[naam][tag][referentie]
+% \nummer[naam]
+% \huidigenummer[naam]
+% \savenumber[naam]
+% \restorenumber[naam]
+
+\newif\ifnummeren
+
+\def\dostelnummerin[#1][#2]%
+ {\@EA\let\@EA\savedstartnumber\csname\s!number#1\c!start\endcsname
+ \getparameters[\s!number#1][\c!start=,#2]%
+ \doifelsevaluenothing{\s!number#1\c!start}
+ {\letvalue{\s!number#1\c!start}=\savedstartnumber}
+ {\setcounter{\s!number#1}{\getvalue{\s!number#1\c!start}}}}
+
+\def\stelnummerin%
+ {\dodoubleargument\dostelnummerin}
+
+\def\dodefinieernummer[#1][#2]% ook overal class als localframed
+ {\getparameters
+ [\s!number#1]
+ [\s!check=,
+ \c!wijze=\@@nrwijze,
+ \c!wijze\c!lokaal=\getvalue{\s!number#1\c!wijze},
+ \c!sectienummer=\v!ja,
+ \c!tekst=,
+ \c!plaats=, % was: \c!zetwijze
+ \c!conversie=\v!cijfers,
+ \c!start=0,
+ #2]%
+ \makecounter{\s!number#1}%
+ \setcounter{\s!number#1}{\getvalue{\s!number#1\c!start}}}
+
+% \c!nummer=#1 ; nogal veel copieen nodig
+%
+% \def\@@thenumber#1{\s!number\getvalue{\s!number#1\c!nummer}}
+
+\def\definieernummer%
+ {\dodoubleempty\dodefinieernummer}
+
+\def\setnummer[#1]#2%
+ {\setcounter{\s!number#1}{#2}}
+
+\def\resetnummer[#1]%
+ {\setcounter{\s!number#1}{0\getvalue{\s!number#1\c!start}}}
+
+\def\dodoreset#1%
+ {\getvalue{\s!reset#1}}%
+
+\def\doreset[#1]%
+ {\processcommalist[#1]\dodoreset}
+
+\def\reset%
+ {\dosingleargument\doreset}
+
+\def\verhoognummer[#1]%
+ {\checknummer{#1}%
+ \ifnummeren
+ \else
+ \resetcounter{\s!number#1}%
+ \fi
+ \pluscounter{\s!number#1}}
+
+\def\savenumber[#1]%
+ {\savecounter{\s!number#1}}
+
+\def\restorenumber[#1]%
+ {\restorecounter{\s!number#1}}
+
+% nieuw, maar kan dit (i.v.m. (sub)page?)
+
+\def\verhoognummer[#1]%
+ {\checknummer{#1}%
+ \ifnummeren
+ \pluscounter{\s!number#1}%
+ \else
+ \setcounter{\s!number#1}{0\getvalue{\s!number#1\c!start}}%
+ \fi}
+
+\def\verlaagnummer[#1]%
+ {\minuscounter{\s!number#1}}
+
+\def\nummer[#1]%
+ {\convertnumber
+ {\getvalue{\s!number#1\c!conversie}}
+ {\countervalue{\s!number#1}}}
+
+\def\ruwenummer[#1]%
+ {\countervalue{\s!number#1}}
+
+% ook de pag nummers hierheen halen ivm \@@nrwijze
+
+\def\dostelnummerenin[#1]% globaal
+ {\getparameters[\??nr][#1]%
+ \doifelse{\@@nrstatus}{\v!start}
+ {\global\nummerentrue}
+ {\global\nummerenfalse}}%
+
+\def\stelnummerenin%
+ {\dosingleargument\dostelnummerenin}
+
+\stelnummerenin
+ [\c!wijze=\v!per\v!hoofdstuk,
+ \c!blokwijze=,
+ \c!sectienummer=\v!ja,
+ \c!status=\v!start]
+
+\protect \endinput
diff --git a/tex/context/base/core-pag.tex b/tex/context/base/core-pag.tex
index 68d94c50d..6ed2f3475 100644
--- a/tex/context/base/core-pag.tex
+++ b/tex/context/base/core-pag.tex
@@ -472,9 +472,10 @@
{\dodoinsertpages[#1][][#2]}
{\dodoinsertpages[#1][#2][#3]}}
-\def\dodoinsertpages[#1][#2][#3]%
+\def\dodoinsertpages[#1][#2][#3]%
{\bgroup
\mindermeldingen
+ \getfiguredimensions[#1]%
\getparameters[\??ip][\c!n=\noffigurepages,\c!breedte=\!!zeropoint,#3]%
\dorecurse{\@@ipn}
{\dofilterpage{#1}{\recurselevel}%
@@ -484,9 +485,10 @@
\def\filterpages%
{\dotripleempty\dofilterpages}
-\def\dofilterpages[#1][#2][#3]%
+\def\dofilterpages[#1][#2][#3]% % \noffigurepages not yet supported
{\bgroup
\mindermeldingen
+ \getfiguredimensions[#1]%
\getparameters[\??ip][\c!n=\noffigurepages,\c!breedte=\!!zeropoint,#3]%
\doifelse{#2}{\v!even}
{\dorecurse{\@@ipn}
@@ -514,12 +516,23 @@
{\dodoubleempty\docopypages}
\def\docopypages[#1][#2]%
- {\getparameters[\??ip][\c!n=\noffigurepages,#2]%
+ {\bgroup
+ \getfiguredimensions[#1]%
+ \getparameters[\??ip][\c!n=\noffigurepages,\c!schaal=\!!thousand,\c!offset=\!!zeropoint,#2]%
\dorecurse{\@@ipn}
{\vbox to \teksthoogte
{\hsize=\tekstbreedte
- \centeredbox{\externalfigure[#1][\c!pagina=\recurselevel,#2]}}
- \pagina}}
+ \scratchdimen=\@@ipoffset
+ \centeredbox
+ {\ifdim\scratchdimen>\!!zeropoint\relax
+ \advance\vsize by -2\scratchdimen
+ \advance\hsize by -2\scratchdimen
+ \externalfigure[#1][\c!pagina=\recurselevel,#2,\c!schaal=,\c!factor=\v!max,\c!offset=\v!overlay]%
+ \else
+ \externalfigure[#1][\c!pagina=\recurselevel,#2,\c!offset=\v!overlay]%
+ \fi}}
+ \pagina}
+ \egroup}
%D \macros
%D {combinepages}
@@ -553,7 +566,7 @@
\def\docombinepages[#1][#2]%
{\bgroup
- \def\noffigurepages{1}%
+ \getfiguredimensions[#1]%
\getparameters
[\??ip]
[\c!n=\noffigurepages,\c!nx=2,\c!ny=2,
@@ -567,7 +580,7 @@
\doloop
{\vbox to \teksthoogte
{\mindermeldingen
- \hsize=\tekstbreedte
+ \hsize=\tekstbreedte
\scratchdimen=\@@ipafstand
\!!widtha=\hsize
\advance\!!widtha by -\@@ipnx\scratchdimen
@@ -589,7 +602,6 @@
{\@@iplinks
\ifnum\combinedpagescounter>\@@ipn \else
\externalfigure[#1][\c!pagina=\combinedpagescounter,\c!factor=\v!max,\c!kader=\@@ipkader]%
- \getnumberoffigurepages\noffigurepages
\fi
\@@iprechts}
\@@iponder}%
@@ -625,11 +637,11 @@
{\stelpapierformaatin[\c!links=\hskip\@@pcoffset]%
\adddimenmacro\papierhoogte\@@pcoffset\@@pcoffset\@@pcafstand\@@pchoogte\to\@@pcpaperheight
\adddimenmacro\papierbreedte\@@pcoffset\@@pcoffset\to\@@pcpaperwidth
- \definieeroverlay[pagecomment][\placepagecommentTB]}
+ \defineoverlay[pagecomment][\placepagecommentTB]}
{\stelpapierformaatin[\c!boven=\vskip\@@pcoffset]%
\adddimenmacro\papierhoogte\@@pcoffset\@@pcoffset\to\@@pcpaperheight
\adddimenmacro\papierbreedte\@@pcoffset\@@pcoffset\@@pcafstand\@@pcbreedte\to\@@pcpaperwidth
- \definieeroverlay[pagecomment][\placepagecommentLR]}%
+ \defineoverlay[pagecomment][\placepagecommentLR]}%
\processaction
[\@@pcplaats]
[ \v!onder=>{\stelpapierformaatin[\c!onder =\vss,\c!boven =\vskip\@@pcoffset]},
diff --git a/tex/context/base/core-01e.tex b/tex/context/base/core-par.tex
index afb3debef..1235d74b4 100644
--- a/tex/context/base/core-01e.tex
+++ b/tex/context/base/core-par.tex
@@ -1,8 +1,8 @@
%D \module
-%D [ file=core-01e,
+%D [ file=core-par,
%D version=1997.03.31,
%D title=\CONTEXT\ Core Macros,
-%D subtitle=1E (to be split),
+%D subtitle=Paragraph Tricks,
%D author=Hans Hagen,
%D date=\currentdate,
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
@@ -11,7 +11,7 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros (e)}
+\writestatus{loading}{ConTeXt Pararaph Tricks}
\unprotect
@@ -75,7 +75,7 @@
{\bgroup
\resetparagraphlines
\EveryPar
- {\strut\inlinkermarge{\tf{\tx\paragraphnumber}\kern2em}%
+ {\strut\inleftmargin{\tf{\tx\paragraphnumber}\kern2em}%
\ignorespaces}}
\def\doresetparagraph%
{\resetparagraphlines
@@ -205,9 +205,6 @@
\global\let\nofparagraphs=\totalnofparagraphs
\doglobal\decrement(\nofparagraphs,\discardedparagraphs)}
-% \steluitlijnenin[onder]
-% \stelwitruimtein[groot]
-%
% \toonkader
%
% \numberparagraphlines
@@ -295,128 +292,5 @@
% \ruledvbox{\popparagraphs[1,2,3,4,5]}
%
% \pagina
-
-% PAS OP: VERVALLEN
-%
-% \newif\ifprocesspreviousparagraphs
-% \newif\ifprocessallparagraphs
-%
-% \newcounter\nofskippedparagraphs
-% \newcounter\nofmidskippedparagraphs
-%
-% \def\alineanummer {}
-%
-% \newcounter\nofalineas
-%
-% \def\laadalineas#1% alinea = class
-% {\doglobal\newcounter\nofalineas
-% \doglobal\decrement(\nofalineas,\nofskippedparagraphs)%
-% \ifx#1\undefined
-% \let#1=\relax
-% \fi
-% \convertargument#1\to\asciiA
-% \convertargument{ }\to\asciiB % lege regel
-% \def\dolaadalinea##1\par%
-% {\convertargument##1\to\asciiC
-% \doifelse{\asciiC}{\asciiA}
-% {\let\next=#1}
-% {\doifnot{\asciiC}{} % lege paragraaf
-% {\doifnot{\asciiC}{\asciiB}
-% {\doglobal\increment\nofalineas
-% \setgvalue{alinea\nofalineas}{##1}}}%
-% \let\next=\dolaadalinea}
-% \next}%
-% \dolaadalinea}
-%
-% % De constructie \edef\alineanummer{#1} is nodig voor
-% % bijvoorbeeld:
-% %
-% % \EveryPar{\strut\inlinker{\alineanummer}}
-% %
-% % Laten we dit weg, dan wordt het vorige nummer gebruikt.
-%
-% \def\dododohaalalinea#1% geen grouping, i.v.m. sidefloats
-% {\edef\localalineanummer{#1}%
-% \ifnum\localalineanummer>\nofalineas\relax
-% \else
-% \ifnum\localalineanummer>0\relax
-% \let\alineanummer=\localalineanummer
-% \decrement(\alineanummer,\nofmidskippedparagraphs)%
-% \else
-% \let\alineanummer=\empty
-% \fi
-% \dopreparagraph
-% \doeveryparagraph\getvalue{alinea\localalineanummer}\par
-% \dopostparagraph
-% \fi}
-%
-% \long\def\geenalinea#1\par%
-% {\ifprocessallparagraphs
-% \let\alineanummer=\relax
-% \dopostparagraph % fool around a bit
-% #1\par
-% \dopreparagraph % ugly but effective
-% \fi
-% \doglobal\increment\nofmidskippedparagraphs}
-%
-% \def\dodohaalalinea%
-% {\dododohaalalinea}
-%
-% \def\dodoverwerkalinea#1%
-% {\ifprocesspreviousparagraphs
-% \bgroup
-% \setbox0=\vbox{\dododohaalalinea{#1}}%
-% \egroup
-% \fi}
-%
-% \def\verwerkvorigealineas[#1]% process previous ones
-% {\ifprocesspreviousparagraphs
-% \bgroup
-% \getfromcommacommand[#1][1]%
-% \let\nofalineas=\commalistelement
-% \decrement\nofalineas
-% \let\dodohaalalinea=\dodoverwerkalinea
-% \haalalineas
-% \egroup
-% \fi}
-%
-% \let \dosetparagraph = \relax
-% \let \doresetparagraph = \relax
-% \let \dopreparagraph = \relax
-% \let \dopostparagraph = \relax
-% \let \doeveryparagraph = \relax
-%
-% \def\dohaalalineas[#1]%
-% {\doifnotinset{#1}{\v!geen,0}
-% {\dosetparagraph
-% \doglobal\newcounter\globalalineanummer
-% \doglobal\newcounter\nofmidskippedparagraphs
-% \doifelse{#1}{}
-% {\processallparagraphstrue
-% \doglobal\decrement(\globalalineanummer,\nofskippedparagraphs)}
-% {\processallparagraphsfalse}%
-% \def\dohaalalinea%
-% {\doglobal\increment\globalalineanummer
-% \ifnum\globalalineanummer>\nofalineas\relax
-% \let\dohaalalinea=\relax
-% \else
-% \ifprocessallparagraphs
-% \dodohaalalinea\globalalineanummer
-% \else
-% \let\localalineanummer=\globalalineanummer
-% \decrement(\localalineanummer,\nofmidskippedparagraphs)%
-% \ExpandBothAfter\doifinsetelse{\localalineanummer}{#1}
-% {\dodohaalalinea\globalalineanummer}
-% {\dodoverwerkalinea\globalalineanummer}%
-% \fi
-% \fi
-% \dohaalalinea}%
-% \dohaalalinea
-% \doresetparagraph}}
-%
-% \def\haalalineas%
-% {\dosingleempty\dohaalalineas}
-
-\protect
-\endinput
+\protect \endinput
diff --git a/tex/context/base/core-ref.tex b/tex/context/base/core-ref.tex
index 6996d6ead..8604bafab 100644
--- a/tex/context/base/core-ref.tex
+++ b/tex/context/base/core-ref.tex
@@ -17,7 +17,7 @@
%
% uitprinten
% engels maken
-% rommel voorlopig naar core-01d
+% rommel voorlopig naar core-int/core-nav
% programma, profiel etc als methode
% \macro toevoegen
@@ -833,9 +833,8 @@
\fi
\fi
\fi
-% \ifx\currentfullreference\v!geen % DOCUMENT THIS ONE!
-% \global\referencefoundfalse
-% \fi
+% \doif{\currentfullreference}{\v!geen} % DOCUMENT THIS ONE!
+% {\global\referencefoundfalse}
\iftracereferences
\doshowcurrentreference\space
\writestatus{\m!references}{\currentreferenceshow}%
@@ -902,9 +901,8 @@
\fi
\fi
\fi
-% \ifx\currentfullreference\v!geen % DOCUMENT THIS ONE!
-% \global\referencefoundfalse
-% \fi
+% \doif{\currentfullreference}{\v!geen} % DOCUMENT THIS ONE!
+% {\global\referencefoundfalse}%
\iftracereferences
\doshowcurrentreference\space
\writestatus{\m!references}{\currentreferenceshow}%
@@ -1340,7 +1338,7 @@
%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 driver. Conversion is taken care of by:
%D
%D \startypen
%D \setreferencefilename somefilename\to\SomeFileName
@@ -1520,7 +1518,8 @@
\definesystemreferencehandler \rt!list \handlelistreference
\def\handleexecreference#1%
- {\executecommand{\currentdatareference}{\currentreferencearguments}}
+ {\checkexecutecommand{\currentdatareference}{\currentreferencearguments}%
+ \executecommand{\currentdatareference}{\currentreferencearguments}}
\def\handlepagereference#1%
{\gotorealpage{}{}{\currentdatareference}}
@@ -1528,6 +1527,24 @@
\def\handlelistreference#1% is deze nog echt nodig?
{\gotodestination{}{}{\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 \starttypen
+%D \setexecutecommandcheck{startsound}\checksoundtrack
+%D \stoptypen
+
+\def\setexecutecommandcheck#1#2% #2 permits \first \second
+ {\setvalue{\s!do\s!do#1}{#2}}
+
+\def\checkexecutecommand#1#2%
+ {\def\docheckexecutecommand##1%
+ {\doifdefined{\s!do\s!do#1}{\getvalue{\s!do\s!do#1}{##1}}}%
+ \processcommacommand[#2]\docheckexecutecommand}
+
%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
@@ -1541,20 +1558,24 @@
\setglobalsystemreference \rt!exec \v!LastPage {last}
\setglobalsystemreference \rt!exec \v!NextJump {forward}
\setglobalsystemreference \rt!exec \v!NextPage {next}
-\setglobalsystemreference \rt!exec \v!PauseMovie {pause}
+\setglobalsystemreference \rt!exec \v!PauseMovie {pausemovie}
+\setglobalsystemreference \rt!exec \v!PauseSound {pausesound}
\setglobalsystemreference \rt!exec \v!PreviousJump {backward}
\setglobalsystemreference \rt!exec \v!PreviousPage {previous}
\setglobalsystemreference \rt!exec \v!PrintDocument {print}
-\setglobalsystemreference \rt!exec \v!SaveForm {export}
-\setglobalsystemreference \rt!exec \v!LoadForm {import}
-\setglobalsystemreference \rt!exec \v!ResetForm {reset}
-\setglobalsystemreference \rt!exec \v!ResumeMovie {resume}
+\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!SaveDocument {save}
\setglobalsystemreference \rt!exec \v!SearchAgain {searchagain}
\setglobalsystemreference \rt!exec \v!SearchDocument {search}
-\setglobalsystemreference \rt!exec \v!StartMovie {start}
-\setglobalsystemreference \rt!exec \v!StopMovie {stop}
-\setglobalsystemreference \rt!exec \v!SubmitForm {submit}
+\setglobalsystemreference \rt!exec \v!StartMovie {startmovie}
+\setglobalsystemreference \rt!exec \v!StartSound {startsound}
+\setglobalsystemreference \rt!exec \v!StopMovie {stopmovie}
+\setglobalsystemreference \rt!exec \v!StopSound {stopsound}
+\setglobalsystemreference \rt!exec \v!SubmitForm {submitform}
\setglobalsystemreference \rt!exec \v!SwapViewer {swap}
\setglobalsystemreference \rt!exec \v!ViewerHelp {help}
\setglobalsystemreference \rt!exec \v!HideField {hide}
@@ -1853,19 +1874,19 @@
\ifx\currentreferencespecial\empty
\ifx\currentouterreference\empty
\ifnum0\currentrealreference=0
- \ifhmode\strut\hoog{\symbol[\v!nergens]}\fi
+ \ifhmode\strut\high{\symbol[\v!nergens]}\fi
\else\ifnum0\currentrealreference>\realpageno
- \dodosymbolreference{#2}{\hoog{\symbol[\v!volgende]}}%
+ \dodosymbolreference{#2}{\high{\symbol[\v!volgende]}}%
\else\ifnum0\currentrealreference<\realpageno
- \dodosymbolreference{#2}{\hoog{\symbol[\v!vorige]}}%
+ \dodosymbolreference{#2}{\high{\symbol[\v!vorige]}}%
\else
- \ifhmode\strut\hoog{\symbol[\v!nergens]}\fi
+ \ifhmode\strut\high{\symbol[\v!nergens]}\fi
\fi\fi\fi
\else
- \gotoouterlocation{#3}{\showlocation{\hoog{\symbol[\v!ergens]}}}%
+ \gotoouterlocation{#3}{\showlocation{\high{\symbol[\v!ergens]}}}%
\fi
\else
- \gotospeciallocation{#3}{\showlocation{\hoog{\symbol[\v!ergens]}}}%
+ \gotospeciallocation{#3}{\showlocation{\high{\symbol[\v!ergens]}}}%
\fi
\egroup}
@@ -1901,41 +1922,103 @@
\let\dowantedreference=\docompletereference
-%D [ref] here when ok
-
-% \chapter[a]{first}
-%
-% \placeformula[b] \startformula a = b + c \stopformula
-%
-% \placeformula[for:c] \startformula a = b + c \stopformula
-%
-% \blank
-%
-% \in{chapter}[a] and \in{formula}[b] and \in{formula}[for:c] \par
-% \at{page}[a] and \at{page}[b] and \at{page}[for:c]
-%
-% \definereferenceformat[informula]
-%
-% \informula[b] and \informula[for:c] \par
-% the \informula{formulas}[b] \informula{en}[for:c]
-%
-% \definereferenceformat[informula][left=(,right=)]
-%
-% \informula[b] en \informula[for:c] \par
-% the \informula{formulas}[b] \informula{and}[for:c]
-%
-% \definereferenceformat[informula] [left=(,right=),text=formula]
-% \definereferenceformat[informulas] [left=(,right=),text=formulas]
-% \definereferenceformat[andformula] [left=(,right=),text=and]
-% \definereferenceformat[andformulas][left=(,right=),text=and]
-%
-% \informula[b] and \informula[for:c] \par
-% the \informula{formulas}[b] \informula{and}[for:c] \par
-% the \informulas{formulas}[b] \informula{and}[for:c] \par
-% the \informulas[b] \informula{en}[for:c] \par
-% the \informulas[b] \andformula[for:c] \par
-%
-% Instead of a text, one can specify a label.
+%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 \starttypen
+%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 \stoptypen
+%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!links=, % of the number
+ \c!rechts=, % of the number
+ \c!tekst=, % before the number
+ \c!label=, % can be {left}{right}
+ \c!commando=\in,
+ #2]%
+ \unexpanded\setvalue{#1}{\doexecutereferenceformat{#1}}%
+ \fi}
+
+\def\noexecutelabelreferenceformat#1%
+ {\doifvaluesomething{\??rf#1\c!tekst}
+ {\gdef\textofreference{\getvalue{\??rf#1\c!tekst}}}%
+ \getvalue{\??rf#1\c!commando}}
+
+\def\doexecutelabelreferenceformat#1%
+ {\getvalue{\??rf#1\c!commando}%
+ {\leftlabeltext {\getvalue{\??rf#1\c!label}}}%
+ {\rightlabeltext{\getvalue{\??rf#1\c!label}}}}
+
+\def\doexecutereferenceformat#1%
+ {\gdef\leftofreference {\getvalue{\??rf#1\c!links }}%
+ \gdef\rightofreference{\getvalue{\??rf#1\c!rechts}}%
+ \global\let\textofreference\empty % otherwise ~ added
+ \doifelsevaluenothing{\??rf#1\c!label}
+ {\let\next\noexecutelabelreferenceformat}
+ {\let\next\doexecutelabelreferenceformat}%
+ \next{#1}}
+
+\let\leftofreference \relax
+\let\rightofreference\relax
+\let\textofreference \relax
+
+\def\dodododoinatreference#1#2#3[#4]%
+ {\ifx\next\bgroup
+ \dododododoinatreference
+ {\leftofreference#1\ignorespaces#3\rightofreference}{#2}[#4]%
+ \else
+ \dododododoinatreference
+ {\leftofreference#1\rightofreference}{#2#3}[#4]%
+ \fi}
+
+\def\dododododoinatreference#1#2[#3]%
+ {\bgroup
+ \forgetall
+ \leaveoutervmode
+ \doifreferencefoundelse{#3}
+ {\bgroup
+ \let\ignorespaces \empty % rather dirty trick, but ok
+ \let\leftofreference \empty % the same, again ok
+ \let\rightofreference\empty % and once more
+ \def\textofreference {#2}% % temporary value
+ \ifx\textofreference\empty % simple expansion
+ \doifelsenothing{#1}
+ {\egroup\dosymbolreference{#1}{\textofreference}[#3]}
+ {\egroup\dowantedreference{#1}{\textofreference}[#3]}%
+ \else
+ \doifelsenothing{#1}
+ {\egroup\dosymbolreference{#1}{#2}[#3]}
+ {\egroup\dowantedreference{#1}{#2}[#3]}%
+ \fi}
+ {\dounknownreference{#1}{#2}[#3]}%
+ \referentieinfo{<}{#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
@@ -1970,7 +2053,7 @@
{\doifelsenothing{#1}
{\dosymbolreference{}{}[#2]}
{\donaarspace{#1}[#2]}}
- {\unknownreference{#2}#1}%
+ {\unknownreference{#2}#1\relax}% \relax catches lookahead
\referentieinfo{<}{#2}}
\unexpanded\def\naar#1#2%
@@ -2198,14 +2281,22 @@
%D \type{\setouterlocation} and now is the time to define this
%D one.
+\newconditional\forceURLlocation
+
\def\setouterlocation#1%
{\doifdefinedelse{\v!file:::#1}
{\def\doexternaldocument[##1][##2][##3]%
{\edef\otherURL{##1}%
\edef\otherfile{##2}}%
\getvalue{\v!file:::#1}}
- {\let\otherURL=\empty
- \edef\otherfile{#1}}%
+ {\ifconditional\forceURLlocation
+ \edef\otherURL {#1}%
+ \let\otherfile\empty
+ \else
+ \let\otherURL\empty
+ \edef\otherfile{#1}%
+ \fi}%
+ \setfalse\forceURLlocation
\doifparentfileelse{\otherfile}
{\let\otherURL=\empty
\let\otherfile=\empty
@@ -2261,13 +2352,13 @@
%D
%D The fastest implementation would be:
-\definespecialtest\v!file {\handlespecialFILEandURL}
-\definespecialtest\v!URL {\handlespecialFILEandURL}
-\definespecialtest\v!url {\handlespecialFILEandURL}
+\definespecialtest\v!file {\setfalse\forceURLlocation\handlespecialFILEandURL}
+\definespecialtest\v!URL {\settrue \forceURLlocation\handlespecialFILEandURL}
+\definespecialtest\v!url {\settrue \forceURLlocation\handlespecialFILEandURL}
-\definespeciallocation\v!file {\handlespecialallocationFILEandURL}
-\definespeciallocation\v!URL {\handlespecialallocationFILEandURL}
-\definespeciallocation\v!url {\handlespecialallocationFILEandURL}
+\definespeciallocation\v!file{\setfalse\forceURLlocation\handlespecialallocationFILEandURL}
+\definespeciallocation\v!URL {\settrue \forceURLlocation\handlespecialallocationFILEandURL}
+\definespeciallocation\v!url {\settrue \forceURLlocation\handlespecialallocationFILEandURL}
\def\handlespecialFILEandURL%
{\doifreferencefoundelse
@@ -2702,7 +2793,7 @@
\doif{\@@ibstatus}{\v!stop}{\locationfalse}%
\iflocation
\ifsecondargument
- \checkinteractiebalk\v!ruim\!!zeropoint % brrrrr
+ \checkinteractiebalk{1.5em}\v!ruim\!!zeropoint % brrrrr
\setbox2=\hbox
{\setupsymbolset[\@@iasymboolset]%
\localframed[\??ib][]{\symbol[\v!vorigepagina]}}%
@@ -2716,7 +2807,7 @@
[ \v!pagina=>\advance\!!counta by 4,
\v!sub\v!pagina=>\advance\!!counta by 4,
\s!unknown=>\advance\!!counta by 1]%
- \ifdim\@@ibbreedte=\!!zeropoint
+ \ifdim\@@ibbreedte=\!!zeropoint\relax
\!!widtha=2em
\advance\!!widtha by \@@ibafstand % new
\!!widthb=\!!counta\!!widtha
diff --git a/tex/context/base/core-reg.tex b/tex/context/base/core-reg.tex
index 6b58ae107..c978983c8 100644
--- a/tex/context/base/core-reg.tex
+++ b/tex/context/base/core-reg.tex
@@ -15,8 +15,6 @@
\newif \ifautoregisterhack % for the moment a private hack
-% for the moment \e!register ipv #1 (evt nog \v!register)
-
\unprotect
%D Isolated but still indocumented.
@@ -71,7 +69,7 @@
\def\getlastregisterentry#1%
{\def\docommando##1%
{\def\!!stringa{##1}}%
- \processconcanatedlist[#1][+]\docommando
+ \processseparatedlist[#1][+]\docommando
\!!stringa}
\def\doprocesspageregister[#1]#2%
@@ -454,8 +452,8 @@
\fi
\fi
% aangepast
- \def\dodocommando[####1-####2]%
- {\gotonextinternal{\s!ind}{####1}{####2}{\box0}}%
+ \def\dodocommando[##1-##2]%
+ {\gotonextinternal{\s!ind}{##1}{##2}{\box0}}%
\doifelsevalue{\??id#1\c!interactie}{\v!paginanummer}
{\limitedregisterentry{#1}{#2}} % paginanummer
{{\setbox0=\hbox{\limitedregisterentry{#1}{\begstrut#2}}%
@@ -471,12 +469,12 @@
\doifvalue{\??id#1\c!nummer}{\v!ja}
{\hskip\getvalue{\??id#1\c!afstand}(\commalistsize)}%
\doifnotvalue{\??id#1\c!interactie}{\v!tekst} % paginanummer,alles
- {\def\docommando####1####2%
- {{\setbox0=\hbox{\showlocation{\hbox to 1em{\hss\symbol[####2]\hss}}}%
- \ifx####1\empty
+ {\def\docommando##1##2%
+ {{\setbox0=\hbox{\showlocation{\hbox to 1em{\hss\symbol[##2]\hss}}}%
+ \ifx##1\empty
% \hskip\wd0 % (optioneel maken)
\else
- \expandafter\dodocommando\expandafter[####1]%
+ \expandafter\dodocommando\expandafter[##1]%
\fi}}%
\hskip\getvalue{\??id#1\c!afstand}%
\docommando\firstlistreference\v!vorige
@@ -666,7 +664,7 @@
\setvalue{#1\s!entry}##1%
{\dosetpageregisterletter{#1}{##1}}}
-\def\dosetautoregisterentrya#1#2% for the moment \e!register ipv #1
+\def\dosetautoregisterentrya#1#2%
{\global\utilitydonetrue
\c!entryletter
\iflocation
@@ -678,7 +676,7 @@
\setupinteraction[\c!kleur=,\c!contrastkleur=,\c!letter=]% kan sneller
\naarbox
{\limitedregisterentry{#1}{\begstrut#2}}%
- [JS(SetRegisterEntry{\e!register,\countervalue{autolink:#1},#2,{\alllistreferences}})]%
+ [JS(SetRegisterEntry{\v!register,\countervalue{autolink:#1},#2,{\alllistreferences}})]%
\egroup
\else
\endgraf\noindent\c!entryreference
@@ -703,31 +701,31 @@
%D much faster, but is conceptually pretty weak.
\def\complexregisterfield[#1]%
- {\definefield[#1:\realfolio][line][\e!register]%
+ {\definefield[#1:\realfolio][line][\v!register]%
\field[#1:\realfolio]}
\def\simpleregisterfield%
- {\complexregisterfield[\e!register]}
+ {\complexregisterfield[\v!register]}
\definecomplexorsimple\registerfield
\setupfield
- [\e!register]
+ [\v!register]
[\c!breedte=10em,
\c!hoogte=3ex,
\c!uitlijnen=\v!midden,
\c!optie=\v!alleenleesbaar,
\c!plaats=\v!laag]
-\def\doinitializeautoregister#1% for the moment \e!register ipv #1
+\def\doinitializeautoregister#1%
{\useJSscripts[reg]%
\useJSpreamblenow{LinkedRegisters}%
- \setupinteraction[\c!openpaginaactie=JS(UpdateRegisterField{\e!register})]%
- \definereference[\v!reset \e!register][JS(ResetRegisterEntry{\e!register})]%
- \definereference[\v!eerste \e!register][JS(GotoFirstRegisterEntry{\e!register})]%
- \definereference[\v!vorige \e!register][JS(GotoPreviousRegisterEntry{\e!register})]%
- \definereference[\v!volgende\e!register][JS(GotoNextRegisterEntry{\e!register})]%
- \definereference[\v!laatste \e!register][JS(GotoLastRegisterEntry{\e!register})]}
+ \setupinteraction[\c!openpaginaactie=JS(UpdateRegisterField{\v!register})]%
+ \definereference[\v!reset \v!register][JS(ResetRegisterEntry{\v!register})]%
+ \definereference[\v!eerste \v!register][JS(GotoFirstRegisterEntry{\v!register})]%
+ \definereference[\v!vorige \v!register][JS(GotoPreviousRegisterEntry{\v!register})]%
+ \definereference[\v!volgende\v!register][JS(GotoNextRegisterEntry{\v!register})]%
+ \definereference[\v!laatste \v!register][JS(GotoLastRegisterEntry{\v!register})]}
\def\doinitializelinkregister#1%
{}
@@ -830,8 +828,12 @@
\setbox0=\vbox
{\doutilities{#1}{\jobname}{#1}{}{}}%
\endgroup
- \ifregistergeplaatst\enablemode[\e!register]\else\disablemode[\e!register]\fi}
-
+ \ifregistergeplaatst
+ \enablemode [\systemmodeprefix\v!register]%
+ \else
+ \disablemode[\systemmodeprefix\v!register]%
+ \fi}
+
\def\bepaalregisterkenmerken%
{\dodoubleempty\dobepaalregisterkenmerken}
diff --git a/tex/context/base/core-rul.tex b/tex/context/base/core-rul.tex
index b790ff1dd..c25fa87fb 100644
--- a/tex/context/base/core-rul.tex
+++ b/tex/context/base/core-rul.tex
@@ -177,7 +177,7 @@
{\bgroup
\doifelse{#4}{\v!rond}
{\dimen0=#5\relax % just in case of .x\bodyfontsize
- \ifdim\dimen0=\!!zeropoint
+ \ifzeropt\dimen0
\dofilledlinedbox\width#1\height#2\depth#3\\%
\else
\dofilledroundbox\width#1\height#2\depth#3\radius#5\\%
@@ -314,6 +314,10 @@
\scratchdimen=#5%
\edef\overlaydepth{\the\scratchdimen}%
\edef\overlaycolor{#6}%
+\prependtoks
+ \hsize=\overlaywidth
+ \vsize=\overlayheight
+\to\everyoverlay
%\writestatus
% {overlay}
% {#1\space w=\overlaywidth/h+d=\overlayheight/d=\overlaydepth]}%
@@ -400,7 +404,8 @@
%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.
+%D by \TEX\ itself, the latter one depends on the driver. This
+%D macro also support a negative offset.
\def\dooutlinebox#1\color#2\offset#3\corner#4\radius#5\depth#6\toggle#7\\%
{\vbox % rules on top of box
@@ -408,17 +413,22 @@
\dimen2=\wd#1\advance\dimen2 by 2\dimen0
\dimen4=\ht#1\advance\dimen4 by \dimen0
\dimen6=\dp#1\advance\dimen6 by \dimen0\advance\dimen6 by #6\relax
+ \ifdim\dimen6<\!!zeropoint
+ \advance\dimen4 by \dimen6 \dimen8=-\dimen6 \dimen6=\!!zeropoint
+ \else
+ \dimen8=\!!zeropoint
+ \fi
\setbox\extraframebox=\hbox
{\dostrokedbox\width\dimen2\height\dimen4\depth\dimen6%
\corner#4\radius#5\toggle#7\\}%
\setbox\extraframebox=\hbox
- {\vbox{\moveleft#3\box\extraframebox}}%
+ {\raise\dimen8\vbox{\moveleft#3\box\extraframebox}}%
\wd\extraframebox=\wd#1%
\ht\extraframebox=\ht#1%
\dp\extraframebox=\dp#1%
\hbox
{%\copy#1\hskip-\wd#1%
- \box#1\hskip-\wd\extraframebox % faster
+ \box#1\hskip-\wd\extraframebox % faster
\doifelsenothing{#2} % speeds up a little
{\box\extraframebox}
{\color[#2]{\box\extraframebox}}}}}
@@ -427,7 +437,7 @@
{\bgroup
\doifelse{#4}{\v!rond}
{\dimen0=#5\relax % just in case of .x\bodyfontsize
- \ifdim\dimen0=\!!zeropoint
+ \ifzeropt\dimen0
\dostrokedlinedbox\width#1\height#2\depth#3\toggle#6\\%
\else
\dostrokedroundbox\width#1\height#2\depth#3\radius#5\toggle#6\\%
@@ -567,7 +577,7 @@
\def\localframed%
{\bgroup
\inframedtrue
- \dodoubleargument\startlocalframed}
+ \dodoubleempty\startlocalframed}
%D Before we go into details, we present (and implement) the
%D main framing routine. I saw no real reason for splitting the
@@ -575,11 +585,23 @@
%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.
\def\startlocalframed[#1][#2]%
{\bgroup
- \edef\@@framed{#1}%
- \getparameters[\@@framed][#2]%
+ \edef\@@framed{#1}%
+ \scratchdimen\getvalue{\@@framed\c!kaderoffset}%
+ \setevalue{\@@framed\c!kaderoffset}{\the\scratchdimen}%
+ \scratchdimen\getvalue{\@@framed\c!achtergrondoffset}%
+ \setevalue{\@@framed\c!achtergrondoffset}{\the\scratchdimen}%
+ \ifsecondargument % faster
+ \getparameters[\@@framed][#2]% here !
+ \fi
\edef\localoffset{\getvalue{\@@framed\c!offset}}%
\edef\localwidth{\getvalue{\@@framed\c!breedte}}%
\edef\localheight{\getvalue{\@@framed\c!hoogte}}%
@@ -590,9 +612,9 @@
\doifelsenothing{\localformat}
{\boxhasformatfalse}
{\boxhasformattrue
- \edef\beforeframedbox{\getvalue{\@@framed\c!boven}}%
- \edef\afterframedbox{\getvalue{\@@framed\c!onder}}%
- \dosetraggedcommand{\localformat}}%
+ \dosetraggedcommand{\localformat}%
+ \edef\beforeframedbox{\raggedtopcommand\getvalue{\@@framed\c!boven}}%
+ \edef\afterframedbox {\getvalue{\@@framed\c!onder}\raggedbottomcommand}}%
\doifelse{\localoffset}{\v!geen}
{\boxhasoffsetfalse
\boxhasstrutfalse
@@ -631,7 +653,7 @@
\setlocalhsize
\!!widtha=\localhsize
\fi
- \advance\!!widtha by -2\@@localoffset
+ \advance\!!widtha by -2\@@localoffset
\advance\!!heighta by -2\@@localoffset
\doif{\localstrut}{\v!nee}
{\boxhasstrutfalse}%
@@ -641,12 +663,12 @@
\let\localendstrut=\endstrut
\let\localstrut =\strut
\else
- \let\localbegstrut=\pseudostrut % was: \relax
- \let\localendstrut=\relax
- \let\localstrut =\pseudostrut % was: \relax
+ \let\localbegstrut=\pseudobegstrut % was: \relax
+ \let\localendstrut=\pseudoendstrut % was: \relax
+ \let\localstrut =\pseudostrut % was: \relax
%\ifboxhasheight\ifdim\!!heighta<\ht\strutbox % saveguard
- % \let\localbegstrut=\relax
- % \let\localstrut =\relax
+ % \let\localbegstrut=\relax % but not that
+ % \let\localstrut =\relax % save afterall
%\fi\fi
\fi
\ifboxhasheight
@@ -684,7 +706,8 @@
\fi
\fi
\def\dowithframedbox%
- {\aftergroup\stoplocalframed}%
+ {\let\postprocessframebox\undefined %new
+ \aftergroup\stoplocalframed}%
\edef\framedwidth % a new feature
{\ifdim\!!widtha >\!!zeropoint\the\!!widtha \else\!!zeropoint\fi}%
\edef\framedheight% a new feature
@@ -692,6 +715,7 @@
\afterassignment\dowithframedbox
\setbox\framebox=\next}
+
%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.
@@ -732,6 +756,9 @@
\ifboxisoverlaid \else
\dolocateframebox
\fi
+ \ifx\postprocessframebox\undefined \else
+ \postprocessframebox\framebox
+ \fi
\doifelsevalue{\@@framed\c!kader}{\v!overlay}
{\edef\overlaylinecolor{\getvalue{\@@framed\c!kaderkleur}}%
\edef\overlaylinewidth{\the\linewidth}}%
@@ -852,7 +879,7 @@
\def\mframed%
{\dodoubleempty\domframed[\donetrue]}
-\def\minframed%
+\def\inmframed%
{\dodoubleempty\domframed[\donefalse]}
%D So instead of the rather versatile \type {\framed}, we ue
@@ -860,7 +887,8 @@
%D
%D \startbuffer
%D \startformule
-%D x \times \mframed{y} \times y^{z_z}
+%D x \times \mframed{y} \times y^{z_z}
+%D x \times \inmframed{y} \times y^{z_z}
%D \stopformule
%D \stopbuffer
%D
@@ -911,8 +939,8 @@
%D
%D \haalbuffer
%D
-%D For inline use, we also provide the \type {\minframed}
-%D alternative: we want $x \times \minframed{y}$ in inline
+%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
@@ -1582,7 +1610,7 @@
\def\dostopmarginrule%
{\endofshapebox
\reshapebox
- {\hbox{\inlinkermarge{\dodrawmarginrule}\box\shapebox}}%
+ {\hbox{\inleftmargin{\dodrawmarginrule}\box\shapebox}}%
\flushshapebox
\egroup}
@@ -1710,7 +1738,7 @@
\def\thinrule%
{\strut
\leaders
- \hrule\!!height\@@dlhoogte\!!depth\@@dlhoogte
+ \hrule\!!height.5\linewidth\!!depth.5\linewidth
\hfill
\strut}
@@ -1720,8 +1748,7 @@
\endgraf}
\def\dosetupthinrules[#1]%
- {\getparameters[\??dl][#1]%
- \assignvalue{\@@dlafstand}{\@@dl@@afstand}{1.0}{1.5}{2.0}}
+ {\getparameters[\??dl][#1]}
\def\setupthinrules%
{\dosingleargument\dosetupthinrules}
@@ -1730,10 +1757,14 @@
{\bgroup
\dosetupthinrules[#1]%
\@@dlvoor
- \spacing\@@dl@@afstand
+ \assignvalue{\@@dlinterlinie}{\@@dlinterlinie}{1.0}{1.5}{2.0}%
+ \spacing\@@dlinterlinie
\dorecurse
{\@@dln}
- {\thinrule\ifnum\recurselevel<\@@dln\endgraf\fi}%
+ {\ifnum\recurselevel=\@@dln \dothinrulesnobreak \else
+ \ifnum\recurselevel=2 \dothinrulesnobreak \fi\fi
+ \thinrule
+ \ifnum\recurselevel<\@@dln \endgraf \fi}%
\@@dlna
\egroup}
@@ -1741,6 +1772,17 @@
{\dosingleempty\dothinrules}
%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,
%D defineframedtext, start<<framedtext>>, <<framedtext>>}
%D
@@ -1891,11 +1933,11 @@
\def\dododostartframedtext[#1][#2][#3]%
{\processaction
[#2]
- [ \v!links=>\letvalue{\??kd#1\c!links}=\relax
+ [ \v!links=>\letvalue{\??kd#1\c!links }=\relax
\letvalue{\??kd#1\c!rechts}=\hfill,
- \v!rechts=>\letvalue{\??kd#1\c!links}=\hfill
+ \v!rechts=>\letvalue{\??kd#1\c!links }=\hfill
\letvalue{\??kd#1\c!rechts}=\relax,
- \v!midden=>\letvalue{\??kd#1\c!links}=\hfill
+ \v!midden=>\letvalue{\??kd#1\c!links }=\hfill
\letvalue{\??kd#1\c!rechts}=\hfill]%
\forgetparindent
\setbox\framebox=\vbox
@@ -1906,7 +1948,7 @@
\blanko[\v!blokkeer]%
\let\\=\endgraf
\getvalue{\??kd#1\c!binnen}%
- \dostartattributes\??kd\c!letter\c!kleur{}}
+ \dostartattributes{\??kd#1}\c!letter\c!kleur{}}
\def\dostopframedtext[#1]%
{\endgraf
@@ -1936,7 +1978,7 @@
\blanko[\v!blokkeer]%
\let\\=\endgraf
\getvalue{\??kd#1\c!binnen}%
- \dostartattributes\??kd\c!letter\c!kleur{}%
+ \dostartattributes{\??kd#1}\c!letter\c!kleur{}%
\bgroup
\aftergroup\docloseframedtext
\let\next=}
@@ -2065,7 +2107,7 @@
\@@tltussen
\endgraf}
-\def\dodobottomtextrule#1%
+\def\dodobottomtextrule#1#2%
{\ifhmode
\endgraf
\fi
@@ -2078,7 +2120,7 @@
\advance\dimen0 by .5ex
\vskip\dimen0
\@@tltussen
- \doifelsenothing{#1}
+ \doifelsenothing{#2}
{\bgroup
\advance\hsize by -\rightskip
\advance\hsize by -\leftskip
@@ -2087,18 +2129,16 @@
{\color[\@@tllijnkleur]
{\hrule\!!depth\linewidth\!!height\!!zeropoint\!!width\hsize}}%
\egroup}
- {\docomplextextrule{#1}}%
- \prevdepth\!!zeropoint} % look at this
-
-\def\dobottomtextrule#1%
- {\dodobottomtextrule{#1}%
- \@@tlna
+ {\docomplextextrule{#2}}%
+ \ifvmode\prevdepth\!!zeropoint\fi
+ #1%
\pagina[\v!voorkeur]}
-\def\domiddletextrule#1%
- {\dodobottomtextrule{#1}%
- \@@tltussen
- \pagina[\v!voorkeur]}
+\def\dobottomtextrule%
+ {\dodobottomtextrule\@@tlna}
+
+\def\domiddletextrule%
+ {\dodobottomtextrule\@@tltussen}
\def\dounknowntextrule%
{\iffirstargument
@@ -2153,7 +2193,8 @@
\def\complexfillinrules[#1]%
{\def\docomplexfillinrules##1##2%
- {\dodocomplexfillinrules[#1]{##1}{##2}{\thinrules[n=\@@iln]}}%
+ {\dodocomplexfillinrules[#1]{##1}{##2}{\thinrules
+ [\c!n=\@@iln,\c!interlinie=\@@ilinterlinie,\c!voor=,\c!na=]}}%
\dodoublegroupempty\docomplexfillinrules}
\def\dodocomplexfillinrules[#1]#2#3#4%
@@ -2164,23 +2205,22 @@
\noindent
\doifelse{\@@ilbreedte}{\v!passend}
{\let\@@ilafstand=\!!zeropoint
- \setbox0=\hbox}
+ \hbox}
{\doifelse{\@@ilbreedte}{\v!ruim}
- {\setbox0=\hbox}
- {\setbox0=\hbox to \@@ilbreedte}}
- \bgroup
+ {\hbox}
+ {\hbox to \@@ilbreedte}}
+ \bgroup
\doattributes\??il\c!letter\c!kleur{\strut#2\hfill\@@ilscheider}%
\hskip\@@ilafstand
\egroup
- \hangindent=\wd0\relax
- \parindent=\hangindent
- \box0\relax
+ %\hangindent=\wd0\relax % tzt hang=yes,n
+ %\parindent=\hangindent
+ %\box0\relax
\stelwitruimtein[\v!groot]%
\ignorespaces
#4%
\doifsomething{#3}
- {\doifnot{\@@ilbreedte}{\v!passend}
- {\kern\@@ilafstand}
+ {\kern\@@ilafstand
\doattributes\??il\c!letter\c!kleur{#3\strut}}%
\endgroup
\endgraf
@@ -2197,7 +2237,7 @@
\definecomplexorsimpleempty\fillintext
-\def\complexfillintext[#1]%
+\def\complexfillintext[#1]% rather rough, using an \unhbox is suboptimal
{\def\docomplexfillintext##1##2%
{\dowithnextbox
{\dodocomplexfillinrules[#1]{##1}{\hfill##2}{\unhbox\nextbox\unskip}}%
@@ -2494,10 +2534,8 @@
\c!dikte=\@@kadefaultwidth\linewidth]
\setupthinrules
- [\c!afstand=\v!klein,
+ [\c!interlinie=\v!klein,
\c!n=3,
- \c!hoogte=.5\linewidth,
- \c!diepte=\@@dlhoogte,
\c!voor=,
\c!na=]
@@ -2519,6 +2557,7 @@
\c!voor=\blanko,
\c!na=\blanko,
\c!n=1,
+ \c!interlinie=\v!klein,
\c!scheider=,
\c!letter=\v!normaal,
\c!kleur=]
diff --git a/tex/context/base/core-sec.tex b/tex/context/base/core-sec.tex
new file mode 100644
index 000000000..ea24cf852
--- /dev/null
+++ b/tex/context/base/core-sec.tex
@@ -0,0 +1,1491 @@
+%D \module
+%D [ file=core-sec,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Sectioning,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Core Macros / Sectioning}
+
+\startmessages dutch library: structures
+ title: structuur
+ 1: begin van sectieblok --
+ 2: eind van sectieblok --
+\stopmessages
+
+\startmessages english library: structures
+ title: structure
+ 1: begin of sectionblock --
+ 2: end of sectionblock --
+\stopmessages
+
+\startmessages german library: structures
+ title: struktur
+ 1: Begin des Abschnittsblock --
+ 2: Ende des Abschnittsblock --
+\stopmessages
+
+\startmessages czech library: structures
+ title: struktury
+ 1: zacatek oddilu (sekce) --
+ 2: konec oddilu (sekce) --
+\stopmessages
+
+\unprotect
+
+\def\dodochecknummer#1#2#3%
+ {\bgroup
+ \doifinstringelse{.0}{.#2} % waarom \instring en \@koscheider
+ {\doifnot{#3}{\v!per}
+ {%\debuggerinfo{\m!systems}{number #1 #3 becomes \getnumbervariable{#1\c!wijze}}%
+ \setevalue{\s!number#1\c!wijze}{#3}% geen \xdef, gaat mis met \subpage
+ \dochecknummer{#1}}} % tricky and ugly
+ {\doifnotvalue{\s!number#1\s!check}{#2}
+ {\setcounter{\s!number#1}{0\getvalue{\s!number#1\c!start}}%
+ \setxvalue{\s!number#1\c!wijze\c!lokaal}%
+ {\getvalue{\s!number#1\c!wijze}}%
+ \setxvalue{\s!number#1\s!check}%
+ {#2}}}%
+ \egroup}
+
+\def\dochecknummer#1%
+ {\edef\currentsection{\getvalue{\??by\getvalue{\s!number#1\c!wijze}}}%
+ \doifsomething{\currentsection}
+ {\dodochecknummer
+ {#1}
+ {\getvalue{\currentsection\c!nummer}}
+ {\v!per\previoussection{\currentsection}}}}
+
+\def\checknummer#1%
+ {\bgroup
+ \ifnum\blocklevel>0
+ \doifelsevalue{\s!number#1\c!blokwijze}{\v!nee}
+ {\dochecknummer{#1}}
+ {\setblockcounters % dit kan sneller omdat de waarden
+ \dochecknummer{#1}}% % en het type bekend zijn
+ \else
+ \dochecknummer{#1}%
+ \fi
+ \egroup}
+
+\def\domaakvoorafgaandenummer[#1]%
+ {\bgroup % added
+ \global\let\voorafgaandenummer\empty
+ \ifsectienummer
+ \doifvalue{\??sb\@@sectieblok\c!nummer}{\v!ja} % added
+ {\doifelsevalue{\s!number#1\c!sectienummer}{\v!ja}
+ {\donetrue}{\donefalse}%
+ \doifvalue{\s!number#1\c!sectienummer}{\v!nummer}
+ {\donetrue\let\@@sectionconversion\gobbleoneargument}%
+ \ifdone
+ \edef\currentsection%
+ {\getvalue{\??by\getvalue{\s!number#1\c!wijze\c!lokaal}}}%
+ \doifnot{\currentsection}{\zerosection}
+ {\doifnot{\@@sectionvalue{\currentsection}}{0}
+ {\xdef\voorafgaandenummer%
+ {\getvalue{\currentsection\c!nummer}.}}}%
+ \fi}%
+ \fi
+ \egroup}
+
+\def\maakvoorafgaandenummer[#1]%
+ {\bgroup
+ \ifnum\blocklevel>0
+ \doifelsevalue{\s!number#1\c!blokwijze}{\v!nee}
+ {\domaakvoorafgaandenummer[#1]}%
+ {\setblockcounters % dit kan sneller omdat de waarden
+ \domaakvoorafgaandenummer[#1]}% % en het type bekend zijn
+ \else
+ \domaakvoorafgaandenummer[#1]%
+ \fi
+ \egroup}
+
+\def\maakhetnummer[#1]%
+ {\maakvoorafgaandenummer[#1]%
+ \xdef\hetnummer%
+ {\voorafgaandenummer\nummer[#1]}}%
+
+\def\lossenummer[#1]%
+ {\maakhetnummer[#1]%
+ \hetnummer}
+
+\def\huidigenummer[#1]%
+ {%\getvalue{\getvalue{\s!number#1\c!zetwijze}}%
+ \getvalue{\getvalue{\s!number#1\c!plaats}}%
+ {\dotextprefix{\getvalue{\s!number#1\c!tekst}}\lossenummer[#1]}}
+
+\def\volgendenummer[#1][#2][#3]%
+ {\verhoognummer[#1]%
+ \huidigenummer[#1]%
+ \rawreference{#2}{#3}{\hetnummer}}
+
+% sectioning
+
+\newcount\nofsections
+
+\def\zerosection{\v!tekst}
+\def\firstsection{}
+\def\lastsection{}
+\let\@@sectie\empty
+\let\@@koppeling\empty
+
+\makecounter{\??se\v!tekst}
+
+\setevalue{\??se\v!tekst\c!voor}{}
+\setevalue{\??se\v!tekst\c!na }{}
+
+\setevalue{\v!tekst\c!nummer}{0}
+\setevalue{\v!tekst\s!format}{}
+
+\setevalue{\??sk\v!tekst}{}
+\setevalue{\??sk }{}
+
+\setvalue{\??by }{\v!tekst}
+\setvalue{\??by\v!tekst }{\v!tekst}
+\setvalue{\??by\v!alles }{\v!tekst}
+\setvalue{\??by\v!per }{\v!tekst}
+\setvalue{\??by\v!per\v!tekst }{\v!tekst}
+\setvalue{\??by\v!per\v!alles }{\v!tekst}
+\setvalue{\??by\v!per\v!pagina}{\v!tekst} % see footnotes
+
+%%%%%%%%% old
+
+\def\dostelsectiein[#1][#2]%
+ {\getparameters[\??se#1][#2]%
+ \doifelsevalue{\??se#1\c!vorigenummer}{\v!ja}
+ {\setvalue{#1\c!nummer}{\@@longsectionnumber{#1}}}
+ {\setvalue{#1\c!nummer}{\@@shortsectionnumber{#1}}}}
+
+\def\stelsectiein%
+ {\dodoubleargument\dostelsectiein}
+
+%%%%%%%%% new, multilingual
+
+\def\dostelsectiein[#1][#2][#3]%
+ {\ifthirdargument
+ \getparameters[\??se#1#2][#3]%
+ \else
+ \getparameters[\??se#1][#2]%
+ \fi
+ \doifelsevalue{\??se#1\c!vorigenummer}{\v!ja}
+ {\setvalue{#1\c!nummer}{\@@longsectionnumber{#1}}}
+ {\setvalue{#1\c!nummer}{\@@shortsectionnumber{#1}}}}
+
+\def\stelsectiein%
+ {\dotripleempty\dostelsectiein}
+
+%%%%%%%%%
+
+\def\dokoppelmarkering[#1][#2]%
+ {\doifdefinedelse{\??ko#2\c!sectie}
+ {\dokoppelmarkering[#1][\getvalue{\??ko#2\c!sectie}]}
+ {\def\donexttrackcommando##1%
+ {\edef\gekoppeldemarkeringen{\getvalue{\??se##1\c!markering}}%
+ \doifelse{##1}{#2}
+ {\addtocommalist{#1}\gekoppeldemarkeringen}
+ {\removefromcommalist{#1}\gekoppeldemarkeringen}%
+ \setevalue{\??se##1\c!markering}{\gekoppeldemarkeringen}%
+ \donexttracklevel{##1}}%
+ \donexttracklevel{\zerosection}}} % \firstsection
+
+\def\koppelmarkering%
+ {\dodoubleargument\dokoppelmarkering}
+
+\def\ontkoppelmarkering[#1]%
+ {\koppelmarkering[#1][]}
+
+\def\definieersectie[#1]%
+ {\doifundefined{\??se#1}
+ {\doifelsenothing{\firstsection}
+ {\def\firstsection{#1}%
+ \setevalue{\??se#1\c!voor}{\v!tekst}%
+ \setevalue{\??se\v!tekst\c!na}{#1}}
+ {\setevalue{\??se\commalistelement\c!na}{#1}%
+ \setevalue{\??se#1\c!voor}{\lastsection}%
+ \setevalue{\??se\lastsection\c!na}{#1}}%
+ \advance\nofsections by 1
+ \setevalue{\??se#1\c!niveau}%
+ {\the\nofsections}%
+ \setevalue{\??se#1\c!na}%
+ {}%
+ \setvalue{\e!volgende#1}%
+ {\@@nextsectionnumber{#1}}%
+ \setvalue{#1\c!nummer}%
+ {\@@longsectionnumber{#1}}%
+ \setvalue{#1\s!format}%
+ {\@@longformatnumber{#1}}%
+ \setevalue{\??by#1}{#1}%
+ \setevalue{\??by\v!per#1}{#1}%
+ \makecounter{\??se#1}%
+ \def\lastsection{#1}%
+ \setvalue{\??sk#1}%
+ {#1}%
+ \setvalue{\??se#1\c!markering}%
+ {}%
+ \stelsectiein[#1]
+ [\c!vorigenummer=\v!ja]}}%
+
+\def\previoussection#1%
+ {\getvalue{\??se#1\c!voor}}
+
+\def\nextsection#1%
+ {\getvalue{\??se#1\c!na}}
+
+\def\@@setsectionnumber#1#2%
+ {\setgvalue{\??se#1\s!start}{}% % signal i.p.v. boolean
+ \setcounter{\??se#1}{#2}%
+ \resetsectioncounters[#1]%
+ \checkpagecounter}
+
+\def\@@nextsectionnumber#1%
+ {\setgvalue{\??se#1\s!start}{}% % signal i.p.v. boolean
+ \pluscounter{\??se#1}%
+ \resetsectioncounters[#1]%
+ \checkpagecounter}
+
+\def\@@sectionvalue#1% % nog niet overal doorgevoerd
+ {\countervalue{\??se#1}} % zoeken op \??se
+
+% \def\@@sectionconversion#1%
+% {\getvalue{\??cv\getvalue{\??se#1\@@sectieblok\c!conversie}}}
+
+% 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\@@sectieblok\c!conversie\endcsname\relax
+ \@EA\ifx\csname\??se#1\c!conversie\endcsname\relax
+ #2%
+ \else
+ \getvalue{\??cv\getvalue{\??se#1\c!conversie}}{#2}%
+ \fi
+ \else
+ \getvalue{\??cv\getvalue{\??se#1\@@sectieblok\c!conversie}}{#2}%
+ \fi
+ \fi}
+
+\def\@@sectionlevel#1%
+ {\ifundefined{\??se#1\c!niveau}0\else\getvalue{\??se#1\c!niveau}\fi}
+
+% Omdat een markering kan worden herdefinieerd moeten we
+% eerst testen of er wel een keten||afhankelijkheid is.
+
+\def\resetsectionmarks[#1]%
+ {\doifdefinedelse{\??se#1}
+ {\def\donexttrackcommando##1%
+ {\doifdefined{\??se##1\c!markering} % skip zero level
+ {\def\docommando####1%
+ {\ExpandFirstAfter\resetmarkering[####1]}%
+ \processcommacommand[\getvalue{\??se##1\c!markering}]\docommando}%
+ \donexttracklevel{##1}}%
+ \donexttracklevel{#1}}%
+ {\ExpandFirstAfter\resetmarkering[\hoofdmarkering{#1}]}}
+
+\def\resetsectioncounters[#1]%
+ {\def\donexttrackcommando##1%
+ {\resetcounter{\??se##1}%
+ \donexttracklevel{##1}}%
+ \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%
+ {\@EA\edef\@EA\sectionformat\@EA%
+ {\@@sectiontype:\getvalue{\lastsection\s!format}}}
+
+\def\dobacktracklevel#1%
+ {\doifnot{\previoussection{#1}}{\zerosection}
+ {\dobacktrackcommando{\previoussection{#1}}}}
+
+\def\donexttracklevel#1%
+ {\doifnot{#1}{\lastsection}
+ {\donexttrackcommando{\nextsection{#1}}}}
+
+\newif\ifalllevels
+
+\def\dosetlevel#1% opvoeren met \ifcsname
+ {\bgroup
+ \doifelse{#1}{\v!vorige}
+ {\global\alllevelstrue
+ \global\let\currentlevel\empty
+ \def\dobacktrackcommando##1%
+ {\ifnum\countervalue{\??se##1}>0
+ \global\alllevelsfalse
+ \xdef\currentlevel{\getvalue{\previoussection{##1}\s!format}}%
+ \else
+ \dobacktracklevel{##1}%
+ \fi}%
+ \dobacktrackcommando\lastsection}
+ {\doifelse{\getvalue{\??by#1}}{\v!tekst}
+ {\global\alllevelstrue
+ \global\let\currentlevel\empty}
+ {\doifdefinedelse{\??ko#1\c!sectie} % beter alteratief: ook
+ {\edef\@@sectie{\getvalue{\??ko#1\c!sectie}}} % hoofdstuk\c!format
+ {\edef\@@sectie{#1}}%
+ \doifdefinedelse{\??se\@@sectie}
+ {\global\alllevelsfalse
+ \xdef\currentlevel{\getvalue{\@@sectie\s!format}}}
+ {\global\alllevelstrue
+ \global\let\currentlevel\empty
+ \def\dobacktrackcommando##1%
+ {\@EA\ifx\csname\??se##1\c!start\endcsname\relax
+ \dobacktracklevel{##1}%
+ \else
+ \ifnum\countervalue{\??se##1}>0
+ \global\alllevelsfalse
+ \xdef\currentlevel{\getvalue{##1\s!format}}%
+ \else
+ \dobacktracklevel{##1}%
+ \fi
+ \fi}%
+ \dobacktrackcommando\lastsection}}}%
+ \egroup}
+
+\let\currentlevel\empty
+
+\def\doifnextlevelelse[#1::#2]#3#4%
+ {\ifalllevels
+ #3%
+ \else
+ \doifelse{\@@sectiontype}{#1} % \@EA kunnen denk ik weg
+ {\@EA\doifinstringelse\@EA{\@EA=\currentlevel:}{=:#2:}
+ {\@EA\doifinstringelse\@EA{\@EA=\currentlevel:0}{=:#2:}{#4}{#3}}
+ {#4}}
+ {#4}%
+ \fi}
+
+\def\doifprevlevelelse[#1::#2]#3#4%
+ {\ifalllevels
+ #3%
+ \else
+ \doifelse{\@@sectiontype}{#1}
+ {\@EA\doifinstringelse\@EA{\@EA=\currentlevel:}{=:#2:}
+ {#3}
+ {#4}}
+ {#4}%
+ \fi}
+
+\def\dosettoclevel{\dosetlevel}
+\def\dosetreglevel{\dosetlevel}
+\def\dosetblklevel{\dosetlevel}
+
+\def\doiftoclevelelse{\doifnextlevelelse}
+\def\doifreglevelelse{\doifprevlevelelse}
+\def\doifblklevelelse{\doifprevlevelelse}
+
+\def\@@longformatnumber#1%
+ {\getvalue{\previoussection{#1}\s!format}:\@@shortsectionnumber{#1}}
+
+\def\@@longsectionnumber#1%
+ {\ifnum\countervalue{\??se\previoussection{#1}}>0
+ \getvalue{\previoussection{#1}\c!nummer}\@@koscheider
+ \fi
+ \@@shortsectionnumber{#1}}
+
+\def\@@shortsectionnumber#1%
+ {\@EA\ifx\csname\??se#1\@@sectieblok\c!conversie\endcsname\relax
+ \@@sectionvalue{#1}%
+ \else
+ \@@sectionconversion{#1}{\@@sectionvalue{#1}}%
+ \fi}
+
+% suited for chinese too:
+
+\def\@@shortsectionnumber#1%
+ {\@EA\ifx\csname\??se#1\@@sectieblok\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}
+
+\def\dosetlocalsectieblok#1#2#3%
+ {\def\@@sectiontype{#1}%
+ \def\@@sectieblok{#2}%
+ \def\@@sectieblokken{#3}}
+
+\def\doaroundsectieblok#1%
+ {\doifvaluesomething{\??sb#1\c!pagina}
+ {\ExpandFirstAfter\pagina[\getvalue{\??sb#1\c!pagina}]}%
+ \resetsectioncounters[\zerosection]% was firstsection
+ \resetsectionmarks[\zerosection]}
+
+\def\dostartsectieblok#1#2%
+ {\begingroup
+ \doaroundsectieblok{#1}%
+ \getvalue{\??sb#1}%
+ \expandafter\csname#2true\endcsname % vervangen door mode
+ \enablemode[\systemmodeprefix#1]%
+ \getvalue{\??sb\@@sectieblok\c!voor}% don't move
+ \showmessage{\m!structures}{1}{\@@sectieblokken}}
+
+\def\dostopsectieblok%
+ {\showmessage{\m!structures}{2}{\@@sectieblokken}%
+ \getvalue{\??sb\@@sectieblok\c!na}% don't move
+ \doaroundsectieblok{\@@sectieblok}%
+ \endgroup}
+
+\def\dostelsectieblokin[#1][#2]%
+ {\getparameters[\??sb#1][#2]}
+
+\def\stelsectieblokin%
+ {\dodoubleargument\dostelsectieblokin}
+
+% 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\dodefinieersectieblok[#1][#2][#3]%
+ {\getparameters
+ [\??sb#1]
+ [\c!nummer=\v!ja,
+ \c!pagina=\v!rechts, % anders worden marks te vroeg gereset !
+ %\c!voor=,
+ %\c!na=,
+ #3]%
+ \expandafter\newif\csname if#2\endcsname
+ \doglobal\increment\currentsectionblock
+ \setevalue{\??sb#1}%
+ {\noexpand\dosetlocalsectieblok{\currentsectionblock}{#1}{#2}}%
+ \setvalue{\e!start#2}%
+ {\dostartsectieblok{#1}{#2}}%
+ \setvalue{\e!stop#2}%
+ {\dostopsectieblok}}
+
+\def\definieersectieblok%
+ {\dotripleargument\dodefinieersectieblok}
+
+\def\sectiebloklabel#1#2%
+ {\@EA\ifx\csname\??ko#1\@@sectieblok\c!label\endcsname\relax
+ \labeltexts{#1}{#2}%
+ \else
+ \labeltexts{\getvalue{\??ko#1\@@sectieblok\c!label}}{#2}%
+ \fi}
+
+\dosetlocalsectieblok{2}{\v!hoofdtekst}{\v!hoofdteksten} % hm, dirty
+
+\def\setsectiontype[#1]%
+ {\getvalue{\??sb#1}}
+
+\def\writesection#1#2#3% #3 -> \asciititle
+ {\bgroup
+ \edef\!!stringa{#1}%
+ \@EA\writestatus\@EA
+ {\!!stringa}
+ {\ifsectienummer#2\else(#2)\fi\normalspace\asciititle}%
+ \egroup}
+
+\def\@@koniveau{1} \def\kopniveau{\@@koniveau}
+
+\def\dohandelpaginaafAA#1%
+ {\ifnum\lastpenalty>0
+ \global\paginageblokkeerdtrue
+ \fi}
+
+\def\dohandelpaginaafAB#1%
+ {\flushsidefloats
+ \getvalue{\??ko#1\c!voor}%
+ %\witruimte vervangen door \noindent elders
+ \relax
+ \ifpaginageblokkeerd
+ \global\paginageblokkeerdfalse
+ \else
+ \!!countb=\getvalue{\??se\@@sectie\c!niveau}\relax
+ \ifnum\!!countb>\@@koniveau\relax
+ \!!counta=20000
+ \multiply\!!countb by 500
+ \advance\!!counta by \!!countb
+ \dosomebreak{\penalty\!!counta}%
+ \else
+ \dosomebreak{\allowbreak}%
+ \fi
+ \fi
+ \xdef\@@koniveau{\getvalue{\??se\@@sectie\c!niveau}}}
+
+\def\dohandelpaginaafB#1%
+ {\doifinset{\getvalue{\??ko#1\c!pagina}}{\v!ja,\v!rechts,\v!links}
+ {\def\resetcurrentsectionmarks% toegevoegd, zie \pagina
+ {\resetsectionmarks[\previoussection{\@@sectie}]}%
+ \pagina[\getvalue{\??ko#1\c!pagina}]%
+ \doifinset{\getvalue{\??tk\v!hoofd\v!tekst\c!status}}{\v!normaal,\v!start}
+ {\doifvaluesomething{\??ko#1\c!hoofd}
+ {\stelhoofdin[\c!status=\getvalue{\??ko#1\c!hoofd}]}}%
+ \doifinset{\getvalue{\??tk\v!voet\v!tekst\c!status}}{\v!normaal,\v!start}
+ {\doifvaluesomething{\??ko#1\c!voet} % new
+ {\stelvoetin[\c!status=\getvalue{\??ko#1\c!voet}]}}}}
+
+\def\dohandelpaginaafX#1% zie doordefinieren / boven
+ {\bgroup
+ \!!countb=\@@koniveau
+ \advance\!!countb by #1
+ \multiply\!!countb by 500
+ \!!counta=20000
+ \advance\!!counta by \!!countb
+ \dosomebreak{\penalty\!!counta}%
+ \egroup}
+
+\def\handelpaginaaf#1%
+ {\dohandelpaginaafAA{#1}%
+ \ifnum\countervalue{\??se\previoussection{\@@sectie}}>0
+ \ifnum\countervalue{\??se\@@sectie}>0
+ \dohandelpaginaafB{#1}%
+ \else
+ \doifnotvalue{\??ko#1\c!doorgaan}{\v!ja}
+ {\dohandelpaginaafB{#1}}%
+ \fi
+ \else
+ \dohandelpaginaafB{#1}%
+ \fi
+ \dohandelpaginaafAB{#1}}
+
+\def\handelpaginaafC#1%
+ {\xdef\@@koniveau{\getvalue{\??se\@@sectie\c!niveau}}%
+ \nobreak}
+
+%\def\dolocalkopsetup#1% koppeling met standaard kopcommando / engels
+% {\forgetall
+% \doifvaluesomething{\??ko#1\c!uitlijnen}
+% {\ExpandFirstAfter\steluitlijnenin[\getvalue{\??ko#1\c!uitlijnen}]}%
+% \doifvaluesomething{\??ko#1\c!tolerantie}
+% {\ExpandFirstAfter\steltolerantiein[\getvalue{\??ko#1\c!tolerantie}]}%
+% \def\\{\crlf\strut\ignorespaces}}
+
+\def\dolocalkopsetup#1% koppeling met standaard kopcommando / engels
+ {\forgetall
+ \doifvaluesomething{\??ko#1\c!uitlijnen}
+ {\expanded{\steluitlijnenin[\getvalue{\??ko#1\c!uitlijnen}]}}%
+ \doifvaluesomething{\??ko#1\c!tolerantie}
+ {\expanded{\steltolerantiein[\getvalue{\??ko#1\c!tolerantie}]}}%
+ \def\\{\crlf\strut\ignorespaces}}
+
+\newif\ifplaatskop
+\newif\ifverhoognummer
+\newif\ifkopnummer
+
+\def\setsectieenkoppeling#1%
+ {\edef\@@koppeling{\getvalue{\??ko#1\c!koppeling}}%
+ \edef\@@sectie{\getvalue{\??ko#1\c!sectie}}%
+ \doifnothing{\@@koppeling}
+ {\edef\@@koppeling{#1}}%
+ \doifnothing{\@@sectie}
+ {\edef\@@sectie{\getvalue{\??ko\@@koppeling\c!sectie}}}}
+
+\newif\ifkopprefix
+
+% \handelpaginaaf 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>
+
+\def\dodosomekop#1[#2]#3%
+ {\doifelsevalue{\??ko#1\c!eigennummer}{\v!ja}
+ {\def\next{\doquadruplegroupempty\dododosomekop{#1}{#2}{#3}}}
+ {\def\next{\fourthargumentfalse\dododosomekop{#1}{#2}{#3}{}}}%
+ \next}
+
+\def\finalsectionnumber%
+ {\ifundefined{\@@sectie\c!nummer}\else
+ \ifsomeheadconversion
+ \@@shortsectionnumber{\@@sectie}%
+ \else
+ \getvalue{\@@sectie\c!nummer}%
+ \fi
+ \fi}
+
+\def\dododosomekop#1#2#3#4%
+ {\iffourthargument
+ \def\next%
+ {\dodododosomekop{#1}[#2]{#1}{#3}{#4}}%
+ \else
+ \def\next%
+ {\dodododosomekop{#1}[#2]{#1}{\finalsectionnumber}{#3}}%
+ \fi
+ \next}
+
+\def\findsectionnumber#1#2#3% class file title
+ {\begingroup
+ \setsectieenkoppeling{#1}%
+ \xdef\foundsectionnumber{1}%
+ \def\dolijstelement##1##2##3##4##5##6%
+ {\doif{##1}{#1}
+ {\ConvertConstantAfter\doif{##4}{#3}
+ {\global\utilitydonetrue
+ \scratchcounter=0\getvalue{\??se\@@sectie\c!niveau}%
+ \advance\scratchcounter by 2
+ \def\do####1:####2]%
+ {\advance\scratchcounter by -1
+ \ifcase\scratchcounter
+ \xdef\foundsectionnumber{####1}%
+ \else
+ \do####2]%
+ \fi}%
+ \do##5]}}}%
+ \setbox0=\vbox
+ {\doutilities{#1}{#2}{#1}{}{}}%
+ \endgroup
+ \doifnumberelse{\foundsectionnumber}
+ {\doif{\foundsectionnumber}{0}{\xdef\foundsectionnumber{1}}}
+ {\xdef\foundsectionnumber{1}}% an appendix or so
+ \stelkopnummerin[#1][\foundsectionnumber]%
+ \stelkopnummerin[#1][-1]}
+
+\newif\ifsomeheadconversion
+
+\def\setsomeheadconversion#1#2%
+ {\someheadconversionfalse
+ \doifelsevalue{\??ko#1\c!eigennummer}{\v!ja}
+ {\def\someheadconversion{#2}}
+ {\bepaalkopnummer[#1]%
+ \@EA\ifx\csname\??se\@@sectie\@@sectieblok\c!kopconversie\endcsname\relax
+ \@EA\ifx\csname\??se\@@sectie\c!kopconversie\endcsname\relax
+ \def\someheadconversion{#2}%
+ \else
+ \@EA\ifx\csname\??se\@@sectie\c!kopconversie\endcsname\empty
+ \def\someheadconversion{#2}%
+ \else
+ \someheadconversiontrue
+ \def\someheadconversion%
+ {\fullsectionnumber{#1}{\getvalue{\??se\@@sectie\c!kopconversie}}{#2}}%
+ \fi
+ \fi
+ \else
+ \@EA\ifx\csname\??se\@@sectie\@@sectieblok\c!kopconversie\endcsname\empty
+ \def\someheadconversion{#2}%
+ \else
+ \someheadconversiontrue
+ \def\someheadconversion%
+ {\fullsectionnumber{#1}{\getvalue{\??se\@@sectie\@@sectieblok\c!kopconversie}}{#2}}%
+ \fi
+ \fi}}
+
+\def\writtenfullsectionnumber{\string\fullsectionnumber}
+\def\ignoredfullsectionnumber#1#2#3{#3}
+\let\storedfullsectionnumber\relax
+\unexpanded\def\naturalfullsectionnumber#1#2#3{\sectiebloklabel{#1}{\getvalue{\??cv#2}{#3}}}
+\unexpanded\def\limitedfullsectionnumber#1#2#3{\getvalue{\??cv#2}{#3}}
+
+\def\setfullsectionnumber#1%
+ {\doifelsevalue{#1\c!kopconversie}{\v!ja}
+ {\doifelsevalue{#1\c!koplabel}{\v!ja}
+ {\let\fullsectionnumber\naturalfullsectionnumber}
+ {\let\fullsectionnumber\limitedfullsectionnumber}}
+ {\let\fullsectionnumber\ignoredfullsectionnumber}}
+
+%\let\fullsectionnumber\naturalfullsectionnumber
+\let\fullsectionnumber\limitedfullsectionnumber
+
+% \dodododosomekop IS NON GROUPED, SO WE NEED TO RESTORE !!!!
+%
+% dit kan dus beter \everyaroundhead zijn
+
+\def\dodododosomekop#1[#2]#3#4#5% % pas met \ExpandFirstAfter op bij twee||taligheid
+ {\flushingcolumnfloatsfalse % #3=#1=redundant
+ \someheadconversionfalse
+% \let\fullsectionnumber\naturalfullsectionnumber
+\let\fullsectionnumber\limitedfullsectionnumber
+ \setsectieenkoppeling{#1}%
+ \doifelsevalue{\??ko#1\c!prefix}{}
+ {\kopprefixfalse}
+ {\kopprefixtrue}%
+ \ifkopprefix
+ \doifelsevalue{\??ko#1\c!prefix}{+}
+ {\doifelsenothing{#2}
+ {\def\localkopprefix{+}}
+ {\def\localkopprefix{#2}}} % eigenlijk alleen eerste
+ {\edef\localkoprefix{\getvalue{\??ko#1\c!prefix}}}%
+ \fi
+ \doifelsevalue{\??ko#1\c!plaatskop}{\v!ja}
+ {\plaatskoptrue}
+ {\plaatskopfalse}%
+ \processaction
+ [\getvalue{\??ko#1\c!verhoognummer}]
+ [ \v!ja=>\verhoognummertrue,
+ \v!nee=>\verhoognummerfalse,
+ \s!unknown=>{\ifx\currentproduct\empty
+ \findsectionnumber{#1}\commalistelement{#5}%
+ \fi
+ \verhoognummertrue}]%
+ \edef\numberheaddistance {\getvalue{\??ko#1\c!afstand}}%
+ \edef\numberheadalternative{\getvalue{\??ko#1\c!variant}}%
+ \dostelkopvariantin[\numberheadalternative]%
+ \ifsectienummer
+ \doifelsevalue{\??sb\@@sectieblok\c!nummer}{\v!ja}
+ {\doifelsevalue{\??ko#1\c!nummer}{\v!ja}
+ {\kopnummertrue}{\kopnummerfalse}}
+ {\kopnummerfalse}%
+ \else
+ \kopnummerfalse
+ \fi
+ \convertexpanded{\??ko#1}{#5}\asciititle
+ \ifverhoognummer
+ \ifplaatskop
+ \checknexthead\handelpaginaaf{#1}%
+ \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
+ \ifkopprefix
+ \setupreferencing[\c!prefix=-]%
+ \fi
+ \getvalue{\e!volgende\@@sectie}%
+ \getvalue{\??ko#1\c!tussen}%
+ \ifkopnummer
+\setsomeheadconversion{#1}{#4}%
+\ifsomeheadconversion
+ \let\fullsectionnumber\naturalfullsectionnumber
+ \doplaatskopnummertekst
+ {#1}
+ {\setsectionlistreference{\@@sectie}{#1}%
+ \ExpandFirstAfter\soortpagina[\@@koppeling]%
+% \let\fullsectionnumber\storedfullsectionnumber
+ \let\fullsectionnumber\writtenfullsectionnumber
+ \rawreference{\s!sec}{#2}{{\someheadconversion}{\asciititle}}%
+ \resetsectionmarks[\@@sectie]%
+ \stellijstin[\@@koppeling][\c!expansie=\getvalue{\??ko#1\c!expansie}]%
+ \let\fullsectionnumber\writtenfullsectionnumber
+ \doschrijfnaarlijst{\@@koppeling}{\someheadconversion}{#5}{\v!kop}}%
+ {\someheadconversion}
+ {#5}
+ {\marking[#1]{#5}%
+ \let\fullsectionnumber\storedfullsectionnumber
+ \expanded{\marking[#1\v!nummer]{\someheadconversion}}}%
+ \let\fullsectionnumber\ignoredfullsectionnumber
+ \writesection{#1}{\someheadconversion}{#5}%
+\else
+ \doplaatskopnummertekst
+ {#1}
+ {\setsectionlistreference{\@@sectie}{#1}%
+ \ExpandFirstAfter\soortpagina[\@@koppeling]%
+ \rawreference{\s!sec}{#2}{{#4}{\asciititle}}%
+ \resetsectionmarks[\@@sectie]%
+ \stellijstin[\@@koppeling][\c!expansie=\getvalue{\??ko#1\c!expansie}]%
+ \doschrijfnaarlijst{\@@koppeling}{#4}{#5}{\v!kop}}
+ {\sectiebloklabel{#3}{#4}}
+ {#5}
+ {\marking[#1]{#5}%
+ \doifelsevalue{\??ko#1\c!eigennummer}{\v!ja} % rommelig omdat
+ {\edef\finalsectionnumber{#4}} % #4 al is toegekend
+ {\bepaalkopnummer[#1]}% migreert naar 3e argument
+ \expanded{\marking[#1\v!nummer]{\finalsectionnumber}}}%
+ \writesection{#1}{#4}{#5}%
+ \fi
+ \else
+ \doplaatskoptekst
+ {#1}
+ {\setsectionlistreference{\@@sectie}{#1}%
+ \ExpandFirstAfter\soortpagina[\@@koppeling]%
+ \rawreference{\s!sec}{#2}{{#4}{\asciititle}}%
+ \resetsectionmarks[\@@sectie]%
+ \stellijstin[\@@koppeling][\c!expansie=\getvalue{\??ko#1\c!expansie}]%
+ \doschrijfnaarlijst{\@@koppeling}{}{#5}{\v!kop}}
+ {#5}
+ {\marking[#1]{#5}%
+ \doifelsevalue{\??ko#1\c!eigennummer}{\v!ja}
+ {\edef\finalsectionnumber{#4}}
+ {\bepaalkopnummer[#1]}%
+ \expanded{\marking[#1\v!nummer]{\finalsectionnumber}}}%
+ \writesection{#1}{-}{#5}%
+ \fi
+ \ifkopprefix
+ \ExpandFirstAfter\setupreferencing[\c!prefix=\localkopprefix]%
+ \fi
+ \dosomebreak\nobreak
+ \ifdisplaysectionhead\getvalue{\??ko#1\c!na}\fi
+ \else
+ \checknexthead\dohandelpaginaafB{#1}% toegevoegd ivm subpaginanr / tug sheets
+ \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
+ \ifkopprefix
+ \setupreferencing[\c!prefix=-]%
+ \fi
+ \getvalue{\e!volgende\@@sectie}%
+ \getvalue{\??ko#1\c!tussen}%
+ \setsectionlistreference{\@@sectie}{#1}%
+ \resetsectionmarks[\@@sectie]%
+ \marking[#1]{#5}%
+ \doifelsevalue{\??ko#1\c!eigennummer}{\v!ja}
+ {\edef\finalsectionnumber{#4}}
+ {\bepaalkopnummer[#1]}%
+ \expanded{\marking[#1\v!nummer]{\finalsectionnumber}}%
+ \ExpandFirstAfter\soortpagina[\@@koppeling]%
+ \bgroup
+ \stellijstin[\@@koppeling][\c!expansie=\getvalue{\??ko#1\c!expansie}]%
+ \ifkopnummer
+ \rawreference{\s!sec}{#2}{{#4}{\asciititle}}%
+ \doschrijfnaarlijst{\@@koppeling}{#4}{#5}{\v!kop}%
+ \writesection{#1}{#4}{#5}%
+ \else
+ \rawreference{\s!sec}{#2}{{#4}{\asciititle}}%
+ \doschrijfnaarlijst{\@@koppeling}{}{#5}{\v!kop}%
+ \writesection{#1}{-}{#5}%
+ \fi
+ \egroup
+ \ifkopprefix
+ \ExpandFirstAfter\setupreferencing[\c!prefix=\localkopprefix]%
+ \fi
+ \fi
+ \else
+ \ifplaatskop
+ \checknexthead\handelpaginaaf{#1}%
+ \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
+ \getvalue{\??ko#1\c!tussen}%
+ \doplaatskoptekst
+ {#1}
+ {\rawreference{\s!sec}{#2}{{#4}{\asciititle}}}
+ {#5}
+ {}%
+ \writesection{#1}{-}{#5}%
+ \dosomebreak\nobreak
+ \ifdisplaysectionhead\getvalue{\??ko#1\c!na}\fi
+ \else
+ % do nothing
+ \fi
+ \fi
+ \flushingcolumnfloatstrue
+ \someheadconversionfalse
+% \let\fullsectionnumber\naturalfullsectionnumber
+\let\fullsectionnumber\limitedfullsectionnumber
+ \ifdisplaysectionhead\else\expandafter\GotoPar\fi}
+
+% \prevdepth\dp\strutbox is belangrijk, vergelijk naast elkaar:
+%
+% \onderwerp{test} \input tufte
+% \onderwerp{test} \strut \input tufte
+% \onderwerp{test} \plaatslijst[...]
+
+\def\doplaatskoptekst#1#2#3#4%
+ {\beginheadplacement{#1}%
+ \setbox0=\hbox
+ {\getvalue{\??ko#1\c!commando}
+ {} % no number
+ {\doattributes
+ {\??ko#1}\c!letter\c!kleur
+ {\doattributes
+ {\??ko#1}\c!tekstletter\c!tekstkleur
+ {\dontconvertfont
+ \ifdisplaysectionhead
+ \stelinterliniein
+ \else
+ \stelspatieringin
+ \fi
+ #2%
+ \getvalue{\??ko#1\c!voorcommando}%
+ \getvalue{\??ko#1\c!tekstcommando}%
+ {\ifdisplaysectionhead
+ \setstrut\begstrut#3\endstrut
+ \xdef\localheaddepth{\the\dp\strutbox}%
+ \else
+ #3%
+ \fi}%
+ \getvalue{\??ko#1\c!nacommando}%
+ \ifdisplaysectionhead\endgraf\fi}}}}%
+ \endheadplacement{#1}{#4}}
+
+\def\doplaatskopnummertekst#1#2#3#4#5%
+ {\beginheadplacement{#1}%
+ \setbox0=\hbox
+ {\getvalue{\??ko#1\c!commando}%
+ {\doattributes{\??ko#1}\c!letter\c!kleur
+ {\doattributes{\??ko#1}\c!nummerletter\c!nummerkleur
+ {\getvalue{\??ko#1\c!voorcommando}%
+ \getvalue{\??ko#1\c!nummercommando}%
+ {\ifdisplaysectionhead
+ \setstrut\begstrut#3\endstrut
+ \else
+ #3%
+ \fi}}}}
+ {\doattributes{\??ko#1}\c!letter\c!kleur
+ {\doattributes{\??ko#1}\c!tekstletter\c!tekstkleur
+ {\dontconvertfont
+ \ifdisplaysectionhead
+ \stelinterliniein
+ \else
+ \stelspatieringin
+ \fi
+ #2%
+ \getvalue{\??ko#1\c!tekstcommando}%
+ {\ifdisplaysectionhead
+ \setstrut\begstrut#4\endstrut
+ \xdef\localheaddepth{\the\dp\strutbox}%
+ \else
+ #4%
+ \fi}%
+ \getvalue{\??ko#1\c!nacommando}%
+ \ifdisplaysectionhead\endgraf\fi}}}}%
+ \endheadplacement{#1}{#5}}
+
+\newsignal\headsignal
+\let\headlastlinewidth\!!zeropoint
+\newif\ifcontinuoushead
+
+\def\beginheadplacement#1%
+ {\bgroup
+ \gdef\localheaddepth{\dp\strutbox}%
+ \everypar{}% needed indeed
+ \noindent % ipv \witruimte elders, na \forgetall !
+ \bgroup
+ \forgetall % now we may forget everything
+ %\showcomposition
+ \mindermeldingen
+ \postponefootnotes
+ \iflocation\ifdisplaysectionhead\else\noninterferingmarks\fi\fi
+ \setupinteraction
+ [\c!letter=,
+ \c!kleur=,
+ \c!contrastkleur=]%
+ \strictouterreferencestrue % tzt instelling
+ \def\localkopsetup%
+ {\dolocalkopsetup{#1}}%
+ \startsynchronisatie}
+
+\def\endheadplacement#1#2%
+ {\doifvaluenothing{\??ko#1\c!file}{\locationfalse}%
+ \ifdisplaysectionhead
+ \let\headlastlinewidth\!!zeropoint
+ \snaptogrid\hbox
+ {\iflocation
+ \ifautocrossdocument
+ \naarbox{\box0}[\getvalue{\??ko#1\c!file}::#1]%
+ \else
+ \hbox{\box0}%
+ \fi
+ \else
+ \hbox{\box0}%
+ \fi
+ \doflushfootnotes}% new
+ \endgraf
+ \nointerlineskip
+ \dosomebreak\nobreak
+ #2%
+ \else
+ \strut
+ \doflushfootnotes % new
+ \iflocation
+ \ifautocrossdocument
+ \hhboxindent=\ifcontinuoushead\headlastlinewidth\else\!!zeropoint\fi
+ \unhhbox0\with{\naarbox{\box\hhbox}[\getvalue{\??ko#1\c!file}::#1]}%
+ \advance\lasthhboxwidth by \numberheaddistance
+ \xdef\headlastlinewidth{\the\lasthhboxwidth}%
+ \else
+ \unhbox0
+ \global\let\headlastlinewidth\!!zeropoint
+ \fi
+ \else
+ \unhbox0
+ \global\let\headlastlinewidth\!!zeropoint
+ \fi
+ #2%
+ \dimen0=\numberheaddistance
+ \hskip\dimen0 \!!plus \dimen0 \!!minus .25\dimen0
+ \hskip\headsignal\ignorespaces
+ \fi
+ \ifdisplaysectionhead
+ \ifgridsnapping % important, font related depth, see comment
+ \prevdepth\dp\strutbox
+ \else
+ \prevdepth\localheaddepth
+ \fi
+ \fi
+ \stopsynchronisatie
+ \egroup
+ \egroup
+ \doflushfootnotes % new, still needed?
+ \ifdisplaysectionhead
+ \doifvalue{\??ko#1\c!springvolgendein}{\v!nee}{\noindentation}%
+ \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
+ \handelpaginaafC{#1}%
+ \global\continuousheadtrue
+ \else
+ \penalty\scratchcounter
+ \global\continuousheadfalse
+ #1{#2}%
+ \fi
+ \else
+ \global\continuousheadfalse
+ #1{#2}%
+ \fi}
+
+\def\dostelkopnummerin[#1][#2#3]%
+ {\bgroup
+ \setsectieenkoppeling{#1}%
+ \doifinstringelse{#2}{+-}
+ {\doifelse{#3}{}
+ {\@@nextsectionnumber{\@@sectie}}
+ {\!!counta=#2#3\relax
+ \advance\!!counta by \@@sectionvalue{\@@sectie}%
+ \@@setsectionnumber{\@@sectie}{\!!counta}}}
+ {\@@setsectionnumber{\@@sectie}{#2#3}}%
+ \egroup}
+
+\def\stelkopnummerin%
+ {\dodoubleargument\dostelkopnummerin}
+
+% \def\dokopnummer[#1]%
+% {\bgroup
+% \setsectieenkoppeling{#1}%
+% \doifnot{\finalsectionnumber}{0} % kan effienter
+% {\finalsectionnumber}%
+% \egroup}
+%
+% beter :
+
+\def\huidigekopnummer{0}
+
+\def\bepaalkopnummer[#1]%
+ {\bgroup
+ \setsectieenkoppeling{#1}%
+ \xdef\huidigekopnummer{\@@sectionvalue{\@@sectie}}%
+ \egroup}
+
+%\def\complexkopnummer[#1]%
+% {\bgroup
+% \setsectieenkoppeling{#1}%
+% \xdef\huidigekopnummer{\@@sectionvalue{\@@sectie}}%
+% \doifnot{\huidigekopnummer}{0}
+% {\finalsectionnumber}%
+% \egroup}
+
+\def\complexkopnummer[#1]%
+ {\bgroup
+ \edef\huidigekopnummer{#1}%
+ \doifinsetelse{-}{#1}
+ {\removefromcommalist{-}\huidigekopnummer
+ \setsectieenkoppeling\huidigekopnummer
+ \stelsectiein[\@@sectie][\c!vorigenummer=\v!nee]}%
+ {\setsectieenkoppeling\huidigekopnummer}%
+ \xdef\huidigekopnummer{\@@sectionvalue{\@@sectie}}%
+ \doifnot{\huidigekopnummer}{0}{\finalsectionnumber}%
+ \egroup}
+
+\def\simplekopnummer%
+ {\huidigekopnummer}
+
+\definecomplexorsimple\kopnummer
+
+\def\alinea%
+ {\par}
+
+\def\plaatskopalinea#1#2%
+ {\vbox
+ {\localkopsetup
+ \begstrut\doifsomething{#1}{#1\hskip\numberheaddistance}#2}}
+
+\def\plaatskopnormaal#1#2%
+ {\doifelsenothing{#1}
+ {\vbox
+ {\localkopsetup
+ \noindent
+ #2}}%
+ {\setbox0=\hbox{{#1}\hskip\numberheaddistance}%
+ \vbox
+ {\localkopsetup
+ \hangindent 1\wd0
+ \hangafter 1
+ \noindent
+ \unhbox0 % don't use \strut's here!
+ #2}}}
+
+\def\plaatskopinmarge#1#2%
+ {\vbox
+ {\localkopsetup
+ \begstrut % but use one \strut here!
+ \doifsomething{#1}
+ {\llap{\hbox to 5em{\hfill{#1}\hskip\linkermargeafstand}}}%
+ {#2}}}
+
+\def\plaatskopmidden#1#2%
+ {\vbox
+ {\localkopsetup
+ \veryraggedcenter
+ \let\\\endgraf
+ \let\crlf\endgraf
+ \doifsomething{#1}{\strut#1\par}\begstrut#2}}
+
+\def\plaatskopintekst#1#2%
+ {\bgroup
+ \localkopsetup % no stretch in distance
+ \doifsomething{#1}{{#1}\kern\numberheaddistance}{\begstrut#2}%
+ \egroup}
+
+% default == instellingen
+% koppeling == koppen, breaks, marks, enz.
+% sectie == nummering
+
+\let\@@kolijst=\empty
+
+\def\dodefinieerkop[#1][#2]% % don't preset prefix to much
+ {\presetlabeltext[#1=]%
+ \getparameters
+ [\??ko#1]
+ [\c!nummerletter=\getvalue{\??ko#1\c!letter},
+ \c!tekstletter=\getvalue{\??ko#1\c!letter},
+ \c!nummerkleur=\getvalue{\??ko#1\c!kleur},
+ \c!tekstkleur=\getvalue{\??ko#1\c!kleur}]%
+ \ConvertToConstant\doifinstringelse{=}{#2}
+ {\getparameters
+ [\??ko#1]
+ [\c!sectie=\getvalue{\??ko\getvalue{\??ko#1\c!koppeling}\c!sectie},
+ \c!default=,
+ \c!koppeling=,
+ \c!prefix=,
+ \c!voor=,
+ \c!na=,
+ \c!afstand=,
+ \c!pagina=,
+ \c!hoofd=,
+ \c!voet=,
+ \c!letter=,
+ \c!nummercommando=,
+ \c!tekstcommando=,
+ \c!eigennummer=\v!nee,
+ \c!nummer=\v!ja,
+ \c!kleur=,
+ \c!springvolgendein=\v!nee,
+ \c!doorgaan=\v!ja,
+ \c!plaatskop=\v!ja,
+ \c!verhoognummer=\v!ja,
+ \c!variant=\@@kovariant,
+ \c!commando=\@@plaatskop,
+ \c!uitlijnen=,
+ \c!tolerantie=,
+ \c!file=,
+ \c!expansie=,
+ #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!voor,\c!na,\c!commando,\c!file,\c!pagina,\c!doorgaan,\c!hoofd,\c!voet,
+ \c!nummer,\c!eigennummer,\c!plaatskop,\c!verhoognummer,
+ \c!letter,\c!kleur,\c!afstand,\c!variant,\c!springvolgendein,
+ %\c!nummerletter,\c!tekstletter,
+ %\c!expansie, % njet
+ \c!uitlijnen,\c!tolerantie,\c!nummercommando,\c!tekstcommando]}}%
+ \getparameters[\??ko#1][#2]%
+ \doifsomething{\getvalue{\??ko#1\c!sectie}}
+ {\doifundefined{\??mk#1}
+ {\definieermarkering[#1]%
+ \koppelmarkering[#1][\getvalue{\??ko#1\c!sectie}]%
+ \definieermarkering[#1\v!nummer]%
+ \koppelmarkering[#1\v!nummer][\getvalue{\??ko#1\c!sectie}]}}%
+% \koppelmarkering[#1\v!nummer][\getvalue{\??ko#1\c!sectie}\v!nummer]}}%
+ \doifundefined{\??li#1}{\definieerlijst[#1]}}
+ {\ConvertToConstant\doifelse{#1}{#2}
+ {\doifundefined{\??li#1}{\definieerlijst[#1]}}
+ {\copyparameters
+ [\??ko#1][\??ko#2]
+ [\c!niveau,\c!sectie,\c!koppeling,\c!prefix,
+ \c!voor,\c!na,\c!commando,\c!file,\c!pagina,\c!doorgaan,\c!hoofd,\c!voet,
+ \c!nummer,\c!eigennummer,\c!plaatskop,\c!verhoognummer,
+ \c!letter,\c!kleur,\c!afstand,\c!variant,\c!springvolgendein,
+ %\c!nummerletter,\c!tekstletter,
+ %\c!expansie, % njet
+ \c!uitlijnen,\c!tolerantie,\c!nummercommando,\c!tekstcommando]%
+ \definieermarkering[#1][#2]%
+ \definieermarkering[#1\v!nummer][#2\v!nummer]%
+ \doifundefined{\??li#1}{\definieerlijst[#1][#2]}}}%
+ \addtocommalist{#1}\@@kolijst
+ \setevalue{\??sk#1}%
+ {\getvalue{\??ko#1\c!koppeling}}%
+ \setevalue{\??by#1}%
+ {\getvalue{\??ko#1\c!sectie}}%
+ \setevalue{\??by\v!per#1}%
+ {\getvalue{\??ko#1\c!sectie}}%
+ \setvalue{#1}%
+ {\dodoubleempty\dosomekop[#1]}}
+
+\def\definieerkop%
+ {\dodoubleemptywithset\dodefinieerkop}
+
+\def\dosomekop[#1][#2]%
+ {\dowithpargument{\dodosomekop{#1}[#2]}}
+
+\def\dostelkopin[#1][#2]%
+ {\getparameters[\??ko#1][#2]%
+ % The next check prevents hard to trace problems. I once
+ % set \c!commando to nothing and (quite natural) got the
+ % wrong references etc. The whole bunch should be boxed!
+ \expandafter\convertcommand\csname\??ko#1\c!commando\endcsname\to\ascii
+ \doifnothing{\ascii}
+ {\setvalue{\??ko#1\c!commando}{\@@plaatskop}}}
+
+\def\stelkopin%
+ {\dodoubleargumentwithset\dostelkopin}
+
+\newif\ifsectienummer \sectienummertrue
+\newif\ifdisplaysectionhead \displaysectionheadtrue
+
+\def\@@plaatskop{\plaatskopnormaal}
+
+\def\dostelkopvariantin[#1]%
+ {\displaysectionheadtrue
+ \processaction
+ [#1]
+ [ \v!normaal=>\def\@@plaatskop{\plaatskopnormaal},
+ \v!midden=>\def\@@plaatskop{\plaatskopmidden},
+ \v!marge=>\def\@@plaatskop{\plaatskopinmarge},
+ \v!inmarge=>\def\@@plaatskop{\plaatskopinmarge},
+ \v!tekst=>\def\@@plaatskop{\plaatskopintekst}\displaysectionheadfalse,
+ \v!alinea=>\def\@@plaatskop{\plaatskopalinea},
+ \s!unknown=>\def\@@plaatskop{\plaatskopnormaal}]}
+
+\def\dostelkoppenin[#1]%
+ {\getparameters[\??ko][#1]%
+ \doifelse{\@@kosectienummer}{\v!ja}
+ {\sectienummertrue}
+ {\sectienummerfalse}%
+ \dostelkopvariantin[\@@kovariant]}
+
+\def\stelkoppenin%
+ {\dosingleargument\dostelkoppenin}
+
+\def\systemsuppliedchapter {\getvalue{\v!hoofdstuk}}
+\def\systemsuppliedtitle {\getvalue{\v!titel}}
+
+% a left over
+
+\def\complexbijlage[#1]#2%
+ {\pagina[\v!rechts]
+ \stelnummeringin[\c!status=\v!stop]
+ \systemsuppliedchapter[#1]{#2}
+ \pagina[\v!rechts]
+ \stelnummeringin[\c!status=\v!start]
+ \stelpaginanummerin[\c!nummer=1]}
+
+\setvalue{\v!bijlage}%
+ {\complexorsimpleempty\bijlage}
+
+\stelkoppenin
+ [\c!variant=\v!normaal,
+ \c!sectienummer=\v!ja,
+ \c!scheider=.,
+ \c!commando=]
+
+\definieersectieblok [\v!hoofdtekst] [\v!hoofdteksten] [\c!nummer=\v!ja]
+\definieersectieblok [\v!bijlage] [\v!bijlagen] [\c!nummer=\v!ja]
+\definieersectieblok [\v!inleiding] [\v!inleidingen] [\c!nummer=\v!nee]
+\definieersectieblok [\v!uitleiding] [\v!uitleidingen] [\c!nummer=\v!nee]
+
+\definieersectie[\v!sectionlevel-1] % deel
+\definieersectie[\v!sectionlevel-2] % hoofdstuk
+\definieersectie[\v!sectionlevel-3] % paragraaf
+\definieersectie[\v!sectionlevel-4] % subparagraaf
+\definieersectie[\v!sectionlevel-5] % subsubparagraaf
+\definieersectie[\v!sectionlevel-6] % subsubsubparagraaf
+\definieersectie[\v!sectionlevel-7] % subsubsubsubparagraaf
+
+% \c!eigennummer ook hier?
+
+\definieerkop
+ [\v!deel]
+ [\c!sectie=\v!sectionlevel-1]
+
+\definieerkop
+ [\v!hoofdstuk]
+ [\c!sectie=\v!sectionlevel-2]
+
+\definieerkop
+ [\v!paragraaf]
+ [\c!sectie=\v!sectionlevel-3]
+
+\definieerkop
+ [\v!sub\v!paragraaf]
+ [\c!sectie=\v!sectionlevel-4,
+ \c!default=\v!paragraaf]
+
+\definieerkop
+ [\v!sub\v!sub\v!paragraaf]
+ [\c!sectie=\v!sectionlevel-5,
+ %\c!default=\v!paragraaf]
+ \c!default=\v!sub\v!paragraaf] % nieuw
+
+\definieerkop
+ [\v!sub\v!sub\v!sub\v!paragraaf]
+ [\c!sectie=\v!sectionlevel-6,
+ %\c!default=\v!paragraaf]
+ \c!default=\v!sub\v!sub\v!paragraaf] % nieuw
+
+\definieerkop
+ [\v!sub\v!sub\v!sub\v!sub\v!paragraaf]
+ [\c!sectie=\v!sectionlevel-7,
+ %\c!default=\v!paragraaf]
+ \c!default=\v!sub\v!sub\v!sub\v!paragraaf] % nieuw
+
+\definieerkop
+ [\v!titel]
+ [\c!koppeling=\v!hoofdstuk,
+ \c!default=\v!hoofdstuk,
+ \c!verhoognummer=\v!nee]
+
+\definieerkop
+ [\v!onderwerp]
+ [\c!koppeling=\v!paragraaf,
+ \c!default=\v!paragraaf,
+ \c!verhoognummer=\v!nee]
+
+\definieerkop
+ [\v!sub\v!onderwerp]
+ [\c!koppeling=\v!sub\v!paragraaf,
+ \c!default=\v!sub\v!paragraaf,
+ \c!verhoognummer=\v!nee]
+
+\definieerkop
+ [\v!sub\v!sub\v!onderwerp]
+ [\c!koppeling=\v!sub\v!sub\v!paragraaf,
+ \c!default=\v!sub\v!sub\v!paragraaf,
+ \c!verhoognummer=\v!nee]
+
+\definieerkop
+ [\v!sub\v!sub\v!sub\v!onderwerp]
+ [\c!koppeling=\v!sub\v!sub\v!sub\v!paragraaf,
+ \c!default=\v!sub\v!sub\v!sub\v!paragraaf,
+ \c!verhoognummer=\v!nee]
+
+\definieerkop
+ [\v!sub\v!sub\v!sub\v!sub\v!onderwerp]
+ [\c!koppeling=\v!sub\v!sub\v!sub\v!sub\v!paragraaf,
+ \c!default=\v!sub\v!sub\v!sub\v!sub\v!paragraaf,
+ \c!verhoognummer=\v!nee]
+
+\stelsectiein
+ [\v!sectionlevel-2]
+ [\v!bijlage\c!conversie=\v!Letter,
+ \c!vorigenummer=\v!nee]
+
+\stelkopin
+ [\v!deel]
+ [\c!plaatskop=\v!nee]
+
+\stelkopin
+ [\v!hoofdstuk]
+ [\v!bijlage\c!label=\v!bijlage,
+ \v!hoofdtekst\c!label=\v!hoofdstuk] % bijlageconversie=\Character
+
+\stelkopin
+ [\v!paragraaf]
+ [\v!bijlage\c!label=\v!paragraaf,
+ \v!hoofdtekst\c!label=\v!paragraaf] % bijlageconversie=\Character
+
+\stelkopin
+ [\v!sub\v!paragraaf]
+ [\v!bijlage\c!label=\v!sub\v!paragraaf,
+ \v!hoofdtekst\c!label=\v!sub\v!paragraaf] % bijlageconversie=\Character
+
+\stelkopin
+ [\v!sub\v!sub\v!paragraaf]
+ [\v!bijlage\c!label=\v!sub\v!sub\v!paragraaf,
+ \v!hoofdtekst\c!label=\v!sub\v!sub\v!paragraaf] % bijlageconversie=\Character
+
+\stelkopin
+ [\v!deel,\v!hoofdstuk]
+ [\c!uitlijnen=,
+ \c!doorgaan=\v!nee,
+ \c!springvolgendein=\v!nee,
+ \c!pagina=\v!rechts,
+ \c!hoofd=,
+ \c!letter=\tfc,
+ \c!afstand=.75em,
+ \c!voor={\blanko[2*\v!groot]},
+ \c!na={\blanko[2*\v!groot]}]
+
+\stelkopin
+ [\v!paragraaf]
+ [\c!uitlijnen=,
+ \c!letter=\tfa,
+ \c!afstand=.75em,
+ \c!springvolgendein=\v!nee,
+ \c!voor={\blanko[2*\v!groot]},
+ \c!na=\blanko]
+
+\stelkopin % nieuw
+ [\v!sub\v!paragraaf]
+ [\c!pagina=]
+
+\definieersamengesteldelijst
+ [\v!inhoud]
+ [\v!deel,
+ \v!hoofdstuk,
+ \v!paragraaf,
+ \v!sub\v!paragraaf,
+ \v!sub\v!sub\v!paragraaf,
+ \v!sub\v!sub\v!sub\v!paragraaf,
+ \v!sub\v!sub\v!sub\v!sub\v!paragraaf]
+ [\c!niveau=\v!sub\v!sub\v!sub\v!sub\v!paragraaf,
+ \c!criterium=\v!lokaal]
+
+\stellijstin
+ [\v!deel]
+ [\c!breedte=0em,
+ \c!voor={\blanko\pagina[\v!voorkeur]},
+ \c!na=\blanko,
+ \c!label=\v!ja,
+ \c!scheider=:,
+ \c!afstand=1em]
+
+\stellijstin
+ [\v!hoofdstuk]
+ [\c!breedte=2em,
+ \c!voor={\blanko\pagina[\v!voorkeur]},
+ \c!na=]
+
+\stellijstin
+ [\v!paragraaf]
+ [\c!breedte=3em]
+
+\stellijstin
+ [\v!sub\v!paragraaf]
+ [\c!breedte=4em]
+
+\stellijstin
+ [\v!sub\v!sub\v!paragraaf]
+ [\c!breedte=5em]
+
+\stellijstin
+ [\v!sub\v!sub\v!sub\v!paragraaf]
+ [\c!breedte=6em]
+
+\stellijstin
+ [\v!sub\v!sub\v!sub\v!sub\v!paragraaf]
+ [\c!breedte=7em]
+
+% hm
+
+\stelnummeringin % na instellen hoofdteksten !
+ [\c!variant=\v!enkelzijdig,
+ \c!plaats={\v!hoofd,\v!midden},
+ \c!conversie=\v!cijfers,
+ \c!links=,
+ \c!rechts=,
+ \c!wijze=\v!per\v!deel,
+ \c!tekst=,
+ \v!hoofdstuk\v!nummer=\v!nee, % v
+ \v!deel\v!nummer=\v!ja, % v
+ \c!nummerscheider=--,
+ \c!tekstscheider=\tfskip,
+ \c!status=\v!start,
+ \c!commando=,
+ \c!letter=\v!normaal,
+ \c!kleur=]
+
+\protect \endinput
diff --git a/tex/context/base/core-syn.tex b/tex/context/base/core-syn.tex
new file mode 100644
index 000000000..ad19dc973
--- /dev/null
+++ b/tex/context/base/core-syn.tex
@@ -0,0 +1,395 @@
+%D \module
+%D [ file=core-syn,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Synonyms and Sorts,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Core Macros / Synonyms and Sorts}
+
+\unprotect
+
+% 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
+
+\def\dostelsynoniemenin[#1][#2]%
+ {\getparameters[\??sm#1][#2]}
+
+\def\stelsynoniemenin%
+ {\dodoubleargument\dostelsynoniemenin}
+
+\def\doresetsynonym#1%
+ {\letvalue{#1\s!entry}=\gobblethreearguments}
+
+\def\dohandlesynonymentry#1#2#3#4%
+ {\bgroup
+ \global\utilitydonetrue
+ \syndef
+ {\doattributes{\??sm#1}\c!tekstletter\c!tekstkleur{#3}}
+ \ConvertToConstant\doifelse{#4}{}{\unknown}{#4}\par
+ \egroup}
+
+\def\synonymentry#1%
+ {\executeifdefined{#1\s!entry}\gobblethreearguments}
+
+\def\dosetsynonym#1%
+ {\doifdefinedelse{\??sm#1\c!commando}
+ {\setvalue{#1\s!entry}{\getvalue{\??sm#1\c!commando}}} % 3 argumenten
+ {\setvalue{#1\s!entry}{\dohandlesynonymentry{#1}}}}
+
+\def\doplaatslijstmetsynoniemen#1#2%
+ {\witruimte
+ \begingroup
+ \def\currentsynonym{#1}%
+% \def\synplaats{\getvalue{\??sm#1\c!plaats}}%
+% \def\synbreedte{\getvalue{\??sm#1\c!breedte}}%
+% \def\synmonster{\getvalue{\??sm#1\c!monster}}%
+%
+ \doordefinieren % nog eens een class van maken, net als framed
+ [syndef]
+ [\c!plaats=\getvalue{\??sm#1\c!plaats},
+ \c!breedte=\getvalue{\??sm#1\c!breedte},
+ \c!afstand=\getvalue{\??sm#1\c!afstand},
+ \c!monster=\getvalue{\??sm#1\c!monster},
+ \c!hang=\getvalue{\??sm#1\c!hang},
+ \c!uitlijnen=\getvalue{\??sm#1\c!uitlijnen},
+ \c!voor=\getvalue{\??sm#1\c!voor},
+ \c!tussen=\getvalue{\??sm#1\c!tussen},
+ \c!na=\getvalue{\??sm#1\c!na},
+ \c!springvolgendein=\getvalue{\??sm#1\c!springvolgendein},
+ \c!kopletter=,
+ \c!letter=]%
+%
+ \stelwitruimtein[\v!geen]%
+ \doutilities{#1}{\jobname}{#2}{}{\par}%
+ \endgroup
+ \ifutilitydone\else\geenwitruimte\fi}
+
+\def\dovolledigelijstmetsynoniemen#1#2%
+ {\plaatsvolledig
+ {\systemsuppliedchapter}{#1}{\headtext{#2}}%
+ {\doplaatslijstmetsynoniemen{#1}{#2}}}
+
+\def\processsynonym#1#2#3%
+ {\begingroup % anders in mathmode lege \hbox, zie eenheden
+ \ifsynonymmeaning
+ \doattributes{\??sm#1}\c!synoniemletter\c!synoniemkleur
+ {\synonymmeaningfalse#3}%
+ \else
+ \explicithmode
+ \doattributes{\??sm#1}\c!tekstletter\c!tekstkleur{#2}%
+ \fi
+ \endgroup}
+
+%\def\getsynonymmeaning#1#2#3%
+% {\doifdefinedelse{#2#3}
+% {{\synonymmeaningtrue\getvalue{#2#3}}}
+% {{\showmessage{\m!systems}{18}{#1,#3}}}
+
+\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
+ \convertexpanded{\??sm#1}{#3}\asciisynonym
+ \convertexpanded{\??sm#1}{#4}\asciimeaning
+ \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {\asciimeaning}}%
+ \endgroup}
+
+\def\preexecutesynonym#1#2#3#4%
+ {\ifdoinpututilities \else
+ \dowritesynonym{#1}{#2}{#3}{#4}%
+ \unexpanded\setgvalue{#2}{\processsynonym{#1}{#3}{#4}}%
+ \fi}
+
+\def\executesynonym#1#2#3#4%
+ {\preexecutesynonym{#1}{#2}{#3}{#4}%
+ \processsynonym{#1}{#3}{#4}}
+
+\def\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\dolaadsynoniemen#1#2%
+ {\bgroup
+ \let\dosetsynonym=\doloadsynonym
+ \showmessage{\m!systems}{19}{#2}%
+ \doutilities{#1}{\jobname}{}{}{}%
+ \egroup
+ \setvalue{\s!check#1}##1{}}
+
+\def\dodocomplexsynonym[#1][#2]#3#4%
+ {\doifsomething{#2}
+ {\getvalue{\s!check#1}{#2}%
+ \doifelsevalue{\??sm#1\c!conversie}{\v!ja}
+ {\unexpanded\setgvalue{#2}{\expandsynonym{#1}{#2}{#3}{#4}}}
+ {\doifelsevalue{\??sm#1\c!status}{\v!start}
+ {\doifelsevalue{\??sm#1\c!criterium}{\v!alles}
+ {\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\dodefinieersynoniemen[#1][#2][#3][#4]%
+ {\stelsynoniemenin
+ [#1]
+ [\c!synoniemletter=,
+ \c!tekstletter=,
+ \c!status=\v!start,
+ \c!criterium=,
+ \c!plaats=\v!links,
+ \c!breedte=5em,
+ \c!afstand=0pt,
+ \c!monster=,
+ \c!hang=,
+ \c!uitlijnen=,
+ \c!voor=,
+ \c!tussen=,
+ \c!na=,
+ \c!springvolgendein=\v!nee]%
+ \presetheadtext
+ [#2=\Word{#2}]%
+ \setvalue{\e!stel#2\e!in}%
+ {\dodoubleargument\getparameters[\??sm#1]}%
+ \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
+ \setvalue{\s!set#1}%
+ {\dosetsynonym{#1}}%
+ \setvalue{\s!reset#1}%
+ {\doresetsynonym{#1}}%
+ \setvalue{\s!check#1}##1%
+ {\checkdefined{synoniemen}{#1}{##1}}%
+ \addutilityreset{#1}%
+ \setvalue{\e!laad#2}%
+ {\dolaadsynoniemen{#1}{#2}}%
+ \setvalue{\e!plaats\e!lijstmet#2}%
+ {\doplaatslijstmetsynoniemen{#1}{#2}}%
+ \setvalue{\e!volledige\e!lijstmet#2}%
+ {\dovolledigelijstmetsynoniemen{#1}{#2}}}
+
+\def\definieersynoniemen%
+ {\doquadrupleempty\dodefinieersynoniemen}
+
+% 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\dostelsorterenin[#1][#2]%
+ {\getparameters[\??so#1][#2]}
+
+\def\stelsorterenin%
+ {\dodoubleargument\dostelsorterenin}
+
+\def\doresetsorteren#1%
+ {\letvalue{#1\s!entry}=\gobblethreearguments}
+
+\def\dosetsorteren#1%
+ {\setvalue{#1\s!entry}##1##2##3%
+ {\def\dowritesort####1####2####3{}%
+ \global\utilitydonetrue
+ \bgroup
+ \doifdefinedelse{\??so#1\c!commando}
+ {\getvalue{\??so#1\c!commando}{##2}} % 1 argument
+ {\getvalue{\??so#1\c!voor}%
+ \doattributes{\??so#1}\c!letter\c!kleur{##2}%
+ \getvalue{\??so#1\c!na}}%
+ \egroup}}
+
+\def\doplaatslijstmetsorteren#1% NOG EEN RUWE VERSIE MAKEN
+ {\witruimte % ZONDER WITRUIMTE ETC ETC
+ \begingroup
+ \stelwitruimtein[\v!geen]%
+ \doutilities{#1}{\jobname}{#1}{}{\par}%
+ \endgroup
+ \ifutilitydone\else\geenwitruimte\fi}
+
+\def\dovolledigelijstmetsorteren#1#2%
+ {\plaatsvolledig
+ {\systemsuppliedchapter}{#1}{\headtext{#2}}
+ {\doplaatslijstmetsorteren{#1}}}
+
+\def\processsort#1#2#3%
+ {\explicithmode
+ \bgroup
+ \doattributes{\??so#1}\c!letter\c!kleur{#2}%
+ \egroup}
+
+\def\dowritesort#1#2#3%
+ {\bgroup
+ \convertexpanded{\??so#1}{#3}\asciisynonym
+ \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {}}%
+ \egroup}
+
+\def\synonymentry#1%
+ {\executeifdefined{#1\s!entry}\gobblethreearguments}
+
+\def\preexecutesort#1#2#3%
+ {\ifdoinpututilities \else
+ \dowritesort{#1}{#2}{#3}%
+ \unexpanded\setgvalue{#2}{\processsort{#1}{#3}{#2}}%
+ \fi}
+
+% \def\executesort#1#2#3%
+% {\preexecutesort{#1}{#2}{#3}%
+% \processsort{#1}{#3}{#2}}
+%
+% Better because it catches nested logo's:
+
+\def\executesort#1#2#3%
+ {\bgroup
+ \def\executesort##1##2##3{##3}% Trick needed for nested logo's.
+ \preexecutesort{#1}{#2}{#3}%
+ \processsort{#1}{#3}{#2}%
+ \egroup}
+
+\def\doloadsort#1%
+ {\setvalue{#1\s!entry}##1##2##3%
+ {\setgvalue{##1}{##2}%
+ \global\utilitydonetrue}}
+
+\def\dolaadsorteren#1#2%
+ {\bgroup
+ \let\dosetsorteren=\doloadsort
+ \showmessage{\m!systems}{20}{#2}%
+ \doutilities{#1}{\jobname}{}{}{}%
+ \egroup
+ \setvalue{\s!check#1}##1{}}
+
+\def\dodocomplexsort[#1][#2]#3%
+ {\doifsomething{#2}
+ {\getvalue{\s!check#1}{#2}%
+ \doifelsevalue{\??so#1\c!status}{\v!start}
+ {\doifelsevalue{\??so#1\c!criterium}{\v!alles}
+ {\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}
+
+\def\dodefinieersorteren[#1][#2][#3]%
+ {\getparameters[\??so#1]
+ [%\c!commando=, % we test for defined !
+ \c!status=\v!start,
+ \c!criterium=,
+ \c!letter=,
+ \c!voor=,
+ \c!na=\endgraf]%
+ \presetheadtext[#2=\Word{#2}]%
+ \setvalue{\e!stel#2\e!in}[##1]% vervalt tzt
+ {\getparameters[\??so#1][##1]}%
+ \ifthirdargument
+ \def#3##1%
+ {\getvalue{\??so:#1:##1}}
+ \setvalue{#1}%
+ {\dotripleempty\docomplexsort[\??so:#1:][#1]}%
+ \else
+ \setvalue{#1}%
+ {\dotripleempty\docomplexsort[][#1]}%
+ \fi
+ \setvalue{\s!set#1}%
+ {\dosetsorteren{#1}}%
+ \setvalue{\s!reset#1}%
+ {\doresetsorteren{#1}}%
+ \addutilityreset{#1}%
+ \setvalue{\e!laad#2}%
+ {\dolaadsorteren{#1}{#2}}%
+ \setvalue{\s!check#1}##1%
+ {\checkdefined{sorteren}{#1}{##1}}%
+ \setvalue{\e!plaats\e!lijstmet#2}%
+ {\doplaatslijstmetsorteren{#1}}%
+ \setvalue{\e!volledige\e!lijstmet#2}%
+ {\dovolledigelijstmetsorteren{#1}{#2}}}
+
+\def\definieersorteren%
+ {\dotripleempty\dodefinieersorteren}
+
+\definieersynoniemen
+ [\v!afkorting]
+ [\v!afkortingen]
+ [\voluit]
+
+\stelsynoniemenin
+ [\v!afkorting]
+ [\c!tekstletter=\v!kapitaal,
+ \c!synoniemletter=,
+ \c!tekstkleur=,
+ \c!synoniemkleur=,
+ \c!plaats=\v!links,
+ \c!breedte=5em,
+ \c!status=\v!start]
+
+\definieersorteren
+ [\v!logo]
+ [\v!logos]
+
+\definieersynoniemen
+ [\v!eenheid]
+ [\v!eenheden]
+ [\betekenis]
+
+\stelsynoniemenin
+ [\v!eenheid]
+ [\c!tekstletter=\dimension]
+
+\protect \endinput
diff --git a/tex/context/base/core-tab.tex b/tex/context/base/core-tab.tex
index a8370143d..b216cf448 100644
--- a/tex/context/base/core-tab.tex
+++ b/tex/context/base/core-tab.tex
@@ -90,15 +90,13 @@
\newif\ifsplittables
%D \macros
-%D {iftracetables}
+%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
-
-\let\tracetables \tracetablestrue
+\newif\iftracetables
%D We show this feature in an eample that also shows some of
%D the basic table typesetting commands.
@@ -367,8 +365,10 @@
\newif\ifForgetTableBarAndQuote \ForgetTableBarAndQuotetrue
\bgroup
+
\catcode`\|=\@@active
\catcode`\"=\@@active
+
\gdef\pushouterbarandquote%
{\ifForgetTableBarAndQuote
\ifnum\catcode`\|=\@@active \else
@@ -382,6 +382,7 @@
\fi
\let\outertablequote="%
\fi}
+
\gdef\popouterbarandquote%
{\ifForgetTableBarAndQuote
\let|=\outertablebar
@@ -389,11 +390,13 @@
\else
\redefinetablebarandquote
\fi}
+
\gdef\ObeyTableBarAndQuote%
{\ForgetTableBarAndQuotefalse
\ifintable
\redefinetablebarandquote
\fi}
+
\egroup
%D \macros
@@ -475,11 +478,11 @@
\def\BeginTableParBox#1%
{\setbox\scratchbox=\vtop\bgroup % \setbox added
- \hsize=#1
+ \hsize=#1\relax
\normalbaselines
\let~=\!ttTie
\let\-=\!ttDH
- \blanko[\v!blokkeer] % added
+ \blanko[\v!blokkeer]% % added
\the\EveryTableParBox}
\def\EndTableParBox%
@@ -764,7 +767,7 @@
####%
\noexpand\hfil
\noexpand\stopglobalTABLEcolor % added
- \the\!taRuleColumnTemplate}
+ \the\!taRuleColumnTemplate}%
\!tfAdjoinPriorColumn}
\def\!ttShortHruleA%
@@ -859,8 +862,8 @@
\def\stoptabel%
{\TABLEtail
- \global\let\TABLEhead\empty
- \global\let\TABLEtail\empty
+ \global\let\@@TABLEhead\empty
+ \global\let\@@TABLEtail\empty
\finishTABLE
\ifinsidefloat\else
\stopbaselinecorrection % \outer..
@@ -909,12 +912,14 @@
% \catcode`\|=\@@other
% \dodoubleargument\dodefinetabletemplate}
+\def\douseTABLEtemplate#1#2#3%
+ {\gdef\TABLEhead{\getvalue{@@TABLEhead#2}}%
+ \gdef\TABLEtail{\getvalue{@@TABLEtail#3}}%
+ \complexsecondstagestartTABLE[#1]}
+
\def\dodefinetabletemplate[#1][#2][#3][#4]%
{\ifsecondargument
- \setgvalue{\c!Table#1}%
- {\gdef\TABLEhead{\getvalue{@@TABLEhead#3}}%
- \gdef\TABLEtail{\getvalue{@@TABLEtail#4}}%
- \complexsecondstagestartTABLE[#2]}%
+ \setgvalue{\c!Table#1}{\douseTABLEtemplate{#2}{#3}{#4}}%
\fi
\egroup}
@@ -1125,22 +1130,6 @@
%D the fact that the stopcondition is interface language
%D dependant.
-%\let\TABLEhead=\empty
-%\let\TABLEtail=\empty
-%
-%\letvalue{\e!start \e!tabelkop}=\undefined
-%\letvalue{\e!stop \e!tabelkop}=\undefined
-%\letvalue{\e!start\e!tabelstaart}=\undefined
-%\letvalue{\e!stop \e!tabelstaart}=\undefined
-%
-%\expanded
-% {\def\csname\e!start\e!tabelkop\endcsname##1\csname\e!stop\e!tabelkop\endcsname%
-% {\noexpand\def\noexpand\TABLEhead{##1}}}
-%
-%\expanded
-% {\def\csname\e!start\e!tabelstaart\endcsname##1\csname\e!stop\e!tabelstaart\endcsname%
-% {\noexpand\def\noexpand\TABLEtail{##1}}}
-
\let\@@TABLEhead\empty \def\TABLEhead{\@@TABLEhead}
\let\@@TABLEtail\empty \def\TABLEtail{\@@TABLEtail}
@@ -1157,12 +1146,6 @@
{\def\csname\e!start\e!tabelstaart\endcsname##1\csname\e!stop\e!tabelstaart\endcsname%
{\noexpand\setTABLEtail##1\noexpand\end}}
-% \def\setTABLEhead{\dosingleempty\dosetTABLEhead}
-% \def\setTABLEtail{\dosingleempty\dosetTABLEtail}
-
-% \def\dosetTABLEhead[#1]#2\end{\setvalue{@@TABLEhead#1}{#2}}
-% \def\dosetTABLEtail[#1]#2\end{\setvalue{@@TABLEtail#1}{#2}}
-
%D The second argument is a dummy one, by scanning for it, we
%D get rid of interfering spaces.
@@ -1369,7 +1352,8 @@
\chardef\TABLErowzero=0
\def\checkTABLErow#1% pure for message purposes
- {\ifTABLEgraydone
+ {\unskip % added
+ \ifTABLEgraydone
\convertargument #1\to\asciiA
\convertcommand\TABLEendBCL\to\asciiB
\ifx\asciiA\asciiB \else
@@ -1729,7 +1713,10 @@
{\ifnum\currentTABLEcolumn>\maxTABLEcolumn
\chuckTABLEautorow
\else\ifnum\currentTABLEcolumn=0
- \chuckTABLEautorow
+ %\chuckTABLEautorow
+ \TABLEnoalign
+ {\global\let\checkTABLEautorow=\empty
+ \global\let\chuckTABLEautorow=\empty}%
\else
\setTABLEerror\TABLEmissingcolumn
\handleTABLEerror
@@ -2278,12 +2265,13 @@
\fi}
\def\defineTABLEshorthands%
- {\def\TWO {\use{2}}%
- \def\THREE{\use{3}}%
- \def\FOUR {\use{4}}%
- \def\FIVE {\use{5}}%
- \def\SIX {\use{6}}%
- \def\REF {\ReFormat}}
+ {\def\SPAN##1{\use{##1}}%
+ \def\TWO {\use{2}}%
+ \def\THREE {\use{3}}%
+ \def\FOUR {\use{4}}%
+ \def\FIVE {\use{5}}%
+ \def\SIX {\use{6}}%
+ \def\REF {\ReFormat}}
\def\defineTABLEunits%
{\processaction
diff --git a/tex/context/base/core-tbl.tex b/tex/context/base/core-tbl.tex
index a1ec0887b..db534fca7 100644
--- a/tex/context/base/core-tbl.tex
+++ b/tex/context/base/core-tbl.tex
@@ -49,9 +49,11 @@
% j i<n> skip right of column
% k i<n> skip around column
-% Still to be done
+% g g{char} align at char
+% . align at .
+% , align at ,
-% nesting, push en pop gebruiken
+% Still to be done
% N math numbers (best hook into existing digits mechanism)
% n numbers (best hook into existing digits mechanism)
@@ -60,6 +62,8 @@
% ~ \hskip.5em
% | check
+% nesting
+
% 10 evt auto stack; dan wel andere signal dan void nodig
% present but not yet 100% ok
@@ -80,41 +84,82 @@
% tricky: align scans ahead, over # and expands ones before
% while doing
-\newtoks\tabulatepreamble
-\newtoks\tabulatebefore
-\newtoks\tabulateafter
-\newtoks\tabulatebmath
-\newtoks\tabulateemath
-\newtoks\tabulatefont
-\newtoks\tabulatesettings
-
-\newtoks\tabulatedummy
-
-\newcounter\nofautotabulate
-\newif \ifautotabulate
-\newbox \tabulatebox
-\newcounter\tabulatecolumns
-\newif \ifsplittabulate \splittabulatetrue
-\newdimen \tabulatepwidth
-\newdimen \tabulatewidth
-\newdimen \tabulateunit
-\newif \iftabulateequal
+% 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
+
+\newtoks \tabulatepreamble
+\newtoks \tabulatebefore
+\newtoks \tabulateafter
+\newtoks \tabulatebmath
+\newtoks \tabulateemath
+\newtoks \tabulatefont
+\newtoks \tabulatesettings
+\newtoks \tabulatedummy
+
+\newcounter \nofautotabulate
+\newcounter \tabulatecolumns
+\newcounter \tabulateminplines
+\newcounter \tabulatemaxplines
+
+\newif \ifautotabulate
+\newif \ifsplittabulate \splittabulatetrue
+\newif \ifhandletabulatepbreak \handletabulatepbreaktrue
+\newif \iftabulateequal
+\newif \iftracetabulate
+
+\newdimen \tabulatepwidth
+\newdimen \tabulatewidth
+\newdimen \tabulateunit
+\newdimen \tabulatemaxpheight
+
+\newbox \tabulatebox
+
+\let\handletabulatecharalign\empty
\def\noftabcolumns{16} % quick and dirty stack
-\def\@@tabbox@@ {@@tabbox@}
-\def\@@tabhook@@{@@tabhook@}
+\def\@@tabbox@@ {@@tabbox@}
+\def\@@tabhook@@ {@@tabhook@}
+\def\@@tabalign@@{@@tabalign@}
\dorecurse\noftabcolumns
{\@EA\newbox\csname\@@tabbox@@\recurselevel\endcsname}
+\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<2
- \let\tabulatehook\relax
+ %\global\let\tabulatehook\relax
+ \global\let\tabulatehook\notabulatehook
\fi}
\def\dodosettabulatepreamble#1#2%
- {\ifdim\tabulatewidth=\!!zeropoint\relax
+ {\ifzeropt\tabulatewidth
\ifcase\tabulatemodus\relax
\let\preamblebox\empty
\else
@@ -126,34 +171,52 @@
\else
\edef\preamblebox{\hsize\the\tabulatewidth}%
\fi
- \fi
- % 0 = NC column next EQ equal column
- % 1 = RC column raw RQ equal column raw
- % 2 = HC column hook HQ equal column hook
- \@EA\appendtoks \@EA&\@EA\hskip\pretabskip##&\to\!!toksa
+ \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
+ \@EA\appendtoks \@EA&\@EA\hskip\pretabskip##&\to\!!toksa
\@EA\appendtoks\@EA\xdef\@EA\tabulatecolumn\@EA{\tabulatecolumns}\to\!!toksa
- \@EA\appendtoks \preamblebox\to\!!toksa
- \appendtoks \bgroup\bbskip\bgroup#1\to\!!toksa
- \appendtoks \checktabulatehook\to\!!toksa
- \appendtoks\ifnum\tabulatetype=1 \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
- \appendtoks \unskip\unskip\endgraf\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\hskip\postabskip##\to\!!toksa
+ \@EA\appendtoks \preamblebox\to\!!toksa
+ \appendtoks \bgroup\bbskip\bgroup#1\to\!!toksa
+ \appendtoks \checktabulatehook\to\!!toksa
+ \appendtoks\ifnum\tabulatetype=1 \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}
+ % {\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\hskip\postabskip##\to\!!toksa
\appendtoks\NC\to\tabulatedummy
\let\bbskip\empty
\def\pretabskip{.5\tabulateunit}%
- \def\postabskip{.5\tabulateunit}%
+ \let\postabskip\pretabskip
\let\gettabulateexit\dogettabulateexit
\tabulatewidth\!!zeropoint}
@@ -162,57 +225,35 @@
\let\nextnext\relax
\else
\let\nextnext\settabulatepreamble
- \ifx x\next
- \chardef\tabulatealign=0
- \else\ifx l\next
- \chardef\tabulatealign=1
- \else\ifx r\next
- \chardef\tabulatealign=2
- \else\ifx c\next
- \chardef\tabulatealign=3
- \else\ifx p\next
- \let\nextnext\gettabulateparagraph
- \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
- \else\ifx e\next
- \appendtoks\global\tabulateequaltrue\to\tabulatesettings
- \else\ifx ~\next
- \appendtoks\fixedspaces\to\tabulatesettings
- \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
+ \ifx x\next \chardef\tabulatealign=0
+ \else\ifx l\next \chardef\tabulatealign=1
+ \else\ifx r\next \chardef\tabulatealign=2
+ \else\ifx c\next \chardef\tabulatealign=3
+ \else\ifx p\next \let\nextnext\gettabulateparagraph
+ \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
+ \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
\nextnext}
@@ -224,25 +265,25 @@
\def\gettabulatepreskip#1%
{\doifnumberelse{#1}
- {\dimen0=#1\tabulateunit\let\next\empty}
- {\dimen0=.5\tabulateunit\def\next{#1}}%
- \edef\pretabskip{\the\dimen0}%
- \@EA\settabulatepreamble\next}
+ {\scratchdimen=#1\tabulateunit\let\next\empty}
+ {\scratchdimen=.5\tabulateunit\def\next{#1}}%
+ \edef\pretabskip{\the\scratchdimen}%
+ \@EA\settabulatepreamble\next}
\def\gettabulateposskip#1%
{\doifnumberelse{#1}
- {\dimen0=#1\tabulateunit\let\next\empty}
- {\dimen0=.5\tabulateunit\def\next{#1}}%
- \edef\postabskip{\the\dimen0}%
+ {\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}
- {\dimen0=#1\tabulateunit\let\next\empty}
- {\dimen0=.5\tabulateunit\def\next{#1}}%
- \edef\pretabskip{\the\dimen0}%
- \edef\postabskip{\the\dimen0}%
+ {\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}
@@ -250,6 +291,10 @@
{\setvalue{\@@tabhook@@\tabulatecolumns}{#1}%
\settabulatepreamble}
+\def\gettabulatealign#1%
+ {\setvalue{\@@tabalign@@\tabulatecolumns}{#1}%
+ \settabulatepreamble}
+
\def\gettabulatebefore#1%
{\tabulatebefore{#1}%
\settabulatepreamble}
@@ -306,12 +351,12 @@
{\chardef\tabulatealign=\@@tabulatealign
\chardef\tabulatemodus=0
\chardef\tabulatedimen=0
- \tabulatebefore{}%
- \tabulateafter{}%
- \tabulatebmath{}%
- \tabulateemath{}%
- \tabulatefont{}%
- \tabulatesettings{}%
+ \tabulatebefore \emptytoks
+ \tabulateafter \emptytoks
+ \tabulatebmath \emptytoks
+ \tabulateemath \emptytoks
+ \tabulatefont \emptytoks
+ \tabulatesettings\emptytoks
\doglobal\increment\tabulatecolumns
\settabulatepreamble#1\relax\relax % permits i without n
\ifcase\tabulatemodus\relax
@@ -342,10 +387,11 @@
\fi}
\def\splitofftabulatebox%
- {\mindermeldingen
+ {\dontcomplain
\@EA\global\@EA\setbox\@EA\tabulatebox\@EA
\vsplit\csname\@@tabbox@@\tabulatecolumn\endcsname to \lineheight
- \setbox\tabulatebox=\vbox{\unvbox\tabulatebox}%
+ \setbox\tabulatebox=\vbox
+ {\unvbox\tabulatebox}%
\setbox\tabulatebox=\hbox to \wd\tabulatebox
{\hss\dotabulatehook{\box\tabulatebox}\hss}%
\ht\tabulatebox=\ht\strutbox
@@ -355,6 +401,59 @@
\def\dotabulatehook%
{\getvalue{\@@tabhook@@\tabulatecolumn}}
+\def\dotabulatealign%
+ {\getvalue{\@@tabalign@@\tabulatecolumn}}
+
+\def\resettabulatepheight%
+ {\xdef\tabulateminplines{1}%
+ \getnoflines\tabulatemaxpheight
+ \xdef\tabulatemaxplines{\the\noflines}%
+ \global\tabulatemaxpheight=\!!zeropoint}
+
+\def\settabulatepheight%
+ {\scratchdimen=\ht\csname\@@tabbox@@\tabulatecolumn\endcsname\relax
+ \ifdim\scratchdimen>\tabulatemaxpheight
+ \global\tabulatemaxpheight=\scratchdimen
+ \fi}
+
+\def\handletabulatepbreak%
+ {\TABLEnoalign
+ {\ifhandletabulatepbreak \ifnum\tabulatemaxplines>1
+ \ifnum\tabulateminplines=1
+ \dotabulatenobreak
+ \fi
+ \doglobal\increment\tabulateminplines
+ \ifnum\tabulateminplines=\tabulatemaxplines\relax
+ \dotabulatenobreak
+ \fi
+ \fi \fi}}
+
+%D \startbuffer
+%D \starttabulatie[|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\haalbuffer}
+%D
+%D \startbuffer
+%D \starttabulatie[|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 \stoptabulatie
+%D \stopbuffer
+%D
+%D \typebuffer {\tracetabulatetrue\haalbuffer}
+
% \definetabulate
% \redefinetabulate
% \starttabulate[preamble]
@@ -368,11 +467,11 @@
\doifundefined{\??tt#1::\c!eenheid}
{\copyparameters
[\??tt#1::][\??tt\e!tabulate::]%
- [\c!eenheid,\c!voor,\c!na,\c!binnen,\c!inspringen,
+ [\c!afstand,\c!eenheid,\c!voor,\c!na,\c!binnen,\c!inspringen,
\c!uitlijnen,\c!lijnkleur,\c!lijndikte,EQ]}%
\copyparameters
[\??tt#1::#2][\??tt#1::]%
- [\c!eenheid,\c!voor,\c!na,\c!binnen,\c!inspringen,
+ [\c!eenheid,\c!afstand,\c!voor,\c!na,\c!binnen,\c!inspringen,
\c!uitlijnen,\c!lijnkleur,\c!lijndikte,EQ]%
\setvalue{\e!start#1::#2}{\dofinalstarttabulate[#1][#2][#3]}%
\setvalue{\e!start#1}{\bgroup\dosubstarttabulate[#1]}%
@@ -402,6 +501,9 @@
\fi
\next}
+\newtoks\everytabulate
+\chardef\tabulatepass=0
+
\def\dofinalstarttabulate[#1][#2][#3]% identifier sub preamble
{\edef\currenttabulate{#1::#2}%
\ifinsidefloat \else
@@ -409,13 +511,15 @@
\getvalue{\??tt\currenttabulate\c!voor}%
\fi
\bgroup
+ \chardef\tabulatepass=1
+ \the\everytabulate
\getvalue{\??tt\currenttabulate\c!binnen}%
- \dimen0=\leftskip
- \advance\dimen0 by \hangindent
+ \scratchdimen=\leftskip
+ \advance\scratchdimen by \hangindent
\doifvalue{\??tt\currenttabulate\c!inspringen}{\v!ja}
- {\advance\dimen0 by \parindent}% \voorwit}%
- \edef\tabulateindent{\the\dimen0}%
- \!!toksb{}%
+ {\advance\scratchdimen by \parindent}% \voorwit
+ \edef\tabulateindent{\the\scratchdimen}%
+ \!!toksb\emptytoks
\def\dorepeat*##1##2%
{\dorecurse{##1}{\appendtoks##2\to\!!toksb}\do}%
\def\do%
@@ -499,7 +603,8 @@
\newif\iftolerantTABLEbreak
-%D
+%D The main processing macro is large but splitting it up
+%D would make things less clear.
\def\processtabulate[|#1|]% in the process of optimizing
{\tabulateunit=\getvalue{\??tt\currenttabulate\c!eenheid}%
@@ -511,8 +616,7 @@
\s!default=>\def\@@tabulatealign{0},
\s!unknown=>\def\@@tabulatealign{0}]%
\dorecurse\noftabcolumns % NEW
- {\@EA\global\@EA\setbox\csname\@@tabbox@@\recurselevel\endcsname
- =\box\voidb@x}%
+ {\global\setbox\csname\@@tabbox@@\recurselevel\endcsname=\box\voidb@x}%
\let\pretabskip\!!zeropoint
\def\postabskip{.5\tabulateunit}%
\doglobal\newcounter\tabulatecolumns
@@ -522,21 +626,28 @@
\let\minusnoftabulatelines\noftabulatelines
\global\tabulatepwidth=\!!zeropoint
\global\tabulateequalfalse
+ \resettabulatepheight
\def\NC{\tabulatenormalcolumn0}%
\def\RC{\tabulatenormalcolumn1}%
\def\HC{\tabulatenormalcolumn2}%
\def\EQ{\tabulateequalcolumn 0}%
\def\RQ{\tabulateequalcolumn 1}%
\def\HQ{\tabulateequalcolumn 2}%
+ \def\NG{\NC\handletabulatecharalign}%
\def\NR% next row
{\doglobal\increment\noftabulatelines
\global\tabulateequalfalse
\xdef\tabulatecolumn{0}%
+ \resettabulatepheight
\unskip\unskip\crcr\flushtabulated
\TABLEnoalign
{\iftolerantTABLEbreak\else
- \ifnum\noftabulatelines=1 \noalign{\nobreak}%
- \else\ifnum\noftabulatelines=\minusnoftabulatelines\noalign{\nobreak}%
+ \ifnum\noftabulatelines=1
+ \dotabulatenobreak
+ \else\ifnum\noftabulatelines=\minusnoftabulatelines
+ \ifnum\tabulatemaxplines<2
+ \dotabulatenobreak
+ \fi
\fi\fi
\fi}}%
\let\HL\empty \let\SR\NR \let\AR\NR
@@ -553,9 +664,10 @@
\appendtoks\doglobal\increment\tabulatecolumn\to\!!toksa
\appendtoks\NC\unskip\unskip\crcr\flushtabulated\to\tabulatedummy % no count
\xdef\tabulatecolumn{0}%
+ \resettabulatepheight
\def\bskip%
{\setbox\tabulatebox=\vbox\bgroup
- \global\let\tabulatehook\empty}%
+ \global\let\tabulatehook\notabulatehook}%
\def\eskip
{\par\egroup
\global\let\tabulatehook\dotabulatehook}%
@@ -568,7 +680,7 @@
\else
\setlocalhsize \hsize=\localhsize
\fi
- \mindermeldingen
+ \dontcomplain
\forgetall
\setbox0=\vbox % outside if because of line counting
{\footnotesenabledfalse
@@ -586,34 +698,36 @@
\splittopskip\ht\strutbox
\global\let\flushtabulatedindeed\empty
\long\def\bbskip%
- {\@EA\ifvoid\csname\@@tabbox@@\tabulatecolumn\endcsname
+ {\ifvoid\csname\@@tabbox@@\tabulatecolumn\endcsname
\ifx\flushtabulatedindeed\empty\else
\setbox0\hbox
\fi
\fi}%
\def\bskip%
- {\@EA\ifvoid\csname\@@tabbox@@\tabulatecolumn\endcsname
- \@EA\global\@EA\setbox\csname\@@tabbox@@\tabulatecolumn\endcsname=\vbox
+ {\ifvoid\csname\@@tabbox@@\tabulatecolumn\endcsname
+ \global\setbox\csname\@@tabbox@@\tabulatecolumn\endcsname=\vbox
\bgroup
- \global\let\tabulatehook\empty
+ \global\let\tabulatehook\notabulatehook
\ifautotabulate\hsize\tabulatewidth\fi
%\begstrut % interferes with pre-\pars
\ignorespaces
\def\eskip%
{\par\egroup
+ \settabulatepheight
\global\let\tabulatehook\dotabulatehook
\splitofftabulatebox}%
\else
\let\eskip\empty
- \mindermeldingen
+ \dontcomplain
\global\let\tabulatehook\dotabulatehook
\expandafter\splitofftabulatebox
\fi}%
\gdef\flushtabulated%
- {\noalign % no interference !
+ {\TABLEnoalign % noalign % no interference !
{\global\let\flushtabulatedindeed\empty
+ \handletabulatepbreak
\dorecurse\noftabcolumns
- {\@EA\ifvoid\csname\@@tabbox@@\recurselevel\endcsname\else
+ {\ifvoid\csname\@@tabbox@@\recurselevel\endcsname\else
\gdef\flushtabulatedindeed{\the\tabulatedummy}%
\fi}}%
\flushtabulatedindeed}%
@@ -644,14 +758,14 @@
\baselinecorrection}%
\def\FL{\TABLEnoalign
{\ifinsidefloat\else
- \doifemptyvalue{\??tt\currenttabulate\c!voor\endcsname} % no expansion
+ \doifemptyvalue{\??tt\currenttabulate\c!voor} % no expansion
{\tablebaselinecorrection}%
\fi
\tabulaterule
- \nobreak
+ \dotabulatenobreak
\tabulateruleseperator
\prevdepth\dp\strutbox
- \nobreak}}%
+ \dotabulatenobreak}}%
\def\ML{\TABLEnoalign
{\tabulateruleseperator
\tabulaterule
@@ -661,16 +775,17 @@
\fi\fi
\tabulateruleseperator}}%
\def\LL{\TABLEnoalign
- {\nobreak
+ {\dotabulatenobreak
\tabulateruleseperator
- \nobreak
+ \dotabulatenobreak
\tabulaterule
\ifinsidefloat\else
- \doifemptyvalue{\??tt\currenttabulate\c!na\endcsname} % no expansion
+ \doifemptyvalue{\??tt\currenttabulate\c!na} % no expansion
{\vskip\dp\strutbox
\vbox{\strut}
\vskip-\lineheight}%
\fi}}%
+ \chardef\tabulatepass=2
\@EA\halign\@EA{\the\!!toksa\cr\tabulatecontent\crcr}%
\prevdepth\dp\strutbox % nog eens beter, temporary hack
\egroup
diff --git a/tex/context/base/core-uti.tex b/tex/context/base/core-uti.tex
new file mode 100644
index 000000000..721ca9e69
--- /dev/null
+++ b/tex/context/base/core-uti.tex
@@ -0,0 +1,368 @@
+%D \module
+%D [ file=core-uti,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=Utility File Handling,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Core Macros / Utility File Handling}
+
+\unprotect
+
+% 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.
+
+% 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\uti
+\newif\ifutilitydone
+
+\def\@@utilityerrormessage%
+ {\showmessage{\m!systems}{8}{}%
+ \global\let\@@utilityerrormessage=\relax}
+
+\def\thisisutilityversion#1%
+ {\doifnot{\utilityversion}{#1}%
+ {\@@utilityerrormessage
+ \resetutilities
+ \endinput}}
+
+\def\writeutility%
+ {\write\uti}
+
+\def\immediatewriteutility%
+ {\immediate\write\uti}
+
+\def\writeutilitycommand#1%
+ {\writeutility{c \string#1}}
+
+\def\immediatewriteutilitycommand#1%
+ {\immediatewriteutility{c \string#1}}
+
+\def\openutilities%
+ {\immediate\openout\uti=\jobname.\f!inputextension
+ \immediatewriteutilitycommand{\thisisutilityversion{\utilityversion}}}
+
+\def\closeutilities%
+ {%\savenofsubpages
+ %\savenofpages
+ \immediate\closeout\uti
+ \reportutilityproblems}
+
+\def\abortutilitygeneration%
+ {\immediatewriteutilitycommand{\utilitygenerationaborted}%
+ \immediatewriteutility{q {quit}}}
+
+\def\utilitygenerationaborted%
+ {\showmessage{\m!systems}{21}{}%
+ \global\let\utilitygenerationaborted=\endinput
+ \gdef\reportutilityproblems{\showmessage{\m!systems}{22}{}}%
+ \endinput}
+
+\def\savecurrentvalue#1#2%
+ {\immediatewriteutilitycommand{\initializevariable\string#1{#2}}}
+
+\let\initializevariable\gdef
+
+\def\disableinitializevariables%
+ {\global\let\initializevariable\gobbletwoarguments}
+
+\let\reportutilityproblems=\relax
+
+\let\utilityresetlist=\empty
+
+%\def\addutilityreset#1%
+% {\addtocommalist{\s!reset#1}\utilityresetlist}
+%
+%\def\resetutilities%
+% {\processcommacommand[\utilityresetlist]\getvalue}
+
+\def\addutilityreset#1%
+ {\addtocommalist{#1}\utilityresetlist}
+
+\def\doresetutility#1%
+ {\getvalue{\s!reset#1}}
+
+\def\resetutilities%
+ {\processcommacommand[\utilityresetlist]\doresetutility}
+
+% #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\utilitycheckmessage%
+ {\showmessage{\m!systems}{12}{}%
+ \global\let\utilitycheckmessage=\relax}
+
+\def\saveutilityline#1 #2\txen% tricky maar ok, want achter \command
+ {\if #1c% commands % in \ascii staat een spatie; #1 kan
+ \write\scratchwrite{#2}% % \par in stringvorm zijn (eof)!
+ \else\if#1s% synoniems
+ \utilitycheckmessage
+ \else\if#1r% registers
+ \utilitycheckmessage
+ \fi\fi\fi}
+
+% no longer needed, since texutil is now multi platform
+%
+% \def\checkutilityfile%
+% {\doiflocfileelse{\jobname.\f!outputextension}
+% {}
+% {\doiflocfileelse{\jobname.\f!inputextension}
+% {\bgroup
+% \showmessage{\m!systems}{11}{}%
+% \openout\scratchwrite=\jobname.\f!outputextension
+% \openlocin\scratchread{\jobname.\f!inputextension}%
+% \def\doprocessline%
+% {\ifeof\scratchread
+% \def\doprocessline{\closein\scratchread}%
+% \else
+% \read\scratchread to \ascii
+% \convertcommand\ascii\to\ascii
+% \expandafter\saveutilityline\ascii\txen
+% \fi
+% \doprocessline}%
+% \doprocessline
+% \closeout\scratchwrite
+% \egroup}
+% {}}}
+
+\def\checkutilityfile%
+ {}
+
+\long\def\doutilities#1#2#3#4#5% % introduceren in utility file
+ {\restorecatcodes
+ \resetutilities
+ \def\docommando##1% % zo kunnen meerdere dingen
+ {\getvalue{\s!set##1}}% % in een pass worden gedaan,
+ \processcommacommand[#1]\docommando % zie bijvoorbeeld lijsten
+ \begingroup
+ \footnotesenabledfalse
+ \doinpututilitiestrue
+ \global\utilitydonefalse
+ \catcode`\%=\@@comment\relax
+ \pushendofline % geeft problemen zodra andere file wordt ingelezen
+ \ifunprotectutilities % nog nodig ?
+ \unprotect
+ \fi
+ \ifnum\catcode`\@=\@@active \else
+ \catcode`\@=\@@letter % permits expanded commands with \@'s
+ \fi
+ \ifnum\catcode`\!=\@@active \else
+ \catcode`\!=\@@letter % permits multilingual constants
+ \fi
+ #4\readjobfile{#2.\f!outputextension}{}{}#5%
+ \relax
+ \ifunprotectutilities
+ \protect
+ \fi
+ \popendofline
+ \ifutilitydone\else
+ \doifnot{#3}{}
+ {\showmessage{\m!systems}{9}{{#3}}%
+ \ifvoorlopig
+ \blanko
+ \type{[\currentmessagetext]}%
+ \blanko
+ \fi}%
+ \fi
+ \disableinitializevariables
+ \endgroup}
+
+% Saving the sort vector:
+
+\def\savesortkeys%
+ {\setbox\scratchbox=\hbox
+ \bgroup
+ \def\flushsortkey##1##2##3##4%
+ {\convertargument{##1}{##2}{##3}{##4}\to\ascii
+ \immediatewriteutility{k {\currentlanguage}{\currentencoding}\ascii}}%
+ \let\definesortkey\flushsortkey
+ \flushsortkeys
+ \egroup
+ \global\let\savesortkeys\relax}
+
+\prependtoks \savesortkeys \to \everystarttext
+
+% Commando's ten behoeve van two-pass lists. In principe
+% kan alles in een keer worden ingelezen. Omdat de macro's
+% groeien is de kans groot dat het (main) geheugen door
+% (de)allocatie volloopt. Vandaar dat we het toch maar niet
+% doen.
+%
+% \definetwopasslist{\s!xxx}
+%
+% \gettwopassdata{\s!xxx}
+% \getfrompassdata{\s!xxx}{n} n=index (getal)
+% \findtwopassdata{\s!xxx}{tag} bijvoorbeeld {label:}
+% \iftwopassdatafound
+% \twopassdata
+%
+% \twopassentry{\s!xxx}{nr}{data} nr alleen voor testdoeleinden
+%
+% also:
+%
+% \definerawpasslist{\s!xxx}
+% \moverawpasslist\s!xxx\to\somemacro
+
+\let\alltwopasslists\empty % with 0,0 -> stepwise commalist
+\let\allrawpasslists\empty % without 0,0 -> raw commalist
+
+\newif\iftwopassdatafound
+
+\def\twopassentry#1%
+ {\executeifdefined{@@#1\s!pass}\gobbletwoarguments}
+
+\def\appendtwopasselement#1#2#3%
+ {%\debuggerinfo{\m!systems}{twopass data #1 - #2 = #3}%
+ \@EA\ifx\csname#1:\s!list\endcsname\empty
+ \setxvalue{#1:\s!list}{#3}%
+ \else
+ \setxvalue{#1:\s!list}{\getvalue{#1:\s!list},#3}%
+ \fi}
+
+\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}%
+ {\global\letvalue{\s!set#1\s!pass}\gobbletwoarguments
+ \setgvalue{@@#1\s!pass}{\appendtwopasselement{#1}}}%
+ \setgvalue{\s!reset#1\s!pass}%
+ {\global\letvalue{@@#1\s!pass}\gobbletwoarguments}%
+ \getvalue{\s!reset#1\s!pass}}}
+
+\def\definetwopasslist#1%
+ {\expanded{\dodefinetwopasslist{#1}}%
+ \doglobal\addtocommalist{#1}\alltwopasslists}
+
+\def\definerawpasslist#1%
+ {\expanded{\dodefinetwopasslist{#1}}%
+ \doglobal\addtocommalist{#1}\allrawpasslists}
+
+\def\doloadtwopassdata#1%
+ {\doifundefined{#1:\s!list}
+ {\global\letvalue{#1:\s!list}\empty
+ \doutilities{#1\s!pass}{\jobname}{}{}{}%
+ \ifx\twopassdata\empty\else
+ \appendtwopasselement{#1}{0}\twopassdata
+ \fi}}
+
+\def\loadtwopassdata%
+ {\ifx\alltwopasslists\empty\else
+ \def\twopassdata{0,0}% end condition
+ \processcommacommand[\alltwopasslists]\doloadtwopassdata
+ \global\let\alltwopassdata\empty
+ \fi
+ \ifx\allrawpasslists\empty\else
+ \let\twopassdata\empty
+ \processcommacommand[\allrawpasslists]\doloadtwopassdata
+ \global\let\allrawpassdata\empty
+ \fi}
+
+\def\moverawpasslist#1#2% erases the old one, like the others do
+ {\loadtwopassdata
+ \@EA\let\@EA#2\csname#1:\s!list\endcsname
+ \@EA\let\csname#1:\s!list\endcsname\empty}
+
+\let\twopassdata=\empty
+
+\def\dogettwopassdata[#1,#2]#3%
+ {\doifelse{#1}{0} % \ifcase truukje gaat fout
+ {\twopassdatafoundfalse
+ \let\twopassdata\empty}
+ {\twopassdatafoundtrue
+ \setxvalue{#3:\s!list}{#2}%
+ \edef\twopassdata{#1}}}
+
+\def\gettwopassdata#1%
+ {\loadtwopassdata
+ \edef\!!stringa{\getvalue{#1:\s!list}}%
+ %\debuggerinfo{\m!systems}{twopass get #1 - \!!stringa}%
+ \expandafter\dogettwopassdata\expandafter[\!!stringa]{#1}}
+
+\def\findtwopassdata%
+ {\loadtwopassdata
+ \ExpandBothAfter\dofindtwopassdata}
+
+\def\dofindtwopassdata#1#2%
+ {\edef\!!stringa{,\getvalue{#1:\s!list}}%
+ %\debuggerinfo{\m!systems}{twopass find #2 - \!!stringa}%
+ \def\dodofindtwopassdata[##1,##2#2##3,##4]%
+ {\edef\twopassdata{##3}%
+ \ifx\twopassdata\empty
+ \twopassdatafoundfalse
+ \else
+ \twopassdatafoundtrue
+ \fi}%
+ \@EA\dodofindtwopassdata\@EA[\!!stringa,#2,#2,]}
+
+\def\getfirsttwopassdata#1%
+ {\loadtwopassdata
+ \edef\!!stringa{\getvalue{#1:\s!list}}%
+ \expandafter\dogetfirsttwopassdata\expandafter[\!!stringa]{#1}}
+
+\def\dogetfirsttwopassdata[#1,#2]#3%
+ {\doifelse{#1}{0}
+ {\twopassdatafoundfalse
+ \let\twopassdata\empty}
+ {\twopassdatafoundtrue
+ \edef\twopassdata{#1}}}
+
+\def\getlasttwopassdata#1%
+ {\loadtwopassdata
+ \edef\twopassdata{0}\twopassdatafoundfalse
+ \newcounter\noftwopassitems
+ \def\docommando##1%
+ {\doifnot{##1}{0}
+ {\increment\noftwopassitems
+ \edef\twopassdata{##1}\twopassdatafoundtrue}}%
+ \processcommacommand[\getvalue{#1:\s!list}]\docommando}
+
+\def\getfromtwopassdata#1#2%
+ {\loadtwopassdata
+ \getfromcommacommand[\getvalue{#1:\s!list}][#2]%
+ \doifelsenothing{\commalistelement}
+ {\twopassdatafoundfalse
+ \let\twopassdata\empty}
+ {\twopassdatafoundtrue
+ \let\twopassdata\commalistelement}}
+
+% Default-instellingen (verborgen)
+
+\prependtoks \resetutilities \to \everyjob
+
+\protect \endinput
diff --git a/tex/context/base/core-var.tex b/tex/context/base/core-var.tex
index d42f57784..2b17ef1c5 100644
--- a/tex/context/base/core-var.tex
+++ b/tex/context/base/core-var.tex
@@ -15,15 +15,31 @@
\unprotect
+%D \macros
+%D {every...}
+%D
+%D A few every's.
+
\newevery \everyshipout \relax
\newevery \everybeforeshipout \relax
\newevery \everyaftershipout \relax
\newevery \everylastshipout \relax
\newevery \everybye \relax
+\newevery \everygoodbye \relax
\newevery \everystarttext \relax
\newevery \everystoptext \relax
\newevery \everypagebody \relax
+%D \macros
+%D {ifproductionrun}
+%D
+%D This boolean can be used to bypass certain
+%D initializations.
+
+\newif\ifproductionrun
+
+\appendtoks \productionruntrue \to \everydump
+
%D \macros
%D {fastmode}
%D
diff --git a/tex/context/base/core-ver.tex b/tex/context/base/core-ver.tex
index 5b2e0a8c3..e85f23c7a 100644
--- a/tex/context/base/core-ver.tex
+++ b/tex/context/base/core-ver.tex
@@ -486,9 +486,9 @@
\def\initializetyping#1%
{\donefalse
\scratchskip=\getvalue{\??tp#1\c!onevenmarge}\relax
- \ifdim\scratchskip=\!!zeropoint\relax\else\donetrue\fi
+ \ifzeropt\scratchskip\else\donetrue\fi
\scratchskip=\getvalue{\??tp#1\c!evenmarge}\relax
- \ifdim\scratchskip=\!!zeropoint\relax\else\donetrue\fi
+ \ifzeropt\scratchskip\else\donetrue\fi
\ifdone
\def\doopenupverbatimline%
{\getpagestatus
@@ -804,7 +804,7 @@
\def\typefile#1%
{\getvalue{\??tp\v!file\c!voor}%
- \doiffileelse{#1}
+ \doiflocfileelse{\pathplusfile\f!currentpath{#1}}
{\startopelkaar % includes \bgroup
\startcolor[\getvalue{\??tp\v!file\c!kleur}]%
\doifinset{\getvalue{\??tp\v!file\c!optie}}{\v!commandos,\v!schuin,\v!normaal}
@@ -813,7 +813,7 @@
{\expandafter\aftersplitstring#1\at.\to\prettyidentifier
\letvalue{\??tp\v!file\c!optie}=\prettyidentifier}%
\initializetyping\v!file
- \processfileverbatim{#1}%
+ \processfileverbatim{\pathplusfile\f!currentpath{#1}}%
\stopcolor
\stopopelkaar} % includes \egroup
{{\tttf[\makemessage{\m!verbatims}{1}{#1}]}%
diff --git a/tex/context/base/core-vis.tex b/tex/context/base/core-vis.tex
index d39482ee6..5c76ad84f 100644
--- a/tex/context/base/core-vis.tex
+++ b/tex/context/base/core-vis.tex
@@ -651,9 +651,9 @@
\fi}
\def\pushwhatsit%
- {\ifdim\lastskip=\!!zeropoint
- \ifnum\lastpenalty=0
- \ifnum\lastkern=0
+ {\ifzeropt\lastskip
+ \ifcase\lastpenalty
+ \ifzeropt\lastkern
\ifhmode
\let\popwhatsit\relax
\else
diff --git a/tex/context/base/enco-ans.tex b/tex/context/base/enco-ans.tex
index 55ffd06e9..79bb55d67 100644
--- a/tex/context/base/enco-ans.tex
+++ b/tex/context/base/enco-ans.tex
@@ -130,7 +130,7 @@
\definecharacter oe 156
\definecharacter O 216
\definecharacter o 248
-\definecharacter ss 223
+\definecharacter sz 223
\definecharacter SS 223
\definecharacter aa 229
diff --git a/tex/context/base/enco-chi.tex b/tex/context/base/enco-chi.tex
index b5c5161c7..2e420a9f7 100644
--- a/tex/context/base/enco-chi.tex
+++ b/tex/context/base/enco-chi.tex
@@ -94,21 +94,37 @@
\defineuclass 2 162 88
\defineuclass 2 163 223
-\defineudigit 0 185 115
-\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 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
\stopencoding
@@ -162,21 +178,37 @@
\defineuclass 2 163 221
\defineuclass 2 163 253
-\defineudigit 0 193 227
-\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 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
\stopencoding
diff --git a/tex/context/base/enco-ec.tex b/tex/context/base/enco-ec.tex
index 5a377e54b..611523885 100644
--- a/tex/context/base/enco-ec.tex
+++ b/tex/context/base/enco-ec.tex
@@ -173,8 +173,8 @@
\definecharacter OE 215
\definecharacter o 248
\definecharacter O 216
-\definecharacter ss 255
-\definecharacter SS 223
+\definecharacter sz 255 % was 223
+\definecharacter SS 255 % was 223
\definecharacter th 254
\definecharacter TH 222
diff --git a/tex/context/base/enco-ibm.tex b/tex/context/base/enco-ibm.tex
index 28d84d4fa..382c87795 100644
--- a/tex/context/base/enco-ibm.tex
+++ b/tex/context/base/enco-ibm.tex
@@ -50,7 +50,7 @@
\defineactivecharacter ¤ {\~n}
-\defineactivecharacter á {\SS}
+\defineactivecharacter á {\SS{}}
\defineactivecharacter ® {\ifvmode\leavevmode\fi\leftguillemot\prewordbreak}
\defineactivecharacter ¯ {\prewordbreak\rightguillemot}
diff --git a/tex/context/base/enco-il2.tex b/tex/context/base/enco-il2.tex
index f2e6986ad..25767ea4f 100644
--- a/tex/context/base/enco-il2.tex
+++ b/tex/context/base/enco-il2.tex
@@ -104,9 +104,10 @@
\definecharacter ae 26 \definecharacter AE 29
\definecharacter oe 27 \definecharacter OE 30
\definecharacter o 28 \definecharacter O 31
-\definecharacter i 16
+\definecharacter i 16 \definecharacter sz 25
\definecharacter j 17 \definecharacter SS 25
+
%D Some rather \PLAIN\ \TEX\ redefinitions.
\defineaccentcommand b {\ilencodedb}
diff --git a/tex/context/base/enco-ini.tex b/tex/context/base/enco-ini.tex
index 0ff61d384..874114eb9 100644
--- a/tex/context/base/enco-ini.tex
+++ b/tex/context/base/enco-ini.tex
@@ -167,7 +167,7 @@
%D This command is typically used in coding definitions,
%D like the \UNICODE\ one.
-\def\dodefineactivedecimal#1#2%
+\def\dodefineactivedecimal#1#2% \unexpanded ? pdfdoc encoding
{\catcode#1=\active % maybe \protectregimetrue
\scratchcounter=\the\uccode`~
\uccode`~=#1\relax
@@ -493,7 +493,7 @@
%D \stoptypen
%D
%D The first argument denotes the string to be treated. The
-%D second argument is the raw replacement, while the second
+%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
@@ -817,6 +817,7 @@
%\appendtoks \def\i{I}\to \everyuppercase
%\appendtoks \def\j{J}\to \everyuppercase
+%\appendtoks \def\sz{sz}\to \everyuppercase % \sz <= \ss
%\appendtoks \def\SS{SS}\to \everyuppercase % \SS <= \ss
%
%\appendtoks \let\l=\L \to \everyuppercase
@@ -895,6 +896,11 @@
\unexpanded\def\udigit#1#2{\getvalue{@#1@uc\number#2}}
+%D Just to be sure, we save the original values of \type {\ss}.
+
+\ifx\undefined\SS \let\SS=\ss \fi
+\ifx\undefined\sz \let\sz=\ss \fi
+
%D Here come the definitions.
\redefineaccent ' % grave
@@ -920,7 +926,7 @@
\redefinecharacter OE % OE
\redefinecharacter o % oslash
\redefinecharacter O % Oslash
-\redefinecharacter ss % germandbls
+\redefinecharacter sz % germandbls
\redefinecharacter SS % germandbls
\redefinecharacter aa % aring
\redefinecharacter AA % Aring
@@ -944,12 +950,18 @@
\defineaccent ' i {\'\i} \defineaccent ' j {\'\j}
\defineaccent ~ i {\~\i} \defineaccent ~ j {\~\j}
+\redefinecharacter leftguillemot
+\redefinecharacter rightguillemot
+\redefinecharacter leftsubguillemot
+\redefinecharacter rightsubguillemot
+
%D Some more:
\startmapping[\s!default]
\defineuppercasecom \i {I}
\defineuppercasecom \j {J}
+\defineuppercasecom \sz {SS}
\defineuppercasecom \SS {SS}
\defineuppercasecom \l \L
\defineuppercasecom \ae \AE
diff --git a/tex/context/base/enco-lat.tex b/tex/context/base/enco-lat.tex
index 49f7485ea..a8e1525c1 100644
--- a/tex/context/base/enco-lat.tex
+++ b/tex/context/base/enco-lat.tex
@@ -24,8 +24,8 @@
\defineactivecharacter © {\v{S}}
\defineactivecharacter ¾ {\v{z}}
\defineactivecharacter ® {\v{Z}}
-\defineactivecharacter ð {\pseudoencodeddj}
-\defineactivecharacter Ð {\pseudoencodedDJ}
+\defineactivecharacter ð {\pseudoencodeddj{}}
+\defineactivecharacter Ð {\pseudoencodedDJ{}}
\stopregime
diff --git a/tex/context/base/enco-pdf.tex b/tex/context/base/enco-pdf.tex
index 5b3729660..a4fbfdac2 100644
--- a/tex/context/base/enco-pdf.tex
+++ b/tex/context/base/enco-pdf.tex
@@ -94,7 +94,7 @@
\definecharacter OA ^^c5
\definecharacter oa ^^e5
\definecharacter oe ^^9c
-\definecharacter ss ^^df
+\definecharacter sz ^^df
\definecharacter SS ^^df
\definecharacter leftguillemot ^^ab
diff --git a/tex/context/base/enco-vis.tex b/tex/context/base/enco-vis.tex
index 38ac6b0af..77f18fdb2 100644
--- a/tex/context/base/enco-vis.tex
+++ b/tex/context/base/enco-vis.tex
@@ -96,7 +96,7 @@
\defineactivecharacter 206 {\~{I}}
\defineactivecharacter 207 {\`{y}}
-\defineactivecharacter 208 {\DJ}
+\defineactivecharacter 208 {\DJ{}}
\defineactivecharacter 209 {\'{hu}}
\defineactivecharacter 210 {\`{O}}
\defineactivecharacter 211 {\'{O}}
@@ -130,7 +130,7 @@
\defineactivecharacter 238 {\~{i}}
\defineactivecharacter 239 {\h{i}}
-\defineactivecharacter 240 {\dj}
+\defineactivecharacter 240 {\dj{}}
\defineactivecharacter 241 {\d{hu}}
\defineactivecharacter 242 {\`{o}}
\defineactivecharacter 243 {\'{o}}
diff --git a/tex/context/base/enco-win.tex b/tex/context/base/enco-win.tex
index 73140490c..e31fb311a 100644
--- a/tex/context/base/enco-win.tex
+++ b/tex/context/base/enco-win.tex
@@ -21,16 +21,16 @@
\defineactivecharacter  {\^A}
\defineactivecharacter à {\~A}
\defineactivecharacter Ä {\"A}
-\defineactivecharacter Å {\AA}
-\defineactivecharacter Æ {\AE}
+\defineactivecharacter Å {\AA{}}
+\defineactivecharacter Æ {\AE{}}
\defineactivecharacter à {\`a}
\defineactivecharacter á {\'a}
\defineactivecharacter â {\^a}
\defineactivecharacter ã {\~a}
\defineactivecharacter ä {\"a}
-\defineactivecharacter å {\aa}
-\defineactivecharacter æ {\ae}
+\defineactivecharacter å {\aa{}}
+\defineactivecharacter æ {\ae{}}
\defineactivecharacter Ç {\c C}
\defineactivecharacter ç {\c c}
@@ -63,20 +63,20 @@
\defineactivecharacter Ô {\^O}
\defineactivecharacter Õ {\~O}
\defineactivecharacter Ö {\"O}
-\defineactivecharacter Π{\OE}
-\defineactivecharacter Ø {\O}
+\defineactivecharacter Π{\OE{}}
+\defineactivecharacter Ø {\O{}}
\defineactivecharacter ò {\`o}
\defineactivecharacter ó {\'o}
\defineactivecharacter ô {\^o}
\defineactivecharacter õ {\~o}
\defineactivecharacter ö {\"o}
-\defineactivecharacter œ {\oe}
-\defineactivecharacter ø {\o}
+\defineactivecharacter œ {\oe{}}
+\defineactivecharacter ø {\o{}}
\defineactivecharacter Š {\v{S}}
\defineactivecharacter š {\v{s}}
-\defineactivecharacter ß {\SS}
+\defineactivecharacter ß {\SS{}}
\defineactivecharacter Ù {\`U}
\defineactivecharacter Ú {\'U}
@@ -94,26 +94,26 @@
\defineactivecharacter ¿ {?`}
\defineactivecharacter ¡ {!`}
-\defineactivecharacter † {\dag}
-\defineactivecharacter ‡ {\ddag}
-\defineactivecharacter ¶ {\P}
-\defineactivecharacter § {\S}
+\defineactivecharacter † {\dag{}}
+\defineactivecharacter ‡ {\ddag{}}
+\defineactivecharacter ¶ {\P{}}
+\defineactivecharacter § {\S{}}
\defineactivecharacter – {--}
\defineactivecharacter — {---}
-\defineactivecharacter … {\dots}
-\defineactivecharacter © {\copyright}
-\defineactivecharacter £ {\pounds}
-
-\defineactivecharacter „ {\char44\kern-.1em\char44}
-\defineactivecharacter “ {\char96\kern-.1em\char96}
-\defineactivecharacter ” {\char34}
-\defineactivecharacter ‘ {\upperleftsinglesixquote}
-\defineactivecharacter ’ {\char39}
-\defineactivecharacter › {\rightsubguillemot}
-\defineactivecharacter ‹ {\leftsubguillemot}
+\defineactivecharacter … {\dots{}}
+\defineactivecharacter © {\copyright{}}
+\defineactivecharacter £ {\pounds{}}
+
+\defineactivecharacter „ {\char44\kern-.1em\char44 }
+\defineactivecharacter “ {\char96\kern-.1em\char96 }
+\defineactivecharacter ” {\char34 }
+\defineactivecharacter ‘ {\upperleftsinglesixquote{}}
+\defineactivecharacter ’ {\char39 }
+\defineactivecharacter › {\rightsubguillemot{}}
+\defineactivecharacter ‹ {\leftsubguillemot{}}
\defineactivecharacter « {\ifvmode\leavevmode\fi\leftguillemot\prewordbreak}
-\defineactivecharacter » {\prewordbreak\rightguillemot}
+\defineactivecharacter » {\prewordbreak\rightguillemot{}}
\stopregime
diff --git a/tex/context/base/font-ber.tex b/tex/context/base/font-ber.tex
index f18bdd868..e748305bd 100644
--- a/tex/context/base/font-ber.tex
+++ b/tex/context/base/font-ber.tex
@@ -8,8 +8,8 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
\definefontsynonym [Baskerville] [mbvr8t] [encoding=ec]
\definefontsynonym [Baskerville-Italic] [mbvri8t] [encoding=ec]
@@ -18,37 +18,44 @@
\definefontsynonym [Baskerville-SemiBold] [mbvs8t] [encoding=ec]
\definefontsynonym [Baskerville-SemiBoldItalic] [mbvsi8t] [encoding=ec]
-\definefontsynonym [Courier] [pcrr8t] [encoding=ec]
-\definefontsynonym [Courier-Bold] [pcrb8t] [encoding=ec]
-\definefontsynonym [Courier-Oblique] [pcrro8t] [encoding=ec]
-\definefontsynonym [Courier-BoldOblique] [pcrbo8t] [encoding=ec]
+\definefontsynonym [Courier] [pcrr8t] [encoding=ec]
+\definefontsynonym [Courier-Bold] [pcrb8t] [encoding=ec]
+\definefontsynonym [Courier-Oblique] [pcrro8t] [encoding=ec]
+\definefontsynonym [Courier-BoldOblique] [pcrbo8t] [encoding=ec]
-\definefontsynonym [Helvetica] [phvr8t] [encoding=ec]
-\definefontsynonym [Helvetica-Oblique] [phvro8t] [encoding=ec]
-\definefontsynonym [Helvetica-Bold] [phvb8t] [encoding=ec]
-\definefontsynonym [Helvetica-BoldOblique] [phvbo8t] [encoding=ec]
+\definefontsynonym [Helvetica] [phvr8t] [encoding=ec]
+\definefontsynonym [Helvetica-Oblique] [phvro8t] [encoding=ec]
+\definefontsynonym [Helvetica-Bold] [phvb8t] [encoding=ec]
+\definefontsynonym [Helvetica-BoldOblique] [phvbo8t] [encoding=ec]
-\definefontsynonym [Times-Roman] [ptmr8t] [encoding=ec]
-\definefontsynonym [Times-Italic] [ptmri8t] [encoding=ec]
-\definefontsynonym [Times-Bold] [ptmb8t] [encoding=ec]
-\definefontsynonym [Times-BoldItalic] [ptmbi8t] [encoding=ec]
+\definefontsynonym [Times-Roman] [ptmr8t] [encoding=ec]
+\definefontsynonym [Times-Italic] [ptmri8t] [encoding=ec]
+\definefontsynonym [Times-Bold] [ptmb8t] [encoding=ec]
+\definefontsynonym [Times-BoldItalic] [ptmbi8t] [encoding=ec]
-\definefontsynonym [AntykwaTorunska-Regular] [zatr8t] [encoding=ec]
-\definefontsynonym [AntykwaTorunska-Italic] [zatri8t] [encoding=ec]
-\definefontsynonym [AntykwaTorunska-Bold] [zatb8t] [encoding=ec]
+\definefontsynonym [AntykwaTorunska-Regular] [zatr8t] [encoding=ec]
+\definefontsynonym [AntykwaTorunska-Italic] [zatri8t] [encoding=ec]
+\definefontsynonym [AntykwaTorunska-Bold] [zatb8t] [encoding=ec]
-\definefontsynonym [AvantGarde] [pag]
-\definefontsynonym [BookmanLight] [pbk]
-\definefontsynonym [CentaurMT] [pur]
-\definefontsynonym [Garamond] [pgm]
-\definefontsynonym [GillSans] [pgs]
-\definefontsynonym [NewBaskerville] [pnb]
-\definefontsynonym [Optima] [pop]
-\definefontsynonym [Palatino] [ppl]
-\definefontsynonym [Symbol] [psy]
-\definefontsynonym [Univers] [pun]
-\definefontsynonym [Utopia] [put]
-\definefontsynonym [ZapfChancery] [pzc]
-\definefontsynonym [ZapfDingbats] [pzd]
+\definefontsynonym [Palatino-Roman] [uplr8r] [encoding=ec]
+\definefontsynonym [Palatino-Italic] [uplri8r] [encoding=ec]
+\definefontsynonym [Palatino-Slanted] [uplro8r] [encoding=ec]
+\definefontsynonym [Palatino-Bold] [uplb8r] [encoding=ec]
+\definefontsynonym [Palatino-BoldItalic] [uplbi8r] [encoding=ec]
+\definefontsynonym [Palatino-BoldSlanted] [uplbo8r] [encoding=ec]
+\definefontsynonym [AvantGarde] [pag]
+\definefontsynonym [BookmanLight] [pbk]
+\definefontsynonym [CentaurMT] [pur]
+\definefontsynonym [Garamond] [pgm]
+\definefontsynonym [GillSans] [pgs]
+\definefontsynonym [NewBaskerville] [pnb]
+\definefontsynonym [Optima] [pop]
+\definefontsynonym [Palatino] [ppl]
+\definefontsynonym [Symbol] [psy]
+\definefontsynonym [Univers] [pun]
+\definefontsynonym [Utopia] [put]
+\definefontsynonym [ZapfChancery] [pzc]
+\definefontsynonym [ZapfDingbats] [pzd]
+
\endinput
diff --git a/tex/context/base/font-chi.tex b/tex/context/base/font-chi.tex
index 25fafaa82..9c2d8d5ce 100644
--- a/tex/context/base/font-chi.tex
+++ b/tex/context/base/font-chi.tex
@@ -1,18 +1,3 @@
-% still to be implemented:
-%
-% - columns left right touch
-% - distance = (hsize-n*bodyfontsize)/(n-1)
-% - char grids
-% - char tables
-% - all kind of rotated combinations
-% - hanging puctuation
-% - a few more encodings
-% - rotation list
-%
-% currently under testing: big5
-%
-% misschien een andere suffix: tux of tuc
-
%D \module
%D [ file=font-chi,
%D version=1999.10.10,
@@ -29,6 +14,19 @@
\writestatus{loading}{Context Font Macros / Chinese}
+%D Still to be implemented:
+%D
+%D \startopsomming
+%D \som columns left right touch
+%D \som distance = (hsize-n*bodyfontsize)/(n-1)
+%D \som char grids
+%D \som char tables
+%D \som all kind of rotated combinations
+%D \som hanging puctuation
+%D \som a few more encodings
+%D \som rotation list
+%D \stopopsomming
+
%M \stelkorpsin[chi]
%M
%M \def\WangLei%
@@ -475,22 +473,22 @@
%D \def\DoIt #1 #2 %
%D {\hbox{\hbox to 2em{\uchar{#1}{#2}\hss}#1 #2}\par}
%D
-%D \startcolumns[n=5]
+%D \startkolommen[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 \stopkolommen
%D
%D A linebreak is not permitted after the following glyphs:
%D
-%D \startcolumns[n=5]
+%D \startkolommen[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 \stopkolommen
%D \macros
%D {tracechinesetrue, showchinesetracelegend}
@@ -504,7 +502,8 @@
\newif\iftracechinese
\def\showchinesetracelegend%
- {\starttabulate[|c|l|l|l|]
+ {\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
@@ -512,7 +511,7 @@
\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
- \stoptabulate}
+ \stopdummy}
\def\tracedchineseglyph%
{\leavevmode
@@ -635,8 +634,24 @@
% \fi\fi\fi\fi\fi\fi}
% \stoptypen
+%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. For the moment this method works ok.
+%D With \type {\capstyle} one can switch to those capitalized
+%D digits.
+
+\def\enablechinesecapdigits%
+ {\def\chinesedigitsuffix{*}}
+
+\def\disablechinesecapdigits%
+ {\let\chinesedigitsuffix\empty}
+
+\disablechinesecapdigits
+
+\let\capstyle\enablechinesecapdigits
+
\def\chinesedigit#1%
- {\udigit{\chineseencoding}{\number#1}}
+ {\udigit{\chineseencoding}{\number#1\chinesedigitsuffix}}
\def\chinesenumber#1%
{\expandafter\dochinesenumber\number#1\relax}
@@ -718,11 +733,11 @@
\chinesedigit{100000000}%
\dododochinesenumber#3\relax}
-%D The next gtable demonstates the correctness of the
+%D The next table demonstates the correctness of the
%D conversion macro.
%D
-%D \starybuffer
-%D \starttable[|l|l|l|l|l|l|]
+%D \startbuffer
+%D \starttabel[|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
@@ -755,10 +770,10 @@
%D \NC 1111111111 \NC \chinesenumber{1111111111} \NC ʮһÒÚһǧһ°ÙһʮһÍòһǧһ°Ùһʮһ \NC
%D 1000000000 \NC \chinesenumber{1000000000} \NC Ê®ÒÚ \NC\LR
%D \HL
-%D \stoptable
+%D \stoptabel
%D \stopbuffer
%D
-%D \plaatstabel{Some Chinese number examples.}{\getbuffer}
+%D \plaatstabel{Some Chinese number examples.}{\haalbuffer}
%D Although the conversion can be hooked into most commands
%D that deal with numbers |<|those familiar with \TEX\ macro
@@ -806,6 +821,8 @@
%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
@@ -887,38 +904,38 @@
%D Now it's time for some real Chinese. This example
%D also shows that font switching is supported.
%D
-%D \startnarrower
-%D \midalligned{\bfb Ë®µ÷¸èÍ·}
-%D \blank
-%D \midaligned{\sl ±û³½ÖÐÇ»¶Òû´ïµ©£¬´ó×í×÷´Ëƪ£¬¼æ»³×ÓÓÉ¡£}
-%D \blank
-%D \midaligned{\bs ËÕéø}
-%D \blank
+%D \startsmaller
+%D \regelmidden{\tfd Ë®µ÷¸èÍ·}
+%D \blanko
+%D \regelmidden{\tfb ±û³½ÖÐÇ»¶Òû´ïµ©£¬´ó×í×÷´Ëƪ£¬¼æ»³×ÓÓÉ¡£}
+%D \blanko
+%D \regelmidden{\tfb ËÕéø}
+%D \blanko
%D Ã÷Ô¼¸Ê±ÓУ¿°Ñ¾ÆÎÊÇàÌì¡£²»ÖªÌìÉϹ¬ãÚ£¬½ñϦÊǺÎÄꣿÎÒÓû³Ë·ç¹éÈ¥
%D £¬ÓÖ¿ÖÇíÂ¥ÓñÓ¸ß´¦²»Ê¤º®¡£ÆðÎèŪÇåÓ°£¬ºÎËÆÔÚÈ˼䣿
-%D \blank
+%D \blanko
%D תÖì¸ó£¬µÍ»§£¬ÕÕÎÞÃß¡£²»Ó¦Óкޣ¬ºÎÊÂÆ«Ïò±ðʱԲ£¿ÈËÓб¯»¶ÀëºÏ£¬
%D ÔÂÓÐÒõÇçԲȱ£¬´ËʹÅÄÑÈ«¡£µ«Ô¸È˳¤¾Ã£¬Ç§Àﹲ濾ꡣ
-%D \stopnarrower
+%D \stopsmaller
%D
%D The english translation is:
%D
-%D \startnarrower
-%D \midaligned{\slb Tune: Prelude to the Melody of Water}
-%D \blank
-%D \midaligned{\sl On the night of the Mid||Autumn Festival of
+%D \startsmaller
+%D \regelmidden{\tfd Tune: Prelude to the Melody of Water}
+%D \blanko
+%D \regelmidden{\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{\bf Su Shi}
-%D \blank
+%D \blanko
+%D \regelmidden{\tfb Su Shi}
+%D \blanko
%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 \blanko
%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
@@ -928,7 +945,7 @@
%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 \stopsmaller
%D This package is written in the city of Hasselt, a pretty
%D small town in the |<|compare to China real small|>|
diff --git a/tex/context/base/font-cmr.tex b/tex/context/base/font-cmr.tex
index 8927b08f2..eccc2c1cb 100644
--- a/tex/context/base/font-cmr.tex
+++ b/tex/context/base/font-cmr.tex
@@ -52,7 +52,7 @@
\definefontsynonym [Fraktur] [eufm10]
\definefontsynonym [Gothic] [eufm10]
-\definefontsynonym [Caligraphic] [cmsy10]
+\definefontsynonym [Calligraphic] [cmsy10]
%D What follows next is the main definition part.
@@ -450,6 +450,10 @@
bfb=cmbx10 scaled \magstep2,
bfc=cmbx10 scaled \magstep3,
bfd=cmbx10 scaled \magstep4,
+ ita=cmti10 scaled \magstep1,
+ itb=cmti10 scaled \magstep2,
+ itc=cmti10 scaled \magstep3,
+ itd=cmti10 scaled \magstep4,
sla=cmsl10 scaled \magstep1,
slb=cmsl10 scaled \magstep2,
slc=cmsl10 scaled \magstep3,
diff --git a/tex/context/base/font-fil.tex b/tex/context/base/font-fil.tex
index 3a71f9529..9daebf9fc 100644
--- a/tex/context/base/font-fil.tex
+++ b/tex/context/base/font-fil.tex
@@ -11,105 +11,98 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\definefontsynonym [ComputerModern] [cmr10]
-\definefontsynonym [ComputerModern-Bold] [cmbx10]
-\definefontsynonym [ComputerModern-Italic] [cmti10]
-\definefontsynonym [ComputerModern-Slanted] [cmsl10]
-\definefontsynonym [ComputerModern-BoldItalic] [cmbxti10]
-\definefontsynonym [ComputerModern-BoldSlanted] [cmbxsl10]
-\definefontsynonym [ComputerModern-Caps] [cmr10]
+\definefontsynonym [ComputerModern] [cmr10]
+\definefontsynonym [ComputerModern-Bold] [cmbx10]
+\definefontsynonym [ComputerModern-Italic] [cmti10]
+\definefontsynonym [ComputerModern-Slanted] [cmsl10]
+\definefontsynonym [ComputerModern-BoldItalic] [cmbxti10]
+\definefontsynonym [ComputerModern-BoldSlanted] [cmbxsl10]
+\definefontsynonym [ComputerModern-Caps] [cmr10]
-\definefontsynonym [ComputerModernSans] [cmss10]
-\definefontsynonym [ComputerModernSans-Bold] [cmssbx10]
-\definefontsynonym [ComputerModernSans-Italic] [cmssi10]
-\definefontsynonym [ComputerModernSans-Slanted] [cmssi10]
-\definefontsynonym [ComputerModernSans-BoldItalic] [cmssbx10]
-\definefontsynonym [ComputerModernSans-BoldSlanted] [cmssbx10]
-\definefontsynonym [ComputerModernSans-Caps] [cmss10]
+\definefontsynonym [ComputerModernSans] [cmss10]
+\definefontsynonym [ComputerModernSans-Bold] [cmssbx10]
+\definefontsynonym [ComputerModernSans-Italic] [cmssi10]
+\definefontsynonym [ComputerModernSans-Slanted] [cmssi10]
+\definefontsynonym [ComputerModernSans-BoldItalic] [cmssbx10]
+\definefontsynonym [ComputerModernSans-BoldSlanted] [cmssbx10]
+\definefontsynonym [ComputerModernSans-Caps] [cmss10]
+
+\definefontsynonym [ComputerModernMono] [cmtt10]
+\definefontsynonym [ComputerModernMono-Bold] [cmtt10]
+\definefontsynonym [ComputerModernMono-Italic] [cmitt10]
+\definefontsynonym [ComputerModernMono-Slanted] [cmsltt10]
+\definefontsynonym [ComputerModernMono-BoldItalic] [cmtt10]
+\definefontsynonym [ComputerModernMono-BoldSlanted] [cmtt10]
+\definefontsynonym [ComputerModernMono-Caps] [cmtt10]
-\definefontsynonym [ComputerModernMono] [cmtt10]
-\definefontsynonym [ComputerModernMono-Bold] [cmtt10]
-\definefontsynonym [ComputerModernMono-Italic] [cmitt10]
-\definefontsynonym [ComputerModernMono-Slanted] [cmsltt10]
-\definefontsynonym [ComputerModernMono-BoldItalic] [cmtt10]
-\definefontsynonym [ComputerModernMono-BoldSlanted] [cmtt10]
-\definefontsynonym [ComputerModernMono-Caps] [cmtt10]
+\definefontsynonym [ComputerModernMath-Roman] [cmr10]
+\definefontsynonym [ComputerModernMath-Extension] [cmex10]
+\definefontsynonym [ComputerModernMath-Italic] [cmmi10]
+\definefontsynonym [ComputerModernMath-Symbol] [cmsy10]
-\definefontsynonym [ComputerModernMath-Roman] [cmr10]
-\definefontsynonym [ComputerModernMath-Extension] [cmex10]
-\definefontsynonym [ComputerModernMath-Italic] [cmmi10]
-\definefontsynonym [ComputerModernMath-Symbol] [cmsy10]
+\definefontsynonym [Courier] [com] [encoding=texnansi]
+\definefontsynonym [Courier-Oblique] [coo] [encoding=texnansi]
+\definefontsynonym [Courier-Bold] [cob] [encoding=texnansi]
+\definefontsynonym [Courier-BoldOblique] [cobo] [encoding=texnansi]
-\definefontsynonym [Courier] [com] [encoding=texnansi]
-\definefontsynonym [Courier-Oblique] [coo] [encoding=texnansi]
-\definefontsynonym [Courier-Bold] [cob] [encoding=texnansi]
-\definefontsynonym [Courier-BoldOblique] [cobo] [encoding=texnansi]
+\definefontsynonym [Helvetica] [hv] [encoding=texnansi]
+\definefontsynonym [Helvetica-Oblique] [hvo] [encoding=texnansi]
+\definefontsynonym [Helvetica-Bold] [hvb] [encoding=texnansi]
+\definefontsynonym [Helvetica-BoldOblique] [hvbo] [encoding=texnansi]
-\definefontsynonym [Helvetica] [hv] [encoding=texnansi]
-\definefontsynonym [Helvetica-Oblique] [hvo] [encoding=texnansi]
-\definefontsynonym [Helvetica-Bold] [hvb] [encoding=texnansi]
-\definefontsynonym [Helvetica-BoldOblique] [hvbo] [encoding=texnansi]
+\definefontsynonym [Times-Roman] [tir] [encoding=texnansi]
+\definefontsynonym [Times-Italic] [tii] [encoding=texnansi]
+\definefontsynonym [Times-Bold] [tib] [encoding=texnansi]
+\definefontsynonym [Times-BoldItalic] [tibi] [encoding=texnansi]
-\definefontsynonym [Times-Roman] [tir] [encoding=texnansi]
-\definefontsynonym [Times-Italic] [tii] [encoding=texnansi]
-\definefontsynonym [Times-Bold] [tib] [encoding=texnansi]
-\definefontsynonym [Times-BoldItalic] [tibi] [encoding=texnansi]
-
-\definefontsynonym [LucidaBlackletter] [lbl] [encoding=texnansi]
-\definefontsynonym [LucidaBright] [lbr] [encoding=texnansi]
-\definefontsynonym [LucidaBright-Demi] [lbd] [encoding=texnansi]
-\definefontsynonym [LucidaBright-DemiItalic] [lbdi] [encoding=texnansi]
-\definefontsynonym [LucidaBright-Italic] [lbi] [encoding=texnansi]
-\definefontsynonym [LucidaBrightSmallcaps] [lbrsc] [encoding=texnansi]
-\definefontsynonym [LucidaBrightSmallcaps-Demi] [lbdsc] [encoding=texnansi]
-\definefontsynonym [LucidaBright-Oblique] [lbsl] [encoding=texnansi]
-\definefontsynonym [LucidaCalligraphy-Italic] [lbc] [encoding=texnansi]
-\definefontsynonym [LucidaCasual] [lbkr] [encoding=texnansi]
-\definefontsynonym [LucidaCasual-Italic] [lbki] [encoding=texnansi]
-\definefontsynonym [LucidaFax] [lfr] [encoding=texnansi]
-\definefontsynonym [LucidaFax-Demi] [lfd] [encoding=texnansi]
-\definefontsynonym [LucidaFax-DemiItalic] [lfdi] [encoding=texnansi]
-\definefontsynonym [LucidaFax-Italic] [lfi] [encoding=texnansi]
-\definefontsynonym [LucidaHandwriting-Italic] [lbh] [encoding=texnansi]
-\definefontsynonym [LucidaSans] [lsr] [encoding=texnansi]
-\definefontsynonym [LucidaSans-Demi] [lsd] [encoding=texnansi]
-\definefontsynonym [LucidaSans-DemiItalic] [lsdi] [encoding=texnansi]
-\definefontsynonym [LucidaSans-Italic] [lsi] [encoding=texnansi]
-\definefontsynonym [LucidaSans-Bold] [lsb] [encoding=texnansi]
-\definefontsynonym [LucidaSans-BoldItalic] [lsbi] [encoding=texnansi]
-\definefontsynonym [LucidaSans-Typewriter] [lstr] [encoding=texnansi]
-\definefontsynonym [LucidaSans-TypewriterBold] [lstb] [encoding=texnansi]
-\definefontsynonym [LucidaSans-TypewriterBoldOblique] [lstbo] [encoding=texnansi]
-\definefontsynonym [LucidaSans-TypewriterOblique] [lsto] [encoding=texnansi]
-\definefontsynonym [LucidaTypewriter] [lbtr] [encoding=texnansi]
-\definefontsynonym [LucidaTypewriterBold] [lbtb] [encoding=texnansi]
-\definefontsynonym [LucidaTypewriterBoldOblique] [lbtbo] [encoding=texnansi]
-\definefontsynonym [LucidaTypewriterOblique] [lbto] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-AltDemiItalic] [lbmdo] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-AltItalic] [lbmo] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Arrows] [lbma] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Arrows-Demi] [lbmad] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Extension] [lbme] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Roman] [lbmr] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Demibold] [lbmd] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-DemiItalic] [lbmdi] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Italic] [lbmi] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Symbol] [lbms] [encoding=texnansi]
-\definefontsynonym [LucidaNewMath-Symbol-Demi] [lbmsd] [encoding=texnansi]
+\definefontsynonym [LucidaBlackletter] [lbl] [encoding=texnansi]
+\definefontsynonym [LucidaBright] [lbr] [encoding=texnansi]
+\definefontsynonym [LucidaBright-Demi] [lbd] [encoding=texnansi]
+\definefontsynonym [LucidaBright-DemiItalic] [lbdi] [encoding=texnansi]
+\definefontsynonym [LucidaBright-Italic] [lbi] [encoding=texnansi]
+\definefontsynonym [LucidaBrightSmallcaps] [lbrsc] [encoding=texnansi]
+\definefontsynonym [LucidaBrightSmallcaps-Demi] [lbdsc] [encoding=texnansi]
+\definefontsynonym [LucidaBright-Oblique] [lbsl] [encoding=texnansi]
+\definefontsynonym [LucidaCalligraphy-Italic] [lbc] [encoding=texnansi]
+\definefontsynonym [LucidaCasual] [lbkr] [encoding=texnansi]
+\definefontsynonym [LucidaCasual-Italic] [lbki] [encoding=texnansi]
+\definefontsynonym [LucidaFax] [lfr] [encoding=texnansi]
+\definefontsynonym [LucidaFax-Demi] [lfd] [encoding=texnansi]
+\definefontsynonym [LucidaFax-DemiItalic] [lfdi] [encoding=texnansi]
+\definefontsynonym [LucidaFax-Italic] [lfi] [encoding=texnansi]
+\definefontsynonym [LucidaHandwriting-Italic] [lbh] [encoding=texnansi]
+\definefontsynonym [LucidaSans] [lsr] [encoding=texnansi]
+\definefontsynonym [LucidaSans-Demi] [lsd] [encoding=texnansi]
+\definefontsynonym [LucidaSans-DemiItalic] [lsdi] [encoding=texnansi]
+\definefontsynonym [LucidaSans-Italic] [lsi] [encoding=texnansi]
+\definefontsynonym [LucidaSans-Bold] [lsb] [encoding=texnansi]
+\definefontsynonym [LucidaSans-BoldItalic] [lsbi] [encoding=texnansi]
+\definefontsynonym [LucidaSans-Typewriter] [lstr] [encoding=texnansi]
+\definefontsynonym [LucidaSans-TypewriterBold] [lstb] [encoding=texnansi]
+\definefontsynonym [LucidaSans-TypewriterBoldOblique] [lstbo] [encoding=texnansi]
+\definefontsynonym [LucidaSans-TypewriterOblique] [lsto] [encoding=texnansi]
+\definefontsynonym [LucidaTypewriter] [lbtr] [encoding=texnansi]
+\definefontsynonym [LucidaTypewriterBold] [lbtb] [encoding=texnansi]
+\definefontsynonym [LucidaTypewriterBoldOblique] [lbtbo] [encoding=texnansi]
+\definefontsynonym [LucidaTypewriterOblique] [lbto] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-AltDemiItalic] [lbmdo] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-AltItalic] [lbmo] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-Arrows] [lbma] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-Arrows-Demi] [lbmad] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-Extension] [lbme] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-Roman] [lbmr] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-Demibold] [lbmd] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-DemiItalic] [lbmdi] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-Italic] [lbmi] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-Symbol] [lbms] [encoding=texnansi]
+\definefontsynonym [LucidaNewMath-Symbol-Demi] [lbmsd] [encoding=texnansi]
-\definefontsynonym [AntykwaTorunska-Bold] [anttb]
-\definefontsynonym [AntykwaTorunska-Regular] [anttr]
-\definefontsynonym [AntykwaTorunska-Italic] [anttri]
-
-\definefontsynonym [AntykwaTorunska-Regular] [zatr8t]
-[encoding=ec]
-\definefontsynonym [AntykwaTorunska-Italic] [zatri8t]
-[encoding=ec]
-\definefontsynonym [AntykwaTorunska-Bold] [zatb8t]
-[encoding=ec]
+\definefontsynonym [AntykwaTorunska-Bold] [anttb] [encoding=texnansi]
+\definefontsynonym [AntykwaTorunska-Regular] [anttr] [encoding=texnansi]
+\definefontsynonym [AntykwaTorunska-Italic] [anttri] [encoding=texnansi]
-\definefontsynonym [ContextNavigation] [contnav]
+\definefontsynonym [ContextNavigation] [contnav]
-\definefontsynonym [RalfSmithFormalScript] [rsfs10]
+\definefontsynonym [RalfSmithFormalScript] [rsfs10]
\endinput
diff --git a/tex/context/base/font-ini.tex b/tex/context/base/font-ini.tex
index 61ee1b90b..258c60125 100644
--- a/tex/context/base/font-ini.tex
+++ b/tex/context/base/font-ini.tex
@@ -888,8 +888,15 @@
\def\definefont%
{\dodoubleargument\dodefinefont}
+% \def\dodefinefont[#1][#2]%
+% {\unexpanded\setvalue{#1}{\dododefinefont{#1}#2 sa sa*}}
+%
+% A more friendly version, which defaults to \type {sa 1} is:
+
\def\dodefinefont[#1][#2]%
- {\unexpanded\setvalue{#1}{\dododefinefont{#1}#2 sa sa*}}
+ {\doifinstringelse{ }{#2}
+ {\unexpanded\setvalue{#1}{\dododefinefont{#1}#2 sa sa*}}
+ {\dodefinefont[#1][#2 sa 1]}}
\def\dododefinefont#1#2sa #3sa#4*%
{\edef\fontscale{#3}%
@@ -986,7 +993,7 @@
\endTEX
-\beginETEX
+\beginETEX \ifcsname
\def\currentfontscale%
{\ifcsname\??ft\s!default\xfontsize\endcsname
@@ -2198,22 +2205,22 @@
%D On behalf of {\frac Tobias Burnus}, we define some more of
%D these:
-\definefont [frak] [Fraktur sa \currentfontscale]
-\definefont [goth] [Gothic sa \currentfontscale]
-\definefont [cal] [Caligraphic sa \currentfontscale]
+\definefont [frak] [Fraktur sa \currentfontscale]
+\definefont [goth] [Gothic sa \currentfontscale]
+\definefont [cal] [Calligraphic sa \currentfontscale]
-\definefontsynonym [Fraktur] [Serif]
-\definefontsynonym [Gothic] [Serif]
-\definefontsynonym [Caligraphic] [Serif]
+\definefontsynonym [Fraktur] [Serif]
+\definefontsynonym [Gothic] [Serif]
+\definefontsynonym [Calligraphic] [Serif]
%D \macros
-%D {fraktur, gothic, caligraphic}
+%D {fraktur, gothic, calligraphic}
%D
%D For Tobias and friends:
-\def\fraktur #1{\ifmmode\hbox\fi{\frak#1}}
-\def\gothic #1{\ifmmode\hbox\fi{\goth#1}}
-\def\caligraphic#1{\ifmmode\hbox\fi{\cal #1}}
+\def\fraktur #1{\ifmmode\hbox\fi{\frak#1}}
+\def\gothic #1{\ifmmode\hbox\fi{\goth#1}}
+\def\calligraphic#1{\ifmmode\hbox\fi{\cal #1}}
%D In \type {font-cmr} we will link these to real file names.
@@ -2249,7 +2256,7 @@
%D system calls and are defined by the bodyfontenvironment.
\def\setsmallbodyfont%
- {\doswitchpoints[\getvalue{\??ft\normalizedbodyfontsize\v!klein}]%
+ {\doswitchpoints[\getvalue{\??ft\normalizedbodyfontsize\interfaced\v!klein}]%
\doswitchstyle[\fontstyle]}
\def\setmainbodyfont%
@@ -2462,7 +2469,8 @@
\newconditional\emneeded
\unexpanded\def\em%
- {\ifdim\fontdimen1\font>\!!zeropoint\relax
+ {\relax
+ \ifdim\fontdimen1\font>\!!zeropoint\relax
\settrue\emneeded
\else
\setfalse\emneeded
@@ -2494,7 +2502,8 @@
{\let\normalbf\bf
\let\setemphasisboldface\relax
\def\bf%
- {\ifnum\fam=\itfam
+ {\relax
+ \ifnum\fam=\itfam
\bi
\else\ifnum\fam=\slfam
\bs
@@ -2667,15 +2676,15 @@
\doifelsenothing{#1}
{\def\title{\the\korpsgrootte}}
{\switchtobodyfont[#1]\def\title{#1}}
- \def\do##1##2%
- {\getvalue{\??ft##1##2}}
- \def\next##1##2%
- {&&##1{##2}{\s!text}&&##1{##2}{\s!script}&&##1{##2}{\s!scriptscript}%
- &&##1{##2}{\c!x}&&##1{##2}{\c!xx}%
- &&##1{##2}{\v!klein}&&##1{##2}{\v!groot}&\cr
+ \def\next##1%
+ {&&\getvalue{\??ft##1\s!text}%
+ &&\getvalue{\??ft##1\s!script}%
+ &&\getvalue{\??ft##1\s!scriptscript}%
+ &&\getvalue{\??ft##1\c!x}%
+ &&\getvalue{\??ft##1\c!xx}%
+ &&\getvalue{\??ft##1\interfaced{\v!klein}}%
+ &&\getvalue{\??ft##1\interfaced{\v!groot}}&\cr
\noalign{\hrule}}
- \def\donext##1%
- {\doifdefined{\??ft##1\s!text}{\next\do{##1}}}
\setlocalhsize
\halign to \localhsize
{##&\vrule##\strut
@@ -2687,8 +2696,10 @@
\noalign{\hrule}
&\multispan{15}{\vrule\hfil\tttf\strut[\title]\hfil}\vrule\cr
\noalign{\hrule}
- \next\bf\relax
- \@EA\globalprocesscommalist\@EA[\bodyfontenvironmentlist]\donext}}
+ &&\bf\s!text&&\bf\s!script&&\bf\s!scriptscript
+ &&\bf\c!x&&\bf\c!xx&&\bf\v!klein&&\bf\v!groot&\cr
+ \noalign{\hrule}
+ \@EA\globalprocesscommalist\@EA[\bodyfontenvironmentlist]\next}}
\stopbaselinecorrection}
%D \macros
@@ -2704,13 +2715,16 @@
%D as one can see, it does obey the small and even smaller
%D sizes.
+% \def\getglyph#1#2%
+% {{\ifcase\currentxfontsize\or
+% \bodyfontsize=\getvalue{\??ft\normalizedbodyfontsize\c!x}%
+% \else
+% \bodyfontsize=\getvalue{\??ft\normalizedbodyfontsize\c!xx}%
+% \fi
+% \font\temp=\truefontname{#1} at \bodyfontsize \temp#2\relax}}
+
\def\getglyph#1#2%
- {{\ifcase\currentxfontsize\or
- \bodyfontsize=\getvalue{\??ft\normalizedbodyfontsize\c!x}%
- \else
- \bodyfontsize=\getvalue{\??ft\normalizedbodyfontsize\c!xx}%
- \fi
- \font\temp=\truefontname{#1} at \bodyfontsize \temp#2\relax}}
+ {{\definefont[\s!dummy][#1 sa \currentfontscale]\dummy#2}}
%D Fonts can only be used when loaded. In \CONTEXT\ we
%D postpone the loading of fonts, even when we load \PLAIN.
@@ -2756,14 +2770,15 @@
\let\setplainfonts=\undefined
%D \macros
-%D {ss, SS}
+%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} insead of
%D \type{\ss} in the first place.
-\let\SS=\ss
+\ifx\undefined\SS \let\SS=\ss \fi
+\ifx\undefined\sz \let\sz=\ss \fi
%D \macros
%D {xi}
@@ -2903,6 +2918,26 @@
\c!em=\v!schuin]
\definebodyfontenvironment
+ [20.7pt]
+ [ \s!text=20.7pt,
+ \s!script=\!!fourteenpointfour,
+ \s!scriptscript=\!!twelvepoint,
+ \c!x=17.3pt,
+ \c!xx=\!!fourteenpointfour,
+ \c!groot=20.7pt, % !!!!
+ \c!klein=17.3pt]
+
+\definebodyfontenvironment
+ [17.3pt]
+ [ \s!text=17.3pt,
+ \s!script=\!!twelvepoint,
+ \s!scriptscript=\!!tenpoint,
+ \c!x=\!!fourteenpointfour,
+ \c!xx=\!!twelvepoint,
+ \c!groot=20.7pt,
+ \c!klein=\!!fourteenpointfour]
+
+\definebodyfontenvironment
[\!!fourteenpointfour]
[ \s!text=\!!fourteenpointfour,
\s!script=\!!elevenpoint,
@@ -3021,39 +3056,6 @@
\definebodyfontswitch [vii] [\!!sevenpoint]
\definebodyfontswitch [vi] [\!!sixpoint]
-%D Well, why not define a few more big ones. Nowadays memory
-%D is not so much a problem any more.
-
-\definebodyfontenvironment
- [14.4pt]
- [ \s!text=14.4pt,
- \s!script=11pt,
- \s!scriptscript=9pt,
- \c!x=12pt,
- \c!xx=10pt,
- \c!groot=17.3pt,
- \c!klein=12pt]
-
-\definebodyfontenvironment
- [17.3pt]
- [ \s!text=17.3pt,
- \s!script=12pt,
- \s!scriptscript=10pt,
- \c!x=14.4pt,
- \c!xx=12pt,
- \c!groot=20.7pt,
- \c!klein=14.4pt]
-
-\definebodyfontenvironment
- [20.7pt]
- [ \s!text=20.7pt,
- \s!script=14.4pt,
- \s!scriptscript=12pt,
- \c!x=17.3pt,
- \c!xx=14.4pt,
- \c!groot=20.7pt, % !!!!
- \c!klein=17.3pt]
-
%D So far.
\definefontstyle [\c!rm,\v!roman,\v!serif,\v!regular] [\c!rm]
diff --git a/tex/context/base/font-map.tex b/tex/context/base/font-map.tex
index fcdeca0d8..a124f63b9 100644
--- a/tex/context/base/font-map.tex
+++ b/tex/context/base/font-map.tex
@@ -8,7 +8,7 @@
%D copyright=NTG Maps]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C therefore copyrighted by \PRAGMA. See licen-en.pdf for
%C details.
\startnotmode[localfonts]
diff --git a/tex/context/base/font-ppl.tex b/tex/context/base/font-ppl.tex
new file mode 100644
index 000000000..9bd34ba35
--- /dev/null
+++ b/tex/context/base/font-ppl.tex
@@ -0,0 +1,26 @@
+%D \module
+%D [ file=font-ppl,
+%D version=2000.3.17,
+%D title=\CONTEXT\ Font Macros,
+%D subtitle=Palatino,
+%D author=J. Hagen,
+%D date=\currentdate,
+%D copyright=J. 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 file load the Palatino.
+
+\definefontsynonym [Serif] [Palatino-Roman]
+\definefontsynonym [SerifBold] [Palatino-Bold]
+\definefontsynonym [SerifItalic] [Palatino-Italic]
+\definefontsynonym [SerifSlanted] [Palatino-Slanted]
+\definefontsynonym [SerifBoldItalic] [Palatino-BoldItalic]
+\definefontsynonym [SerifBoldSlanted] [Palatino-BoldSlanted]
+\definefontsynonym [SerifCaps] [Palatino-Roman]
+
+\definebodyfont [14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt] [rm] [default]
+
+\endinput
diff --git a/tex/context/base/font-uni.tex b/tex/context/base/font-uni.tex
index 8f0a0bfbd..800a45235 100644
--- a/tex/context/base/font-uni.tex
+++ b/tex/context/base/font-uni.tex
@@ -144,11 +144,6 @@
\handleunicodeglyph
\egroup}
-\unexpanded\def\uc#1#2% used in tricky situations
- {\bgroup
- \edef\unicodeone{#1}%
- \afterassignment\dohandleunicodeflowglyph\chardef\nexttoken}
-
\unexpanded\def\uchar#1#2% use as standalone glyph
{\bgroup
\let\nextglyph\relax
@@ -157,6 +152,17 @@
\unicodeposition=\unicodeone\unicodetwo\relax
\handleunicodeglyph
\egroup}
+
+\def\dohandleucflowglyph%
+ {\unicodeposition=\unicodeone\unicodetwo\relax
+ \handleunicodeglyph
+ \egroup}
+
+\unexpanded\def\uc#1#2% used in tricky situations
+ {\bgroup
+ \edef\unicodeone{#1}%
+ \edef\unicodetwo{#2}%
+ \futurelet\nextglyph\dohandleucflowglyph}
% Alternative, handles [char >127]{number} too.
%
diff --git a/tex/context/base/java-ini.tex b/tex/context/base/java-ini.tex
index 885292578..d3c4aff0b 100644
--- a/tex/context/base/java-ini.tex
+++ b/tex/context/base/java-ini.tex
@@ -442,7 +442,7 @@
\fi\fi
\fi\fi}
-\def\finalflushJSpreamble%
+\def\finalflushJSpreamble% kan direct in \everylastshipout, testen
{\iflocation
\flushJSpreamble
\ifcase\currentJSpreamble\relax\else
@@ -452,7 +452,7 @@
\fi}
\prependtoks \flushJSpreamble \to \everyshipout
-\prependtoks \finalflushJSpreamble \to \everylastshipout
+\prependtoks \finalflushJSpreamble \to \everylastshipout
%D \macros
%D {doPSsanitizeJScode}
diff --git a/tex/context/base/lang-alt.tex b/tex/context/base/lang-alt.tex
index beb746f33..e721219ae 100644
--- a/tex/context/base/lang-alt.tex
+++ b/tex/context/base/lang-alt.tex
@@ -37,28 +37,28 @@
\installlanguage [turkish] [\s!tr]
\setupheadtext [\s!tr] [\v!inhoud=Fihrist]
-\setupheadtext [\s!tr] [\v!tabellen=Cetrel..]
-\setupheadtext [\s!tr] [\v!figuren=Risim..]
-\setupheadtext [\s!tr] [\v!grafieken=Grafik..]
-\setupheadtext [\s!tr] [\v!intermezzos=Entermezzos]
-\setupheadtext [\s!tr] [\v!index=Endeks]
-\setupheadtext [\s!tr] [\v!afkortingen=K\i saltma..]
-\setupheadtext [\s!tr] [\v!logos=Logos]
-\setupheadtext [\s!tr] [\v!eenheden=Birlik]
+\setupheadtext [\s!tr] [\v!tabellen=Tablolar]
+\setupheadtext [\s!tr] [\v!figuren=\c{S}ekiller]
+\setupheadtext [\s!tr] [\v!grafieken=Grafikler]
+\setupheadtext [\s!tr] [\v!intermezzos=...]
+\setupheadtext [\s!tr] [\v!index=\.Index]
+\setupheadtext [\s!tr] [\v!afkortingen=K\i saltmalar]
+\setupheadtext [\s!tr] [\v!logos=Logolar]
+\setupheadtext [\s!tr] [\v!eenheden=Birimler]
-\setuplabeltext [\s!tr] [\v!tabel=Cetrel ]
-\setuplabeltext [\s!tr] [\v!figuur=Risim ]
-\setuplabeltext [\s!tr] [\v!intermezzo=Entermezzo ]
+\setuplabeltext [\s!tr] [\v!tabel=Tablo ]
+\setuplabeltext [\s!tr] [\v!figuur=\c{S}ekil ]
+\setuplabeltext [\s!tr] [\v!intermezzo=... ]
\setuplabeltext [\s!tr] [\v!grafiek=Grafik ]
-\setuplabeltext [\s!tr] [\v!hoofdstuk=]
-\setuplabeltext [\s!tr] [\v!paragraaf=]
-\setuplabeltext [\s!tr] [\v!sub\v!paragraaf=]
+\setuplabeltext [\s!tr] [\v!hoofdstuk=] % [\v!hoofdstuk=Konu ]
+\setuplabeltext [\s!tr] [\v!paragraaf=] % [\v!paragraaf=Paragraf ]
+\setuplabeltext [\s!tr] [\v!sub\v!paragraaf=] % [\c!sub\v!paragraaf=Altparagraf ]
\setuplabeltext [\s!tr] [\v!sub\v!sub\v!paragraaf=]
\setuplabeltext [\s!tr] [\v!sub\v!sub\v!sub\v!paragraaf=]
-\setuplabeltext [\s!tr] [\v!bijlage=]
-\setuplabeltext [\s!tr] [\v!deel=Fas\i l ]
+\setuplabeltext [\s!tr] [\v!bijlage=] % [\v!bijlage=Ek ]
+\setuplabeltext [\s!tr] [\v!deel=Cilt ]
\setuplabeltext [\s!tr] [\v!regel=sat\i r ]
-\setuplabeltext [\s!tr] [\v!regels=sat\i r ]
+\setuplabeltext [\s!tr] [\v!regels=sat\i rlar ]
\setuplabeltext [\s!tr] [\v!january=ocak]
\setuplabeltext [\s!tr] [\v!february=\c{s}ubat]
diff --git a/tex/context/base/lang-chi.tex b/tex/context/base/lang-chi.tex
index bb80bb249..31829073e 100644
--- a/tex/context/base/lang-chi.tex
+++ b/tex/context/base/lang-chi.tex
@@ -76,15 +76,54 @@
\startlanguagespecifics[\s!cn]
-\stelsectiein[\v!sectionlevel-1][\c!conversie=\s!chinese]
-\stelsectiein[\v!sectionlevel-2][\c!conversie=\s!chinese]
-\stelsectiein[\v!sectionlevel-3][\c!conversie=\s!chinese]
-\stelsectiein[\v!sectionlevel-4][\c!conversie=\s!chinese]
-\stelsectiein[\v!sectionlevel-5][\c!conversie=\s!chinese]
-\stelsectiein[\v!sectionlevel-6][\c!conversie=\s!chinese]
-\stelsectiein[\v!sectionlevel-7][\c!conversie=\s!chinese]
-
-% \stelblokkopjesin[\c!conversie=\s!chinese]
+\startencoding[gbk]
+
+\setuplabeltext [\s!cn] [\v!january=\uchar{210}{187}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!february=\uchar{182}{254}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!march=\uchar{200}{253}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!april=\uchar{203}{196}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!may=\uchar{206}{229}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!june=\uchar{193}{249}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!july=\uchar{198}{223}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!august=\uchar{176}{203}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!september=\uchar{190}{197}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!october=\uchar{202}{174}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!november=\uchar{202}{174}\uchar{210}{187}\uchar{212}{194}]
+\setuplabeltext [\s!cn] [\v!december=\uchar{202}{174}\uchar{182}{254}\uchar{212}{194}]
+
+\setuplabeltext [\s!cn] [\v!sunday=\uchar{208}{199}\uchar{198}{218}\uchar{200}{213}]
+\setuplabeltext [\s!cn] [\v!monday=\uchar{208}{199}\uchar{198}{218}\uchar{210}{187}]
+\setuplabeltext [\s!cn] [\v!tuesday=\uchar{208}{199}\uchar{198}{218}\uchar{182}{254}]
+\setuplabeltext [\s!cn] [\v!wednesday=\uchar{208}{199}\uchar{198}{218}\uchar{200}{253}]
+\setuplabeltext [\s!cn] [\v!thursday=\uchar{208}{199}\uchar{198}{218}\uchar{203}{196}]
+\setuplabeltext [\s!cn] [\v!friday=\uchar{208}{199}\uchar{198}{218}\uchar{206}{229}]
+\setuplabeltext [\s!cn] [\v!saturday=\uchar{208}{199}\uchar{198}{218}\uchar{193}{249}]
+\stopencoding
+
+\startencoding[big5]
+
+\setuplabeltext [\s!cn] [\v!january=\uchar{164} {64}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!february=\uchar{164} {71}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!march=\uchar{164} {84}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!april=\uchar{165}{124}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!may=\uchar{164}{173}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!june=\uchar{164}{187}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!july=\uchar{164} {67}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!august=\uchar{164} {75}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!september=\uchar{164} {69}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!october=\uchar{164} {81}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!november=\uchar{164} {81}\uchar{164} {64}\uchar{164}{235}]
+\setuplabeltext [\s!cn] [\v!december=\uchar{164} {81}\uchar{164} {71}\uchar{164}{235}]
+
+\setuplabeltext [\s!cn] [\v!sunday=\uchar{172} {80}\uchar{180}{193}\uchar{164}{233}]
+\setuplabeltext [\s!cn] [\v!monday=\uchar{172} {80}\uchar{180}{193}\uchar{164}{64}]
+\setuplabeltext [\s!cn] [\v!tuesday=\uchar{172} {80}\uchar{180}{193}\uchar{164}{71}]
+\setuplabeltext [\s!cn] [\v!wednesday=\uchar{172} {80}\uchar{180}{193}\uchar{164}{84}]
+\setuplabeltext [\s!cn] [\v!thursday=\uchar{172} {80}\uchar{180}{193}\uchar{165}{124}]
+\setuplabeltext [\s!cn] [\v!friday=\uchar{172} {80}\uchar{180}{193}\uchar{164}{173}]
+\setuplabeltext [\s!cn] [\v!saturday=\uchar{172} {80}\uchar{180}{193}\uchar{164}{187}]
+
+\stopencoding
\stoplanguagespecifics
diff --git a/tex/context/base/lang-ger.tex b/tex/context/base/lang-ger.tex
index 0281c164e..e539bdc70 100644
--- a/tex/context/base/lang-ger.tex
+++ b/tex/context/base/lang-ger.tex
@@ -223,7 +223,7 @@
\startencoding[pdfdoc]
\startlanguagespecifics[\s!de]% hm, a % is needed
- \defineactivecharacter " {\"}
+ \defineactivecharacter " {\"} % no {\simplifiedcompoundcharacter"}
\stoplanguagespecifics
\stopencoding
diff --git a/tex/context/base/lang-ini.tex b/tex/context/base/lang-ini.tex
index 8a15a3136..53b4f6e88 100644
--- a/tex/context/base/lang-ini.tex
+++ b/tex/context/base/lang-ini.tex
@@ -278,8 +278,12 @@
%D
%D \showsetup{\y!setuplanguage}
-\def\setuplanguage[#1]%
- {\dodoubleargument\getparameters[\??la#1]}
+\def\setuplanguage%
+ {\dodoubleargument\dosetuplanguage}
+
+\def\dosetuplanguage[#1][#2]%
+ {\getparameters[\??la#1][#2]% % we need to make sure
+ \doif{#1}{\currentlanguage}{\language[#1]}} % that settings apply
%D The values \type {\c!leftsentence} and \type
%D {\c!rightsentence} can be (and are) used to implement
@@ -385,8 +389,10 @@
% {\edef\currentmainlanguage{#1}} % We expand indeed!
\def\mainlanguage[#1]%
- {\@EA\let\@EA\currentmainlanguage\csname\l!prefix!#1\endcsname
- \language[#1]}
+ {\doifsomething{#1}
+ {\doifdefined{\l!prefix!#1}
+ {\@EA\let\@EA\currentmainlanguage\csname\l!prefix!#1\endcsname
+ \language[#1]}}}
%D \macros
%D {defaultlanguage,languagedefault}
@@ -542,13 +548,6 @@
\def\rightsubguillemot%
{\hbox{\raise.25ex\hbox{$\scriptscriptstyle>$}}}
-%D We enable proper substititutions by:
-
-\redefinecharacter leftguillemot
-\redefinecharacter rightguillemot
-\redefinecharacter leftsubguillemot
-\redefinecharacter rightsubguillemot
-
%D Just like with subsentence boundary symbols, quotes
%D placement depends on the current language, therefore we show
%D the defaults here.
diff --git a/tex/context/base/lang-sla.tex b/tex/context/base/lang-sla.tex
index 83b36e2ca..8df66aa90 100644
--- a/tex/context/base/lang-sla.tex
+++ b/tex/context/base/lang-sla.tex
@@ -230,7 +230,7 @@
\setuplabeltext [\s!pl] [\v!tabel=Tabela ]
\setuplabeltext [\s!cz] [\v!tabel=Tabulka ]
\setuplabeltext [\s!sk] [\v!tabel=Tabu\v{l}ka ]
-\setuplabeltext [\s!hr] [\v!tabel=Tablica ]
+\setuplabeltext [\s!hr] [\v!tabel=T\'abl\'azat ] % [\v!tabel=Tablica ]
\setuplabeltext [\s!pl] [\v!figuur=Ilustracja ]
\setuplabeltext [\s!cz] [\v!figuur=Obr\'azek ]
diff --git a/tex/context/base/m-chart.tex b/tex/context/base/m-chart.tex
index 481368416..7598da088 100644
--- a/tex/context/base/m-chart.tex
+++ b/tex/context/base/m-chart.tex
@@ -143,6 +143,7 @@
\c!focus=,
\c!achtergrond=, % \v!kleur,
\c!achtergrondkleur=white,
+ \c!lijndikte=\linewidth,
\c!kader=\v!uit,
\c!kaderkleur=]
@@ -465,44 +466,43 @@
\ifx\FLOWshape\empty
\global\let\FLOWshape\@@FLOSdefault
\fi
- \ifx\FLOWshape\v!geen \else
- \ExpandBothAfter\doifinsetelse{\FLOWshape}{\FLOWshapes}
- {\edef\FLOWshapetag{shape_\FLOWshape}%
- \@EA\setFLOWname\@EA\FLOWshapetag\@EA{\FLOWshapetag}}
- {\doifnumberelse{\FLOWshape}
- {\let\FLOWshapetag\FLOWshape}
- {\let\FLOWshapetag\empty}}%
- \ifx\FLOWshapetag\empty \else
- \ExpandBothAfter\doifinsetelse{\FLOWshape}{\FLOWlines}
- {\chardef\FLOWstate=0 }
- {\ExpandBothAfter\doifcommonelse{\FLOWcell,\FLOWfocus}{\@@FLOWfocus}
- {\chardef\FLOWstate=1 }
- {\chardef\FLOWstate=2 }}%
- \startMPdrawing
- begin_sub_chart ;
- \ifcase\FLOWstate
- shape_line_color := \MPcolor{\@@FLOLkleur} ;
- shape_fill_color := \MPcolor{\@@FLOLkleur} ;
- shape_line_width := \@@FLOLlijndikte ;
- \or
- shape_line_color := \MPcolor{\@@FLOFkaderkleur} ;
- shape_fill_color := \MPcolor{\@@FLOFachtergrondkleur} ;
- shape_line_width := \@@FLOFlijndikte ;
- \or
- shape_line_color := \MPcolor{\@@FLOSkaderkleur} ;
- shape_fill_color := \MPcolor{\@@FLOSachtergrondkleur} ;
- shape_line_width := \@@FLOSlijndikte ;
- \fi
- \ifx\FLOWoverlay\empty
- peepshape := false ;
- \else
- peepshape := true ;
- \fi
- new_shape(\FLOWlocation,\FLOWshapetag) ;
- end_sub_chart ;
- \stopMPdrawing
- \fi
- \fi
+ \doifnot{\FLOWshape}{\v!geen}
+ {\ExpandBothAfter\doifinsetelse{\FLOWshape}{\FLOWshapes}
+ {\edef\FLOWshapetag{shape_\FLOWshape}%
+ \@EA\setFLOWname\@EA\FLOWshapetag\@EA{\FLOWshapetag}}
+ {\doifnumberelse{\FLOWshape}
+ {\let\FLOWshapetag\FLOWshape}
+ {\let\FLOWshapetag\empty}}%
+ \ifx\FLOWshapetag\empty \else
+ \ExpandBothAfter\doifinsetelse{\FLOWshape}{\FLOWlines}
+ {\chardef\FLOWstate=0 }
+ {\ExpandBothAfter\doifcommonelse{\FLOWcell,\FLOWfocus}{\@@FLOWfocus}
+ {\chardef\FLOWstate=1 }
+ {\chardef\FLOWstate=2 }}%
+ \startMPdrawing
+ begin_sub_chart ;
+ \ifcase\FLOWstate
+ shape_line_color := \MPcolor{\@@FLOLkleur} ;
+ shape_fill_color := \MPcolor{\@@FLOLkleur} ;
+ shape_line_width := \@@FLOLlijndikte ;
+ \or
+ shape_line_color := \MPcolor{\@@FLOFkaderkleur} ;
+ shape_fill_color := \MPcolor{\@@FLOFachtergrondkleur} ;
+ shape_line_width := \@@FLOFlijndikte ;
+ \or
+ shape_line_color := \MPcolor{\@@FLOSkaderkleur} ;
+ shape_fill_color := \MPcolor{\@@FLOSachtergrondkleur} ;
+ shape_line_width := \@@FLOSlijndikte ;
+ \fi
+ \ifx\FLOWoverlay\empty
+ peepshape := false ;
+ \else
+ peepshape := true ;
+ \fi
+ new_shape(\FLOWlocation,\FLOWshapetag) ;
+ end_sub_chart ;
+ \stopMPdrawing
+ \fi}%
\ignorespaces}%
\haalbuffer[flw-\currentFLOWnumber]%
\long\def\startFLOWcell##1\stopFLOWcell%
@@ -555,7 +555,7 @@
\def\MPareapath##1##2##3##4%
{\def\areaMPllx{##1bp}\def\areaMPlly{##2bp}%
\def\areaMPurx{##3bp}\def\areaMPury{##4bp}}%
- \readfile{mpgraph.tmp}{}{}%
+ \readfile{\MPdatafile}{}{}%
\doglobal\newcounter\FLOWcomment
\long\def\startFLOWcell##1\stopFLOWcell%
{\resetFLOWcell
@@ -602,11 +602,9 @@
m=>{\setupframed[\c!uitlijnen=\v!midden]},
c=>{\setupframed[\c!uitlijnen=\v!midden]}]%
\fi
- \ifx\FLOWshape\v!geen
- \setupframed[\c!offset=\v!overlay]%
- \else
- \setupframed[\c!offset=.5\bodyfontsize]%
- \fi
+ \doifelse{\FLOWshape}{\v!geen}
+ {\setupframed[\c!offset=\v!overlay]}
+ {\setupframed[\c!offset=.5\bodyfontsize]}%
\framed
[\c!kader=\v!uit,\c!breedte=\FLOWshapewidth,\c!hoogte=\FLOWshapeheight]
{\FLOWtext}}%
@@ -782,17 +780,17 @@
\hfill}}}
\vfill}}}%
\wd8=\wd0\ht8=\ht0\dp8=\dp0
- \framed
+ \framed
[\c!offset=\v!overlay,\c!kaderkleur=green]
- {\hbox{\box4\hskip-\wd0 \raise1pt \box0\hskip-\wd2\box2\hskip-\wd6\box6\hskip-\wd8\box8}}}
+ {\hbox{\box4\hskip-\wd0\box0\hskip-\wd2\box2\hskip-\wd6\box6\hskip-\wd8\box8}}}
{\framed
[\c!offset=\v!overlay,
\c!kader=\@@FLOWkader,
+\c!lijndikte=\@@FLOWlijndikte,
\c!kaderkleur=\@@FLOWkaderkleur,
\c!achtergrond=\@@FLOWachtergrond,
\c!achtergrondkleur=\@@FLOWachtergrondkleur]
-% {\hbox{\box4\hskip-\wd0 \raise1pt \box0\hskip-\wd2\box2}}}% raise is a bug
- {\hbox{\box4\hskip-\wd0 \box0\hskip-\wd2\box2}}}%
+ {\hbox{\box4\hskip-\wd0\box0\hskip-\wd2\box2}}}%
%\message{[\FLOWcells]}\wait
\egroup}
diff --git a/tex/context/base/m-chemic.tex b/tex/context/base/m-chemic.tex
index f03dc4260..cfefdf83f 100644
--- a/tex/context/base/m-chemic.tex
+++ b/tex/context/base/m-chemic.tex
@@ -13,7 +13,13 @@
%C details.
\ifx\beginpicture\undefined
+ \let\normalgrid\grid
+ \let\normalaxis\axis
\input pictex.tex \relax
+ \let\pictexgrid\grid
+ \let\pictexaxis\axis
+ \let\grid\normalgrid
+ \let\axis\normalaxis
\fi
\input ppchtex.tex \relax
diff --git a/tex/context/base/m-pictex.tex b/tex/context/base/m-pictex.tex
index 182cdc027..ac74c1d6b 100644
--- a/tex/context/base/m-pictex.tex
+++ b/tex/context/base/m-pictex.tex
@@ -14,23 +14,36 @@
%D This module is one big hack. This hack is not needed when
%D using \ETEX, so there we simply load \PICTEX\ and quit.
-\ifx\eTeXversion\undefined \else
-
- \ifx\undefined\fiverm
- \font\fiverm=cmr5
- \fi
-
- \ifx\beginpicture\undefined
- \ifx\newenvironment\undefined
- \input pictex.tex \relax
- \else
- \input prepictex.tex \relax
- \input pictex.tex \relax
- \input postpictex.tex \relax
- \fi
- \fi
-
-\expandafter \endinput \fi
+%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
+ \input pictex.tex \relax
+ \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.
@@ -224,26 +237,9 @@
\input #1 \relax
\message{[after: d=\the\count11,s=\the\count12]}}%
-%D Not every package defines \type{\fiverm}, \PICTEX's pixel,
-%D so let's take care of that omision now:
-
-\ifx\undefined\fiverm
- \font\fiverm=cmr5
-\fi
-
-%D The actual loading of \PICTEX\ depends on the package.
-%D For \LATEX\ users we take care of loading the auxiliary
-%D ones too.
+%D Now we can load \PICTEX:
-\ifx\beginpicture\undefined
- \ifx\newenvironment\undefined
- \dimeninput pictex.tex \relax
- \else
- \dimeninput prepictex.tex \relax
- \dimeninput pictex.tex \relax
- \dimeninput postpictex.tex \relax
- \fi
-\fi
+\loadpictec
%D Finally we restore the old definitions of \type{\newdimen}
%D and \type{\newskip}:
diff --git a/tex/context/base/core-01a.tex b/tex/context/base/main-001.tex
index 17b8ea1e9..db1a16b4a 100644
--- a/tex/context/base/core-01a.tex
+++ b/tex/context/base/main-001.tex
@@ -1,5 +1,5 @@
%D \module
-%D [ file=core-01a,
+%D [ file=main-001,
%D version=1997.03.31,
%D title=\CONTEXT\ Core Macros,
%D subtitle=1A (to be split),
@@ -11,11 +11,15 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
+%D This module is still to be split and documented.
+
% nog oplossen: voetnoot setten ivm later veranderde
% witruimte; probleem: als lijn graphic
% The %I etc thing will be replaced by documentation. Some
% years ago they served as helpinfo blocks for our editor.
+
+\writestatus{loading}{Context Core Macros (1)}
\newevery \everybodyfont \Everybodyfont % just to be sure
@@ -47,7 +51,6 @@
\protect
-\writestatus{loading}{Context Core Macros (a)}
\unprotect
@@ -175,70 +178,6 @@
27: verze
\stopmessages
-\startmessages dutch library: textblocks
- title: tekstblokken
- 1: nieuwe versie, tweede run nodig
- 2: wegschrijven blokken naar --
- 3: inlezen blokken uit --
- 4: er is een tweede run nodig
- 5: -- niet verborgen
- 6: -- verborgen en verwerkt
- 7: -- verborgen
- 8: -- gehandhaafd
- 9: -- niet gehandhaafd
- 10: -- geladen en verwerkt
- 11: -- geladen en geplaatst
- 12: -- overgeslagen
-\stopmessages
-
-\startmessages english library: textblocks
- title: textblocks
- 1: new version, second pass needed
- 2: writing blocks to --
- 3: reading blocks from --
- 4: second pass needed
- 5: -- not hidden
- 6: -- hidden and processed
- 7: -- hidden
- 8: -- typeset
- 9: -- not typeset
- 10: -- loaded and processed
- 11: -- loaded and typeset
- 12: -- skipped
-\stopmessages
-
-\startmessages german library: textblocks
- title: textblock
- 1: neue Version, zweiter Durchlauf benoetigt
- 2: schreibe Bloecke zu --
- 3: lese Bloecke von --
- 4: zweiter Durchlauf benoetigt
- 5: -- nicht verborgen
- 6: -- verborgen und verarbeitet
- 7: -- verborgen
- 8: -- gesetzt
- 9: -- nicht gesetzt
- 10: -- geladen und verarbeitet
- 11: -- geladen und gesetzt
- 12: -- ausgelassen
-\stopmessages
-
-\startmessages czech library: textblocks
- title: textovyblok
- 1: nova verze, je treba druhy beh
- 2: zapisuji bloky do --
- 3: ctu bloky z --
- 4: je treba druhy beh
- 5: -- neni skryto
- 6: -- skryto a zpracovano
- 7: -- skryto
- 8: -- vysazeno
- 9: -- nevysazeno
- 10: -- nacteno a zpracovano
- 11: -- nacteno a vysazeno
- 12: -- preskoceno
-\stopmessages
-
\startmessages dutch library: floatblocks
title: plaatsblokken
1: -- hernummerd / -- => --
@@ -313,7 +252,6 @@
6: subpagina reeks -- verwerkt (aantal --)
7: beeldmerken berekenen
8: achtergronden berekenen
- 9: momenteen maximaal -- niveaus in opsommingen
10: -- en -- tellen niet op tot 1.0
11: interlinie -- niet toegestaan in gridmode
\stopmessages
@@ -328,7 +266,6 @@
6: subpage set -- processed (size --)
7: calculating logospace
8: calculating backgrounds
- 9: currently no more than -- levels in itimezations
10: -- and -- don't add up to 1.0
11: spacing -- not permitted in gridmode
\stopmessages
@@ -343,7 +280,6 @@
6: Unterseitenfolge -- verarbeitet (Groesse --)
7: berechne Platz des Logo
8: berechne Hintergrund
- 9: z.Z. nicht mehr als -- Niveaus in Posten
10: -- und -- ergeben zusammen nicht 1.0
11: Zwischenraum -- nicht im Grittermoduserlau
\stopmessages
@@ -358,34 +294,9 @@
6: sada stran -- zpracovana (velikost --)
7: pocita se misto pro logo
8: pocita se pozadi
- 9: aktualne ne vice nez -- urovne/urovni vyctu
10: -- a -- nedava dohromady 1.0
11: svisla mezera -- neni povolena v pevnem radkovem rejstriku
\stopmessages
-
-\startmessages dutch library: structures
- title: structuur
- 1: begin van sectieblok --
- 2: eind van sectieblok --
-\stopmessages
-
-\startmessages english library: structures
- title: structure
- 1: begin of sectionblock --
- 2: end of sectionblock --
-\stopmessages
-
-\startmessages german library: structures
- title: struktur
- 1: Begin des Abschnittsblock --
- 2: Ende des Abschnittsblock --
-\stopmessages
-
-\startmessages czech library: structures
- title: struktury
- 1: zacatek oddilu (sekce) --
- 2: konec oddilu (sekce) --
-\stopmessages
% \CONTEXTtrue % Now we know that we can use ConTeXt commands.
@@ -453,6 +364,9 @@
% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break}
% een \penalty v¢¢r witruimte worden geplaatst.
+\def\removelastskip% a redefinition of plain
+ {\ifvmode\ifdim\lastskip=\z@\else\vskip-\lastskip\fi\fi}
+
\def\dosomebreak#1%
{\skip0=\lastskip
\removelastskip
@@ -529,20 +443,6 @@
% vergeten
-% \def\forgetall%
-% {\everypar{}% % i.v.m. sidefloats
-% \let\par=\endgraf % i.v.m. getpar etc
-% \stelwitruimtein[\v!geen]%
-% \stelinspringenin[\v!geen]%
-% \leftskip\!!zeropoint
-% \rightskip\!!zeropoint
-% \relax}
-%
-% \def\forgetparindent%
-% {\everypar{}%
-% \voorwit\!!zeropoint % toegevoegd
-% \parindent\!!zeropoint}
-
\def\forgeteverypar%
{\everypar{}}
@@ -767,7 +667,6 @@
\newdimen\openlineheight
\newdimen\openstrutheight
\newdimen\openstrutdepth
-
\def\strutheightfactor {.72}
\def\strutdepthfactor {.28}
@@ -864,7 +763,15 @@
\strutdimen=#3\strutdimen % kan afwijken van de globale
\edef#1{\the\strutdimen}} % strut
-\let\normalstrut=\strut
+% plain definition:
+%
+% \def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+%
+% could be:
+%
+% \def\strut{\relax\ifmmode\copy\else\unhcopy\fi\strutbox}
+
+\let\normalstrut=\strut
% The double \hbox construction enables us to \backtrack
% boxes.
@@ -924,7 +831,12 @@
% so:
\def\pseudostrut%
- {\noindent}
+ {\noindent} % better: \dontleavehmode
+
+\let\pseudobegstrut\pseudostrut
+
+\def\pseudoendstrut% removes all kind of signals
+ {\ifhmode\unskip\unskip\unskip\unskip\fi}
\def\resetteststrut%
{\let\strutwidth=\!!zeropoint
@@ -933,12 +845,6 @@
\def\setfontparameters%
{\the\everybodyfont}
-% \setnormalbaselines
-% \setstrut
-% \settopskip
-% \setmaxdepth
-% \the\EveryFontSwitch
-
%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
@@ -948,14 +854,6 @@
\let\normaloffinterlineskip=\offinterlineskip % knuth's original
\fi
-% \def\offinterlineskip%
-% {\edef\oninterlineskip%
-% {\baselineskip=\the\baselineskip
-% \lineskip=\the\lineskip
-% \lineskiplimit=\the\lineskiplimit
-% \noexpand\let\noexpand\offinterlineskip=\noexpand\normaloffinterlineskip}%
-% \normaloffinterlineskip}
-
\def\offinterlineskip%
{\ifdim\baselineskip>\!!zeropoint
\edef\oninterlineskip%
@@ -1045,357 +943,7 @@
% Dit hoort eigenlijk thuis onder het kopje boodschappen cq,
% meldingen.
-\def\mindermeldingen%
- {\hbadness=10000
- \hfuzz=\maxdimen
- \vbadness=10000
- \vfuzz=\maxdimen}
-
-% 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.
-
-% 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\uti
-\newif\ifutilitydone
-
-\def\@@utilityerrormessage%
- {\showmessage{\m!systems}{8}{}%
- \global\let\@@utilityerrormessage=\relax}
-
-\def\thisisutilityversion#1%
- {\doifnot{\utilityversion}{#1}%
- {\@@utilityerrormessage
- \resetutilities
- \endinput}}
-
-\def\writeutility%
- {\write\uti}
-
-\def\immediatewriteutility%
- {\immediate\write\uti}
-
-\def\writeutilitycommand#1%
- {\writeutility{c \string#1}}
-
-\def\immediatewriteutilitycommand#1%
- {\immediatewriteutility{c \string#1}}
-
-\def\openutilities%
- {\immediate\openout\uti=\jobname.\f!inputextension
- \immediatewriteutilitycommand{\thisisutilityversion{\utilityversion}}}
-
-\def\closeutilities%
- {\savenofsubpages
- \savenofpages
- \immediate\closeout\uti
- \reportutilityproblems}
-
-\def\abortutilitygeneration%
- {\immediatewriteutilitycommand{\utilitygenerationaborted}%
- \immediatewriteutility{q {quit}}}
-
-\def\utilitygenerationaborted%
- {\showmessage{\m!systems}{21}{}%
- \global\let\utilitygenerationaborted=\endinput
- \gdef\reportutilityproblems{\showmessage{\m!systems}{22}{}}%
- \endinput}
-
-\def\savecurrentvalue#1#2%
- {\immediatewriteutilitycommand{\initializevariable\string#1{#2}}}
-
-\let\initializevariable\gdef
-
-\def\disableinitializevariables%
- {\global\let\initializevariable\gobbletwoarguments}
-
-\let\reportutilityproblems=\relax
-
-\let\utilityresetlist=\empty
-
-%\def\addutilityreset#1%
-% {\addtocommalist{\s!reset#1}\utilityresetlist}
-%
-%\def\resetutilities%
-% {\processcommacommand[\utilityresetlist]\getvalue}
-
-\def\addutilityreset#1%
- {\addtocommalist{#1}\utilityresetlist}
-
-\def\doresetutility#1%
- {\getvalue{\s!reset#1}}
-
-\def\resetutilities%
- {\processcommacommand[\utilityresetlist]\doresetutility}
-
-% #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\utilitycheckmessage%
- {\showmessage{\m!systems}{12}{}%
- \global\let\utilitycheckmessage=\relax}
-
-\def\saveutilityline#1 #2\txen% tricky maar ok, want achter \command
- {\if #1c% commands % in \ascii staat een spatie; #1 kan
- \write\scratchwrite{#2}% % \par in stringvorm zijn (eof)!
- \else\if#1s% synoniems
- \utilitycheckmessage
- \else\if#1r% registers
- \utilitycheckmessage
- \fi\fi\fi}
-
-% no longer needed, since texutil is now multi platform
-%
-% \def\checkutilityfile%
-% {\doiflocfileelse{\jobname.\f!outputextension}
-% {}
-% {\doiflocfileelse{\jobname.\f!inputextension}
-% {\bgroup
-% \showmessage{\m!systems}{11}{}%
-% \openout\scratchwrite=\jobname.\f!outputextension
-% \openlocin\scratchread{\jobname.\f!inputextension}%
-% \def\doprocessline%
-% {\ifeof\scratchread
-% \def\doprocessline{\closein\scratchread}%
-% \else
-% \read\scratchread to \ascii
-% \convertcommand\ascii\to\ascii
-% \expandafter\saveutilityline\ascii\txen
-% \fi
-% \doprocessline}%
-% \doprocessline
-% \closeout\scratchwrite
-% \egroup}
-% {}}}
-
-\def\checkutilityfile%
- {}
-
-\long\def\doutilities#1#2#3#4#5% % introduceren in utility file
- {\restorecatcodes
- \resetutilities
- \def\docommando##1% % zo kunnen meerdere dingen
- {\getvalue{\s!set##1}}% % in een pass worden gedaan,
- \processcommacommand[#1]\docommando % zie bijvoorbeeld lijsten
- \begingroup
- \footnotesenabledfalse
- \doinpututilitiestrue
- \global\utilitydonefalse
- \catcode`\%=\@@comment\relax
- \pushendofline % geeft problemen zodra andere file wordt ingelezen
- \ifunprotectutilities % nog nodig ?
- \unprotect
- \fi
- \ifnum\catcode`\@=\@@active \else
- \catcode`\@=\@@letter % permits expanded commands with \@'s
- \fi
- \ifnum\catcode`\!=\@@active \else
- \catcode`\!=\@@letter % permits multilingual constants
- \fi
- #4\readjobfile{#2.\f!outputextension}{}{}#5%
- \relax
- \ifunprotectutilities
- \protect
- \fi
- \popendofline
- \ifutilitydone\else
- \doifnot{#3}{}
- {\showmessage{\m!systems}{9}{{#3}}%
- \ifvoorlopig
- \blanko
- \type{[\currentmessagetext]}%
- \blanko
- \fi}%
- \fi
- \disableinitializevariables
- \endgroup}
-
-% Saving the sort vector:
-
-\def\savesortkeys%
- {\setbox\scratchbox=\hbox
- \bgroup
- \def\flushsortkey##1##2##3##4%
- {\convertargument{##1}{##2}{##3}{##4}\to\ascii
- \immediatewriteutility{k {\currentlanguage}{\currentencoding}\ascii}}%
- \let\definesortkey\flushsortkey
- \flushsortkeys
- \egroup
- \global\let\savesortkeys\relax}
-
-\prependtoks \savesortkeys \to \everystarttext
-
-% Commando's ten behoeve van two-pass lists. In principe
-% kan alles in een keer worden ingelezen. Omdat de macro's
-% groeien is de kans groot dat het (main) geheugen door
-% (de)allocatie volloopt. Vandaar dat we het toch maar niet
-% doen.
-%
-% \definetwopasslist{\s!xxx}
-%
-% \gettwopassdata{\s!xxx}
-% \getfrompassdata{\s!xxx}{n} n=index (getal)
-% \findtwopassdata{\s!xxx}{tag} bijvoorbeeld {label:}
-% \iftwopassdatafound
-% \twopassdata
-%
-% \twopassentry{\s!xxx}{nr}{data} nr alleen voor testdoeleinden
-%
-% also:
-%
-% \definerawpasslist{\s!xxx}
-% \moverawpasslist\s!xxx\to\somemacro
-
-\let\alltwopasslists\empty % with 0,0 -> stepwise commalist
-\let\allrawpasslists\empty % without 0,0 -> raw commalist
-
-\newif\iftwopassdatafound
-
-\def\twopassentry#1%
- {\executeifdefined{@@#1\s!pass}\gobbletwoarguments}
-
-\def\appendtwopasselement#1#2#3%
- {%\debuggerinfo{\m!systems}{twopass data #1 - #2 = #3}%
- \@EA\ifx\csname#1:\s!list\endcsname\empty
- \setxvalue{#1:\s!list}{#3}%
- \else
- \setxvalue{#1:\s!list}{\getvalue{#1:\s!list},#3}%
- \fi}
-
-\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}%
- {\global\letvalue{\s!set#1\s!pass}\gobbletwoarguments
- \setgvalue{@@#1\s!pass}{\appendtwopasselement{#1}}}%
- \setgvalue{\s!reset#1\s!pass}%
- {\global\letvalue{@@#1\s!pass}\gobbletwoarguments}%
- \getvalue{\s!reset#1\s!pass}}}
-
-\def\definetwopasslist#1%
- {\expanded{\dodefinetwopasslist{#1}}%
- \doglobal\addtocommalist{#1}\alltwopasslists}
-
-\def\definerawpasslist#1%
- {\expanded{\dodefinetwopasslist{#1}}%
- \doglobal\addtocommalist{#1}\allrawpasslists}
-
-\def\doloadtwopassdata#1%
- {\doifundefined{#1:\s!list}
- {\global\letvalue{#1:\s!list}\empty
- \doutilities{#1\s!pass}{\jobname}{}{}{}%
- \ifx\twopassdata\empty\else
- \appendtwopasselement{#1}{0}\twopassdata
- \fi}}
-
-\def\loadtwopassdata%
- {\ifx\alltwopasslists\empty\else
- \def\twopassdata{0,0}% end condition
- \processcommacommand[\alltwopasslists]\doloadtwopassdata
- \global\let\alltwopassdata\empty
- \fi
- \ifx\allrawpasslists\empty\else
- \let\twopassdata\empty
- \processcommacommand[\allrawpasslists]\doloadtwopassdata
- \global\let\allrawpassdata\empty
- \fi}
-
-\def\moverawpasslist#1#2% erases the old one, like the others do
- {\loadtwopassdata
- \@EA\let\@EA#2\csname#1:\s!list\endcsname
- \@EA\let\csname#1:\s!list\endcsname\empty}
-
-\let\twopassdata=\empty
-
-\def\dogettwopassdata[#1,#2]#3%
- {\doifelse{#1}{0} % \ifcase truukje gaat fout
- {\twopassdatafoundfalse
- \let\twopassdata\empty}
- {\twopassdatafoundtrue
- \setxvalue{#3:\s!list}{#2}%
- \edef\twopassdata{#1}}}
-
-\def\gettwopassdata#1%
- {\loadtwopassdata
- \edef\!!stringa{\getvalue{#1:\s!list}}%
- %\debuggerinfo{\m!systems}{twopass get #1 - \!!stringa}%
- \expandafter\dogettwopassdata\expandafter[\!!stringa]{#1}}
-
-\def\findtwopassdata%
- {\loadtwopassdata
- \ExpandBothAfter\dofindtwopassdata}
-
-\def\dofindtwopassdata#1#2%
- {\edef\!!stringa{,\getvalue{#1:\s!list}}%
- %\debuggerinfo{\m!systems}{twopass find #2 - \!!stringa}%
- \def\dodofindtwopassdata[##1,##2#2##3,##4]%
- {\edef\twopassdata{##3}%
- \ifx\twopassdata\empty
- \twopassdatafoundfalse
- \else
- \twopassdatafoundtrue
- \fi}%
- \@EA\dodofindtwopassdata\@EA[\!!stringa,#2,#2,]}
-
-\def\getfirsttwopassdata#1%
- {\loadtwopassdata
- \edef\!!stringa{\getvalue{#1:\s!list}}%
- \expandafter\dogetfirsttwopassdata\expandafter[\!!stringa]{#1}}
-
-\def\dogetfirsttwopassdata[#1,#2]#3%
- {\doifelse{#1}{0}
- {\twopassdatafoundfalse
- \let\twopassdata\empty}
- {\twopassdatafoundtrue
- \edef\twopassdata{#1}}}
-
-\def\getlasttwopassdata#1%
- {\loadtwopassdata
- \edef\twopassdata{0}\twopassdatafoundfalse
- \newcounter\noftwopassitems
- \def\docommando##1%
- {\doifnot{##1}{0}
- {\increment\noftwopassitems
- \edef\twopassdata{##1}\twopassdatafoundtrue}}%
- \processcommacommand[\getvalue{#1:\s!list}]\docommando}
-
-\def\getfromtwopassdata#1#2%
- {\loadtwopassdata
- \getfromcommacommand[\getvalue{#1:\s!list}][#2]%
- \doifelsenothing{\commalistelement}
- {\twopassdatafoundfalse
- \let\twopassdata\empty}
- {\twopassdatafoundtrue
- \let\twopassdata\commalistelement}}
+\let\mindermeldingen\dontcomplain
% Maten
%
@@ -1519,9 +1067,6 @@
\def\calculatevsizes% global needed in \resetlayoutregel
{\redoglobal\teksthoogte=\zethoogte
- %\redoglobal\kopkopwit=\kopwit
- %\redoglobal\advance\kopkopwit by \hoofdhoogte
- %\redoglobal\advance\kopkopwit by \hoofdafstand
\doifsometextlineelse{\v!hoofd}
{\redoglobal\advance\teksthoogte by -\hoofdhoogte
\redoglobal\advance\teksthoogte by -\hoofdafstand}
@@ -1546,6 +1091,8 @@
\def\calculatehsizes%
{\tekstbreedte=\zetbreedte
+ \doifsomething{\@@lytekstbreedte} % may be set to \tekstbreedte
+ {\tekstbreedte=\@@lytekstbreedte} % which is tricky but ok
\sethsize}
\def\sethsize%
@@ -1587,30 +1134,6 @@
% Een aantal veelgebruikte macro's zijn in TeXEdit op
% naam en/of door middel van een mnemonic oproepbaar.
-% %I n=Offset
-% %I c=\steloffsetin
-% %I
-% %I De totale bladzijde kan verschoven worden ten opzichte
-% %I van de linkerbovenhoek met:
-% %I
-% %I \steloffsetin[rug=,kop=]
-% %I
-% %I Dit commando moet worden gegeven aan het begin van de
-% %I pagina waarvoor het moet gelden. Er kunnen positieve
-% %I en negatieve waarden worden ingevuld: -10pt, 1.5cm.
-%
-% \def\dosteloffsetin[#1]%
-% {\getparameters
-% [\??os]
-% [\c!rug=\rugoffset,
-% \c!kop=\kopoffset,
-% #1]%
-% \rugoffset=\@@osrug
-% \kopoffset=\@@oskop}
-%
-% \def\steloffsetin%
-% {\dosingleargument\dosteloffsetin}
-
% De onderstaande macro voert commando's uit, afhankelijk van
% het karakter van het paginanummer.
%
@@ -1765,17 +1288,6 @@
\let\stelpapierformaatin\relax
\fi
-%\def\dodefinieerpapierformaat[#1][#2]%
-% {\ifsecondargument
-% \getparameters
-% [\??pp#1] % geen \c!schaal, scheelt hash ruimte
-% [\c!breedte=\@@ppbreedte,\c!hoogte=\@@pphoogte,
-% \c!offset=\@@ppoffset,#2]%
-% \else
-% \definieerpapierformaat[][#1]%
-% \stelpapierformaatin
-% \fi}
-
\def\dodefinieerpapierformaat[#1][#2]%
{\ifsecondargument
\getparameters
@@ -1831,49 +1343,6 @@
\fi
-% \def\dostelpapierformaatin[#1][#2]%
-% {\ifsecondargument
-% \dostelpapierrichtingin{#1}\paperlandscape\paperrotation\paperreverse\papermirror
-% \dostelpapierrichtingin{#2}\printlandscape\printrotation\printreverse\printmirror
-% \def\docommando##1%
-% {\doifsomething{##1}{\doifdefined{\??pp##1\c!breedte}
-% {\global\papierbreedte=\getvalue{\??pp##1\c!breedte}%
-% \global\papierhoogte=\getvalue{\??pp##1\c!hoogte}%
-% \calculatepaperoffsets{##1}%
-% \xdef\papierformaat{##1}}}}%
-% \processcommalist[#1]\docommando
-% \doifdefinedelse{\??pp#1\c!schaal}
-% {\edef\papierschaal{\getvalue{\??pp#1\c!schaal}}}
-% {\edef\papierschaal{1}}%
-% \def\docommando##1%
-% {\doifsomething{##1}{\doifdefined{\??pp##1\c!breedte}
-% {\global\printpapierbreedte=\getvalue{\??pp##1\c!breedte}%
-% \global\printpapierhoogte=\getvalue{\??pp##1\c!hoogte}%
-% \xdef\printpapierformaat{##1}}}}%
-% \processcommalist[#2]\docommando
-% \ifnum\paperlandscape>0
-% \doglobal\swapdimens\papierbreedte\papierhoogte
-% \fi
-% \ifnum\printlandscape>0
-% \doglobal\swapdimens\printpapierbreedte\printpapierhoogte
-% \fi
-% \ifdim\papierhoogte>\printpapierhoogte
-% \global\printpapierhoogte=\papierhoogte
-% \fi
-% \ifdim\papierbreedte>\printpapierbreedte
-% \global\printpapierbreedte=\papierbreedte
-% \fi
-% \calculatehsizes
-% \calculatevsizes
-% \global\newlogostrue
-% \global\newbackgroundtrue
-% \resetlayout
-% \else\iffirstargument
-% \stelpapierformaatin[#1][#2]%
-% \else\ifx\papierformaat\undefined\else
-% \stelpapierformaatin[\papierformaat][\printpapierformaat]%
-% \fi\fi\fi}
-
\def\dostelpapierformaatin[#1][#2]%
{\doifinstringelse{=}{#1}
{\getparameters[\??pp][#1]}
@@ -1961,7 +1430,10 @@
\stelblankoin
\doifelse{\@@lybreedte}{\v!midden}
{\global\zetbreedte=\papierbreedte
- \global\advance\zetbreedte by -2\rugwit}
+ \global\advance\zetbreedte by -\rugwit
+ \doifelsenothing{\@@lysnijwit}
+ {\global\advance\zetbreedte by -\rugwit}
+ {\global\advance\zetbreedte by -\@@lysnijwit}}
{\doifelse{\@@lybreedte}{\v!passend}
{\global\zetbreedte=\papierbreedte
\global\advance\zetbreedte by -\rugwit
@@ -1984,7 +1456,10 @@
\doifelse{\@@lyregels}{}
{\doifelse{\@@lyhoogte}{\v!midden}
{\global\zethoogte=\papierhoogte
- \global\advance\zethoogte by -2\kopwit}
+ \global\advance\zethoogte by -\kopwit
+ \doifelsenothing{\@@lybodemwit}
+ {\global\advance\zethoogte by -\kopwit}
+ {\global\advance\zethoogte by -\@@lybodemwit}}
{\doifelse{\@@lyhoogte}{\v!passend}
{\global\zethoogte=\papierhoogte
\global\advance\zethoogte by -\kopwit
@@ -2019,22 +1494,10 @@
\newif\ifdoublesidedprint
-%\def\setcenterpagebox#1#2#3#4%
-% {\let\leftpagebox =#1%
-% \let\rightpagebox =#2%
-% \let\toppagebox =#3%
-% \let\bottompagebox=#4}
-
\def\presetcenterpagebox% in \stellayoutin !!!!!!!!!!!!!!!!
- {%\setcenterpagebox\relax\hss\relax\vss
- \doublesidedprintfalse
+ {\doublesidedprintfalse
\ExpandFirstAfter\processallactionsinset
[\@@lyplaats]
-% [ \v!midden=>\setcenterpagebox\hss\hss\vss\vss,
-% \v!links=>\setcenterpagebox\relax\hss\toppagebox\bottompagebox,
-% \v!rechts=>\setcenterpagebox\hss\relax\toppagebox\bottompagebox,
-% \v!onder=>\setcenterpagebox\leftpagebox\rightpagebox\vss\relax,
-% \v!boven=>\setcenterpagebox\leftpagebox\rightpagebox\relax\vss,
[ \v!midden=>{\stelpapierformaatin[\c!links=\hss,\c!rechts=\hss,\c!boven=\vss,\c!onder=\vss]},
\v!links=>{\stelpapierformaatin[\c!links=,\c!rechts=\hss]},
\v!rechts=>{\stelpapierformaatin[\c!links=\hss,\c!rechts=]},
@@ -2076,12 +1539,6 @@
\def\adaptedpages{}
-% \def\adaptpagedimensions%
-% {\rawdoifinsetelse{\realfolio}{\adaptedpages}
-% {\getvalue{\??za\realfolio}%
-% \letvalue{\??za\realfolio}=\relax}
-% {}}
-
\def\adaptpagedimensions%
{\rawdoifinsetelse{\realfolio}{\adaptedpages}
{\getvalue{\??za\realfolio}%
@@ -2234,22 +1691,22 @@
\processaction
[\@@mbplaats]
[ \v!inmarge=>\doifbothsidesoverruled
- \rightmarginbox
- \orsideone
- \rightmarginbox
- \orsidetwo
- \leftmarginbox
- \od,
+ \rightmarginbox
+ \orsideone
+ \rightmarginbox
+ \orsidetwo
+ \leftmarginbox
+ \od,
\v!midden=>\doifbothsidesoverruled
- \rightmarginbox
- \orsideone
- \leftmarginbox
- \orsidetwo
- \rightmarginbox
- \od,
+ \rightmarginbox
+ \orsideone
+ \leftmarginbox
+ \orsidetwo
+ \rightmarginbox
+ \od,
\v!links=>\leftmarginbox,
\v!rechts=>\rightmarginbox,
- \s!unknown=>\setbox\preparedmarginbox=\hbox{}]}
+ \s!unknown=>\setbox\preparedmarginbox=\hbox{}]}
\def\dostartmargeblok% % 2 maal \vbox ivm \unvbox elders
{\global\setbox\marginbox=\vtop\bgroup\vbox\bgroup
@@ -2341,231 +1798,6 @@
\dostartbuffer[buf-\nofpostponedblocks]
[\e!start\e!uitstellen][\e!stop\e!uitstellen]}
-%I n=Nummeren
-%I c=\stelnummerenin
-%I
-%I Automatische nummering kan worden ingesteld met het
-%I commando:
-%I
-%I \stelnummerenin[wijze=,blok=,status=]
-%I
-%I Mogelijke wijzen van nummeren zijn: 'pertekst',
-%I 'perhoofdstuk' en 'perparagraaf'. Als status kan worden
-%I meegegeven 'start' of 'stop'. Met blok wordt aangegeven
-%I of moet worden uitgegaan van het huidige hoofdstuk ('nee')
-%I of het blokhoofdstuk ('ja').
-
-% Commando's ten behoeve van nummeren:
-%
-% \definieernummer[naam]
-% \stelnummerin[naam][wijze=,blok=,tekst=,plaats=,conversie=,start=]
-% \setnummer[naam]{waarde}
-% \resetnummer[naam]
-% \verhoognummer[naam]
-% \verlaagnummer[naam]
-% \volgendenummer[naam][tag][referentie]
-% \nummer[naam]
-% \huidigenummer[naam]
-% \innummer[naam][referentie]
-% \opnummer[naam][referentie]
-% \savenumber[naam]
-% \restorenumber[naam]
-
-\newif\ifnummeren
-
-\def\dostelnummerenin[#1]% globaal
- {\getparameters[\??nr][#1]%
- \doifelse{\@@nrstatus}{\v!start}
- {\global\nummerentrue}
- {\global\nummerenfalse}}%
-
-\def\stelnummerenin%
- {\dosingleargument\dostelnummerenin}
-
-\def\dostelnummerin[#1][#2]%
- {\getparameters[\s!number#1][#2]}
-
-\def\stelnummerin%
- {\dodoubleargument\dostelnummerin}
-
-\def\dodefinieernummer[#1][#2]% ook overal class als localframed
- {\getparameters
- [\s!number#1]
- [\s!check=,
- \c!wijze=\@@nrwijze,
- \c!wijze\c!lokaal=\getvalue{\s!number#1\c!wijze},
- \c!sectienummer=\v!ja,
- \c!tekst=,
- \c!plaats=, % was: \c!zetwijze
- \c!conversie=\v!cijfers,
- \c!start=0,
- #2]%
- \makecounter{\s!number#1}%
- \setcounter{\s!number#1}{\getvalue{\s!number#1\c!start}}}
-
-% \c!nummer=#1 ; nogal veel copieen nodig
-%
-% \def\@@thenumber#1{\s!number\getvalue{\s!number#1\c!nummer}}
-
-\def\definieernummer%
- {\dodoubleempty\dodefinieernummer}
-
-\def\setnummer[#1]#2%
- {\setcounter{\s!number#1}{#2}}
-
-\def\resetnummer[#1]%
- {\setcounter{\s!number#1}{0\getvalue{\s!number#1\c!start}}}
-
-\def\dodoreset#1%
- {\getvalue{\s!reset#1}}%
-
-\def\doreset[#1]%
- {\processcommalist[#1]\dodoreset}
-
-\def\reset%
- {\dosingleargument\doreset}
-
-\def\verhoognummer[#1]%
- {\checknummer{#1}%
- \ifnummeren
- \else
- \resetcounter{\s!number#1}%
- \fi
- \pluscounter{\s!number#1}}
-
-\def\savenumber[#1]%
- {\savecounter{\s!number#1}}
-
-\def\restorenumber[#1]%
- {\restorecounter{\s!number#1}}
-
-% nieuw, maar kan dit (i.v.m. (sub)page?)
-
-\def\verhoognummer[#1]%
- {\checknummer{#1}%
- \ifnummeren
- \pluscounter{\s!number#1}%
- \else
- \setcounter{\s!number#1}{0\getvalue{\s!number#1\c!start}}%
- \fi}
-
-\def\verlaagnummer[#1]%
- {\minuscounter{\s!number#1}}
-
-\def\dodochecknummer#1#2#3%
- {\bgroup
- \doifinstringelse{.0}{.#2} % waarom \instring en \@koscheider
- {\doifnot{#3}{\v!per}
- {%\debuggerinfo{\m!systems}{number #1 #3 becomes \getvalue{\s!number#1\c!wijze}}%
- \setevalue{\s!number#1\c!wijze}% geen \xdef, gaat mis met \subpage
- {#3}%
- \dochecknummer{#1}}} % tricky and ugly
- {\doifnotvalue{\s!number#1\s!check}{#2}
- {\setcounter{\s!number#1}{0\getvalue{\s!number#1\c!start}}%
- \setxvalue{\s!number#1\c!wijze\c!lokaal}%
- {\getvalue{\s!number#1\c!wijze}}%
- \setxvalue{\s!number#1\s!check}%
- {#2}}}%
- \egroup}
-
-\def\dochecknummer#1%
- {\edef\currentsection{\getvalue{\??by\getvalue{\s!number#1\c!wijze}}}%
- \doifsomething{\currentsection}
- {\dodochecknummer
- {#1}
- {\getvalue{\currentsection\c!nummer}}
- {\v!per\previoussection{\currentsection}}}}
-
-\def\checknummer#1%
- {\bgroup
- \ifnum\blocklevel>0
- \doifelsevalue{\s!number#1\c!blokwijze}{\v!nee}
- {\dochecknummer{#1}}
- {\setblockcounters % dit kan sneller omdat de waarden
- \dochecknummer{#1}}% % en het type bekend zijn
- \else
- \dochecknummer{#1}%
- \fi
- \egroup}
-
-% \def\domaakvoorafgaandenummer[#1]%
-% {\gdef\voorafgaandenummer{}%
-% \ifsectienummer
-% \doifvalue{\??sb\@@sectieblok\c!nummer}{\v!ja} % toegevoegd
-% {\doifvalue{\s!number#1\c!sectienummer}{\v!ja}
-% {\edef\currentsection%
-% {\getvalue{\??by\getvalue{\s!number#1\c!wijze\c!lokaal}}}%
-% \doifnot{\currentsection}{\zerosection}
-% {\doifnot{\@@sectionvalue{\currentsection}}{0}
-% {\xdef\voorafgaandenummer%
-% {\getvalue{\currentsection\c!nummer}.}}}}}%
-% \fi}
-
-\def\domaakvoorafgaandenummer[#1]%
- {\bgroup % added
- \global\let\voorafgaandenummer\empty
- \ifsectienummer
- \doifvalue{\??sb\@@sectieblok\c!nummer}{\v!ja} % added
- {\doifelsevalue{\s!number#1\c!sectienummer}{\v!ja}
- {\donetrue}{\donefalse}%
- \doifvalue{\s!number#1\c!sectienummer}{\v!nummer}
- {\donetrue\let\@@sectionconversion\gobbleoneargument}%
- \ifdone
- \edef\currentsection%
- {\getvalue{\??by\getvalue{\s!number#1\c!wijze\c!lokaal}}}%
- \doifnot{\currentsection}{\zerosection}
- {\doifnot{\@@sectionvalue{\currentsection}}{0}
- {\xdef\voorafgaandenummer%
- {\getvalue{\currentsection\c!nummer}.}}}%
- \fi}%
- \fi
- \egroup}
-
-\def\maakvoorafgaandenummer[#1]%
- {\bgroup
- \ifnum\blocklevel>0
- \doifelsevalue{\s!number#1\c!blokwijze}{\v!nee}
- {\domaakvoorafgaandenummer[#1]}%
- {\setblockcounters % dit kan sneller omdat de waarden
- \domaakvoorafgaandenummer[#1]}% % en het type bekend zijn
- \else
- \domaakvoorafgaandenummer[#1]%
- \fi
- \egroup}
-
-\def\nummer[#1]%
- {\convertnumber
- {\getvalue{\s!number#1\c!conversie}}
- {\countervalue{\s!number#1}}}
-
-\def\ruwenummer[#1]%
- {\countervalue{\s!number#1}}
-
-\def\maakhetnummer[#1]%
- {\maakvoorafgaandenummer[#1]%
- \global\edef\hetnummer%
- {\voorafgaandenummer\nummer[#1]}}%
-
-\def\lossenummer[#1]%
- {\maakhetnummer[#1]%
- \hetnummer}
-
-\def\huidigenummer[#1]%
- {%\getvalue{\getvalue{\s!number#1\c!zetwijze}}%
- \getvalue{\getvalue{\s!number#1\c!plaats}}%
- {\dotextprefix{\getvalue{\s!number#1\c!tekst}}\lossenummer[#1]}}
-
-\def\volgendenummer[#1][#2][#3]%
- {\verhoognummer[#1]%
- \huidigenummer[#1]%
- \rawreference{#2}{#3}{\hetnummer}}
-
-\def\innummer[#1][#2]%
- {\c!in \in{\getvalue{\s!number#1\c!tekst}}[#2]}%
-
-\def\opnummer[#1][#2]%
- {\c!op \op{\getvalue{\s!number#1\c!tekst}}[#2]}%
-
% \gotonextsubpage : voor de pagebody
% \subpaginanummer : alleen in de voet/kopregels
% \aantalsubpaginas : alleen in de voet/kopregels
@@ -2799,14 +2031,9 @@
\gotonextrealpage
\global\let\checkrealpage=\relax}
-%\def\realnumberofpages#1% meteen laden, voor andere files (met refs)
-% {\gdef\lastpage{#1}%
-% \global\let\realnumberofpages=\gobbleoneargument}
-
\def\savenofpages%
{\advance\realpageno by -1
\savecurrentvalue\lastpage{\realfolio}}%
- %\immediatewriteutilitycommand{\realnumberofpages{\realfolio}}}%
\def\totaalaantalpaginas%
{\lastpage}
@@ -2884,7 +2111,10 @@
{\setbox0=\hbox{#1}% just in case there are objects there
\setbox\scratchbox=\hbox
{\the\everyshipout
- \ifnum\realpageno=\lastpage\relax\the\everylastshipout\fi}%
+ \ifnum\realpageno=\lastpage\relax
+ \the\everylastshipout
+ \global\everylastshipout\emptytoks
+ \fi}%
\smashbox\scratchbox
\box\scratchbox
\box\postponedcontent % evt ver naar links !
@@ -2999,81 +2229,8 @@
% \ruledvbox to \vsize{\unvcopy0\vfill}\hss
% \ruledvbox to \vsize{\unvcopy0\kern-\dp0\vfill}}
-% \def\dopagecontents#1#2%
-% {\dotopinsertions
-% \bgroup
-% \forgetall
-% \boxmaxdepth=\maxdepth
-% \dimen0=\dp#2%
-% \bgroup
-% #1#2\relax
-% \pushcolor
-% \dobotinsertions
-% \egroup
-% \ifr@ggedbottom
-% \kern-\dimen0
-% \vfil
-% \fi
-% \ifb@selinebottom
-% \kern-\dimen0
-% \kern\maxdepth
-% \fi
-% \egroup
-% \placefootnotes}
-
-% \def\dopagecontents#1#2% \box<n> \unvbox<n>
-% {\bgroup%
-% \forgetall
-% \boxmaxdepth=\maxdepth
-% \setbox0=\vbox to \teksthoogte
-% {\edef\currentpagedepth{\the\dp#2}% still to be derived from #1
-% \dotopinsertions
-% #1#2% \fuzzysnappedbox{#1}{#2}% goes wrong
-% \pushcolor
-% \ifgridsnapping
-% \vskip-\currentpagedepth
-% \vskip\openstrutdepth % \dp\strutbox
-% \prevdepth\openstrutdepth % \dp\strutbox
-% \dobotinsertions
-% \vfil
-% \else\ifr@ggedbottom
-% \vskip-\currentpagedepth
-% \vskip\openstrutdepth % \dp\strutbox
-% \prevdepth\openstrutdepth % \dp\strutbox
-% \dobotinsertions
-% \vfil
-% \else\ifb@selinebottom
-% \kern-\currentpagedepth
-% \kern\maxdepth
-% \dobotinsertions
-% \else
-% %\dobotinsertions
-% \fi\fi\fi
-% \ifdim\ht\footins>\!!zeropoint % beter dan \ifvoid\footins\else
-% \kern\skip\footins
-% \kern\ht\footins
-% \fi}%
-% \ifgridsnapping
-% \getnoflines\teksthoogte
-% \advance\noflines by -1
-% \scratchdimen=\noflines\lineheight
-% \advance\scratchdimen by \topskip
-% \else
-% \scratchdimen=\ht0
-% \fi
-% \setbox2=\hbox
-% {\ifvoid\savedfootins \else
-% \setbox\footins=\box\savedfootins
-% \fi
-% \lower\scratchdimen\vbox{\placefootnotes}}%
-% \smashbox2
-% \ht0=\!!zeropoint
-% \vbox to \teksthoogte
-% {\box0\box2}%
-% \egroup}
-
-\def\dopagecontents#1#2% \box<n> \unvbox<n>
- {\bgroup
+\def\dopagecontents#1#2% \box<n> \unvbox<n>
+ {\bgroup % niet breedte zetten, kan fractie zijn!
\forgetall
\boxmaxdepth=\maxdepth
\setbox0=\vbox \ifbottomnotes to \teksthoogte \fi
@@ -3168,7 +2325,7 @@
\newtoks\afterpage \newtoks\aftereverypage
\newtoks\beforepage \newtoks\beforeeverypage
-\newif\ifshowgrid
+\newif\ifshowgrid \showgridfalse
\def\toongrid%
{\tracegridsnappingtrue
@@ -3177,10 +2334,17 @@
\def\doplaatstekstblok#1#2%
{\bgroup
\setbox0=\hbox to \zetbreedte
- {\vbox to \teksthoogte
- {\offinterlineskip
- \boxmaxdepth\maxdepth
- \dopagecontents#1#2}}%
+ {\hss % new
+ \vbox to \teksthoogte % can be < \makeupwidth
+ {\offinterlineskip % so don't change this
+ \tekstbreedte=\zetbreedte %
+ \doifsomething{\@@lytekstbreedte} %
+ {\tekstbreedte=\@@lytekstbreedte}%
+ \hsize=\tekstbreedte % local variant of \sethsize
+ \boxmaxdepth\maxdepth %
+ \noindent % the contents can be < \hsize
+ \dopagecontents#1#2}%
+ \hss}% new
\ht0=\teksthoogte
\wd0=\zetbreedte
\ifshowgrid
@@ -3222,55 +2386,24 @@
\smashbox0
\box0}
-% \def\setpagedisplacement%
-% {\global\voffset=\kopoffset
-% \global\hoffset=\rugoffset
-% \global\advance\voffset by -1in
-% \global\advance\hoffset by -1in}
-
-% \def\centerpagebox#1%
-% {\printpapierbreedte=\papierschaal\printpapierbreedte
-% \printpapierhoogte =\papierschaal\printpapierhoogte
-% \setbox#1=\vbox to \printpapierhoogte
-% {\toppagebox
-% \hbox to \printpapierbreedte
-% {\ifdoublesidedprint
-% \doifbothsides
-% \leftpagebox\box#1\rightpagebox
-% \orsideone
-% \leftpagebox\box#1\rightpagebox
-% \orsidetwo
-% \rightpagebox\box#1\leftpagebox
-% \od
-% \else
-% \leftpagebox\box#1\rightpagebox
-% \fi}
-% \bottompagebox}}
-
\def\centerpagebox#1%
{\printpapierbreedte=\papierschaal\printpapierbreedte
\printpapierhoogte =\papierschaal\printpapierhoogte
\setbox#1=\vbox to \printpapierhoogte
{\@@ppboven
- %\toppagebox
\hbox to \printpapierbreedte
{\ifdoublesidedprint
\doifbothsides
- %\leftpagebox\box#1\rightpagebox
\@@pplinks\box#1\@@pprechts
\orsideone
- %\leftpagebox\box#1\rightpagebox
\@@pplinks\box#1\@@pprechts
\orsidetwo
- %\rightpagebox\box#1\leftpagebox
\@@pprechts\box#1\@@pplinks
\od
\else
- %\leftpagebox\box#1\rightpagebox
\@@pplinks\box#1\@@pprechts
\fi}%
\par
- %\bottompagebox
\@@pponder}}
\def\offsetprintbox#1%
@@ -3385,44 +2518,6 @@
{\m!systems}{23}
{\the\realpageno.\the\pageno\ifnum\subpageno>0 .\the\subpageno\fi,#1}}
-% \def\buildpagebody#1#2%
-% {\vbox
-% {\beginrestorecatcodes
-% \forgetall % igv problemen, check: \boxmaxdepth\maxdimen
-% \boxmaxdepth\maxdimen % new
-% \mindermeldingen
-% \setbox0=\vbox
-% {\offinterlineskip
-% \ifpagebodyornaments
-% \getbackgroundbox
-% \getlogobox
-% \bgroup % else footnotes get inconsistent font/baseline
-% \doconvertfont{\@@lyletter}{}%
-% \offinterlineskip
-% \gettextboxes
-% \egroup
-% \fi
-% \getmainbox#1#2}% including footnotes
-% \buildpagebox0
-% \ifpagebodyornaments
-% \addpagebackground0
-% \fi
-% \ifarrangingpages \else
-% \addpagecutmarks0
-% \replicatepagebox0
-% \scalepagebox0
-% \mirrorpaperbox0
-% \rotatepaperbox0
-% \addpagecolormarks0
-% \centerpagebox0
-% \mirrorprintbox0
-% \rotateprintbox0
-% \offsetprintbox0
-% \negateprintbox0
-% \fi
-% \box0
-% \endrestorecatcodes}}
-
\def\buildpagebody#1#2%
{\vbox
{\beginrestorecatcodes
@@ -3978,27 +3073,10 @@
\def\stelwitruimteopnieuwin%
{\expanded{\stelwitruimtein[\currentwitruimte]}}
-% \def\dodostelwitruimtein[#1]%
-% {\processallactionsinset
-% [#1]
-% [\v!herstel=>\parskip=\tussenwit,
-% \v!regel=>\edef\currentwitruimte{#1}%
-% \tussenwit=\baselineskip
-% \parskip=\tussenwit,
-% \v!vast=>\tussenwit=1\tussenwit
-% \parskip=1\parskip,
-% \s!default=>\doifnot{\currentwitruimte}{\v!geen}
-% {\stelwitruimteopnieuwin},
-% \s!unknown=>\edef\currentwitruimte{#1}%
-% \assigndimension{#1}
-% {\tussenwit}{\blankokleinmaat}
-% {\blankomiddelmaat}{\blankogrootmaat}%
-% \parskip=\tussenwit]}
-
-\newif\ifwitruimteflexibel
+\newif\ifwitruimteflexibel \witruimteflexibeltrue
\def\dodostelwitruimtein[#1]%
- {\witruimteflexibeltrue
+ {%\witruimteflexibeltrue
\processallactionsinset
[#1]
[\v!herstel=>,
@@ -4138,8 +3216,6 @@
\def\toonregelcorrectie {\showbaselinecorrection}
\def\regelcorrectie {\baselinecorrection}
-%\def\startregelcorrectie {\startbaselinecorrection}
-%\def\stopregelcorrectie {\stopbaselinecorrection}
\definecomplexorsimpleempty\startregelcorrectie
@@ -4351,14 +3427,6 @@
\def\skipfactor {.75}
\def\skipgluefactor {.25}
-%\def\normalskipamount%
-% {\openlineheight
-% \ifblankoflexibel
-% \!!plus\skipgluefactor\openlineheight
-% \!!minus\skipgluefactor\openlineheight
-% \fi
-% \relax}
-
\def\normalskipamount%
{\openlineheight
\ifgridsnapping \else \ifblankoflexibel
@@ -4391,12 +3459,37 @@
\newif\iffuzzyvskip
+% old
+%
+% \def\doblanko#1%
+% {\processallactionsinset
+% [#1]
+% [ \v!groot=>\dosingleblanko\v!groot, % happens often
+% \v!buiten=>\ifvmode\ifinner\blankobuitentrue\fi\fi,
+% \v!reset=>\global\blankoresettrue,
+% \v!flexibel=>\global\lokaalblankoflexibeltrue,
+% \v!vast=>\global\lokaalblankovasttrue,
+% \v!back=>\geenblanko,
+% \v!wit=>\global\advance\blankoskip by \parskip,
+% \v!formule=>\global\advance\blankoskip by \medskipamount,
+% \v!geenwit=>\global\blankogeenwittrue,
+% -\v!wit=>\global\advance\blankoskip by -\parskip,
+% \v!blokkeer=>\global\blankoblokkeertrue,
+% \v!forceer=>\global\blankoforceertrue,
+% \v!regel=>\global\advance\blankoskip by \lineheight,
+% \v!halveregel=>\global\fuzzyvskiptrue\global\advance\blankoskip by .5\lineheight,
+% \s!unknown=>{\herhaalmetcommando[#1]\dosingleblanko}]}
+%
+% new, see below
+
\def\doblanko#1%
{\processallactionsinset
[#1]
[ \v!groot=>\dosingleblanko\v!groot, % happens often
\v!buiten=>\ifvmode\ifinner\blankobuitentrue\fi\fi,
\v!reset=>\global\blankoresettrue,
+ \v!flexibel=>\global\lokaalblankoflexibeltrue,
+ \v!vast=>\global\lokaalblankovasttrue,
\v!back=>\geenblanko,
\v!wit=>\global\advance\blankoskip by \parskip,
\v!formule=>\global\advance\blankoskip by \medskipamount,
@@ -4406,21 +3499,30 @@
\v!forceer=>\global\blankoforceertrue,
\v!regel=>\global\advance\blankoskip by \lineheight,
\v!halveregel=>\global\fuzzyvskiptrue\global\advance\blankoskip by .5\lineheight,
- \s!unknown=>{\herhaalmetcommando[#1]\dosingleblanko}]}
+ \s!unknown=>\doindirectblanko{#1}]}
\def\oldprevdepth{\prevdepth}%
\def\newprevdepth{-1001pt}
-\def\mindimen{0.00002pt}
+\def\mindimen{0.00002pt} % beter 1sp
+
+\newif\iflokaalblankovast
+\newif\iflokaalblankoflexibel
\def\docomplexdoblanko[#1]% pas op \relax's zijn nodig ivm volgende \if
{\global\blankoresetfalse
\global\blankoblokkeerfalse
\global\blankogeenwitfalse
- \global\blankoskip=\!!zeropoint\relax
+ \global\lokaalblankoflexibelfalse
+ \global\lokaalblankovastfalse
+ \global\blankoskip=\!!zeropoint
\global\blankoforceerfalse
\blankobuitenfalse
\processcommalist[#1]\doblanko
+\ifdim\blankoskip=\!!zeropoint\relax
+ \iflokaalblankoflexibel \dosingleblanko\currentblanko \fi
+ \iflokaalblankovast \dosingleblanko\currentblanko \fi
+\fi
\ifblankobuiten
\else
\par
@@ -4463,6 +3565,17 @@
\fi
\fi
\fi
+\ifblankoflexibel \else
+ \blankoskip=1\blankoskip
+\fi
+\iflokaalblankovast
+ \blankoskip=1\blankoskip
+\fi
+\iflokaalblankoflexibel
+ \blankoskip=1\blankoskip
+ \!!plus\skipgluefactor\blankoskip
+ \!!minus\skipgluefactor\blankoskip
+\fi
\ifdim\prevdepth=\newprevdepth
\else
\iffuzzyvskip
@@ -4497,41 +3610,95 @@
\expanded{\docomplexdoblanko[#1]}% \expanded = nieuw
\fi}
+% old
+%
+% \def\doindirectblanko#1%
+% {\ifundefined{\??bo#1}% <-etex \expandafter\ifx\csname\??bo#1\endcsname\relax
+% \expanded{\complexdodoblanko[#1]}%
+% \else
+% \expandafter\complexdoblanko\expandafter[\csname\??bo#1\endcsname]%
+% \fi}
+%
+% \def\complexdoblanko[#1]% enables [force,8\bodyfontsize]
+% {\doifinstringelse{,}{#1}
+% {\expanded{\complexdodoblanko[#1]}}
+% {\doifnumberelse{#1}
+% {\expanded{\complexdodoblanko[#1]}}
+% {\doindirectblanko{#1}}}}
+%
+% new, more robust
+%
+% \def\doindirectblanko#1%
+% {\edef\ascii{#1}\convertcommand\ascii\to\ascii
+% \ifundefined{\??bo\ascii}% <-etex \expandafter\ifx\csname\??bo#1\endcsname\rel
+% \herhaalmetcommando[#1]\dosingleblanko
+% \else
+% \expandafter\complexdoblanko\expandafter[\csname\??bo\ascii\endcsname]%
+% \fi}
+%
+% even more robust
+
\def\doindirectblanko#1%
- {\ifundefined{\??bo#1}% <-etex \expandafter\ifx\csname\??bo#1\endcsname\relax
- \expanded{\complexdodoblanko[#1]}%
+ {\edef\ascii{#1}\convertcommand\ascii\to\ascii
+ \ifundefined{\??bo\ascii}% <-etex \expandafter\ifx\csname\??bo#1\endcsname
+ \expanded{\herhaalmetcommando[#1]\noexpand\dosingleblanko}%
\else
- \expandafter\complexdoblanko\expandafter[\csname\??bo#1\endcsname]%
+ \expandafter\complexdoblanko\expandafter[\csname\??bo\ascii\endcsname]%
\fi}
\def\complexdoblanko[#1]% enables [force,8\bodyfontsize]
- {\doifinstringelse{,}{#1}
- {\expanded{\complexdodoblanko[#1]}}
- {\doifnumberelse{#1}
- {\expanded{\complexdodoblanko[#1]}}
- {\doindirectblanko{#1}}}}
+ {\expanded{\complexdodoblanko[#1]}}
\def\currentblanko%
{\v!groot}
+%D For a long time we had:
+%D
+%D \startypen
+%D \def\simpledoblanko%
+%D {\doifelse{\currentwitruimte}{\v!geen}
+%D {\blanko[\currentblanko]}
+%D {\blanko[\currentwitruimte]}}
+%D \stoptypen
+%D
+%D But Berend de Boer wanted more control, so now we have:
+
\def\simpledoblanko%
{\doifelse{\currentwitruimte}{\v!geen}
{\blanko[\currentblanko]}
- {\blanko[\currentwitruimte]}}
+ {\blanko[\s!default]}}
+
+%D Another useful definition would be:
+%D
+%D \starttypen
+%D \definieerblanko
+%D [\s!default]
+%D [\v!groot]
+%D \stoptypen
\def\blanko% % the \relax is definitely needed due to the many \if's
{\relax\complexorsimple\doblanko}
+%\def\dostelblankoin#1%
+% {\bgroup % rommelig
+% \skip0=#1\relax
+% \xdef\globalblanko{\the\skip0}%
+% \egroup
+% \bigskipamount=\globalblanko
+% \smallskipamount=\globalblanko
+% \medskipamount=\globalblanko
+% \divide\medskipamount by 2\relax
+% \divide\smallskipamount by 4\relax}%
+
\def\dostelblankoin#1%
- {\bgroup
- \skip0=#1\relax
- \xdef\globalblanko{\the\skip0}%
- \egroup
- \bigskipamount=\globalblanko
- \smallskipamount=\globalblanko
- \medskipamount=\globalblanko
- \divide\medskipamount by 2\relax
- \divide\smallskipamount by 4\relax}%
+ {\bigskipamount=#1\relax
+ \ifblankoflexibel \else
+ \bigskipamount=1\bigskipamount
+ \fi
+ \smallskipamount=\bigskipamount
+ \medskipamount=\bigskipamount
+ \divide\medskipamount by 2
+ \divide\smallskipamount by 4 }%
\def\complexstelblankoin[#1]%
{\ifgridsnapping
@@ -4578,7 +3745,8 @@
\definecomplexorsimpleempty\stelblankoin
\def\dodefinieerblanko[#1][#2]%
- {\setvalue{\??bo#1}{#2}}
+ {\def\docommando##1{\setvalue{\??bo##1}{#2}}%
+ \processcommalist[#1]\docommando}
\def\definieerblanko%
{\dodoubleargument\dodefinieerblanko}
@@ -4594,6 +3762,12 @@
\else
\noexpand\blankoflexibelfalse
\fi}}
+
+%D Now.
+
+\definieerblanko
+ [\s!default]
+ [\v!wit]
%I n=Inspringen
%I c=\inspringen,\nietinspringen,\welinspringen
@@ -4660,64 +3834,6 @@
\def\nietinspringen{\inspringen[\v!nee,\v!volgende]}
\def\welinspringen {\inspringen[\v!ja,\v!eerste]}
-%I n=Verhogen,Verlagen
-%I c=\laag,\hoog,\laho
-%I
-%I Met de volgende commando's kunnen letters en woorden
-%I worden verhoogd en verlaagd.
-%I
-%I \laag{tekst}
-%I \hoog{tekst}
-%I \laho{lage tekst}{hoge tekst}
-
-\def\holatextfont{\tx}
-\def\holamathfont{\the\scriptfont\fam}
-
-\def\dodohooglaag#1%
- {\doifelsenothing{\fontsize}
- %{\ifnum\fam<0 \holatextfont\else\holamathfont\fi#1}
- {\ifmmode
- \ifnum\fam<0
- \holatextfont
- \else
- \holamathfont
- \fi
- \else
- \holatextfont
- \fi#1}
- {\holatextfont#1}}
-
-\def\dohooglaag#1#2#3#4#5%
- {\bgroup
- \ifdim\fontdimen5\textfont2=1ex
- \dimen0=\fontdimen#1\textfont2
- \else
- \dimen0=#2ex
- \fi
- \advance\dimen0 by #3\relax
- \kern.1ex
- \setbox0=\hbox{#4\dimen0\hbox{\dodohooglaag{#5}}}%
- \ht0=\ht\strutbox
- \dp0=\dp\strutbox
- \box0
- \egroup}
-
-\unexpanded\def\hoog%
- {\dohooglaag{14}{.86}\!!zeropoint\raise}
-
-\unexpanded\def\laag%
- {\dohooglaag{16}{.48}\!!zeropoint\lower}
-
-\unexpanded\def\laho#1#2%
- {\hbox%
- {\setbox4=\hbox{\dohooglaag{16}{.48}{.1ex}{\lower}{#1}}%
- \setbox6=\hbox{\dohooglaag{14}{.86}{.1ex}{\raise}{#2}}%
- \ifdim\wd4<\wd6\relax
- \wd4=\!!zeropoint\box4\box6\relax
- \else
- \wd6=\!!zeropoint\box6\box4\relax
- \fi}}
-
%I n=Positioneren
%I c=\startpositioneren,\stelpositionerenin
%I
@@ -4811,38 +3927,76 @@
{\resetpositioneren%
\dodoubleargument\getparameters[\??ps]}%
-\def\positioneer(#1,#2)#3% \nextbox
- {\setbox0=\hbox{#3}%
- \def\berekenpositioneren##1##2##3##4##5##6##7##8##9%
- {\skip0=##1\@@pseenheid\relax
- \skip0=##8\skip0\relax
- \skip0=##9\skip0\relax
- \doifelse{##2}{\v!relatief}%
- {\advance\skip0 by ##3\relax
- \advance\skip0 by ##4\relax
- \def##4{\!!zeropoint}}%
- {\advance\skip0 by ##4\relax}%
- ##3=\skip0\relax
- \doifnot{\@@psstatus}{\v!overlay}
- {\skip2=##5\relax
- \advance\skip2 by ##3\relax
- \ifdim##3<-##7\relax\global##7=-##3\relax\fi
- \ifdim\skip2>##6\relax\global##6=\skip2\relax\fi}}%
- \berekenpositioneren{#1}{\@@psxstap}{\xpositie}
- {\@@psxoffset}{\wd0}{\xafmeting}{\xoffset}
- {\@@psxschaal}{\@@psxfactor}%
- \skip4=\ht0 \advance\skip4 by \dp0
- \berekenpositioneren{#2}{\@@psystap}{\ypositie}
- {\@@psyoffset}{\skip4}{\yafmeting}{\yoffset}
- {\@@psyschaal}{\@@psyfactor}%
- \vbox to \!!zeropoint
- {\vskip\ypositie
- \hbox to \!!zeropoint
- {\hskip\xpositie
- \box0
- \hskip-\xpositie}%
- \vskip-\ypositie}%
- \ignorespaces}
+% \def\positioneer(#1,#2)#3% \nextbox
+% {\setbox0=\hbox{#3}%
+% \def\berekenpositioneren##1##2##3##4##5##6##7##8##9%
+% {\skip0=##1\@@pseenheid\relax
+% \skip0=##8\skip0\relax
+% \skip0=##9\skip0\relax
+% \doifelse{##2}{\v!relatief}%
+% {\advance\skip0 by ##3\relax
+% \advance\skip0 by ##4\relax
+% \def##4{\!!zeropoint}}%
+% {\advance\skip0 by ##4\relax}%
+% ##3=\skip0\relax
+% \doifnot{\@@psstatus}{\v!overlay}
+% {\skip2=##5\relax
+% \advance\skip2 by ##3\relax
+% \ifdim##3<-##7\relax\global##7=-##3\relax\fi
+% \ifdim\skip2>##6\relax\global##6=\skip2\relax\fi}}%
+% \berekenpositioneren{#1}{\@@psxstap}{\xpositie}
+% {\@@psxoffset}{\wd0}{\xafmeting}{\xoffset}
+% {\@@psxschaal}{\@@psxfactor}%
+% \skip4=\ht0 \advance\skip4 by \dp0
+% \berekenpositioneren{#2}{\@@psystap}{\ypositie}
+% {\@@psyoffset}{\skip4}{\yafmeting}{\yoffset}
+% {\@@psyschaal}{\@@psyfactor}%
+% \vbox to \!!zeropoint % kan beter.
+% {\vskip\ypositie
+% \hbox to \!!zeropoint
+% {\hskip\xpositie
+% \box0
+% \hskip-\xpositie}%
+% \vskip-\ypositie}%
+% \ignorespaces}
+
+\def\berekenpositioneren#1#2#3#4#5#6#7#8#9%
+ {\setdimensionwithunit\scratchskip{#1}\@@pseenheid % \scratchskip=#1\@@pseenheid
+ \scratchskip=#8\scratchskip
+ \scratchskip=#9\scratchskip
+ \advance\scratchskip by #4\relax
+ \doif{#2}{\v!relatief}%
+ {\advance\scratchskip by #3%
+ \let#4\!!zeropoint}%
+ #3=\scratchskip\relax
+ \doifnot{\@@psstatus}{\v!overlay}
+ {\scratchskip=#5\relax
+ \advance\scratchskip by #3\relax
+ \ifdim#3<-#7\relax\global#7=-#3\relax\fi
+ \ifdim\scratchskip>#6\relax\global#6=\scratchskip\relax\fi}}
+
+\def\positioneer%
+ {\dosingleempty\dopositioneer}
+
+\def\dopositioneer[#1]#2(#3,#4)%
+ {\dowithnextbox
+ {\bgroup
+ \stelpositionerenin[#1]%
+ \dontcomplain
+ \berekenpositioneren{#3}{\@@psxstap}{\xpositie}
+ {\@@psxoffset}{\wd\nextbox}{\xafmeting}{\xoffset}
+ {\@@psxschaal}{\@@psxfactor}%
+ \scratchdimen=\ht\nextbox \advance\scratchdimen \dp\nextbox
+ \berekenpositioneren{#4}{\@@psystap}{\ypositie}
+ {\@@psyoffset}{\scratchdimen}{\yafmeting}{\yoffset}
+ {\@@psyschaal}{\@@psyfactor}%
+ \setbox\nextbox=\hbox
+ {\hskip\xpositie\lower\ypositie\box\nextbox}%
+ \smashbox\nextbox
+ \box\nextbox
+ \egroup
+ \ignorespaces}
+ \hbox}
%I n=Kolommen
%I c=\stelkolommenin,\startkolommen,\kolom
@@ -4878,7 +4032,17 @@
\binnenkolommenfalse
\def\stelkolommenin%
- {\dodoubleargument\getparameters[\??kl]}
+ {\dodoubleargument\dostelkolommenin}
+
+\def\stelkolommenin[#1]%
+ {\getparameters[\??kl][#1]%
+ \nofcolumns=\@@kln\relax
+ \processaction
+ [\@@kllijn]
+ [ \v!aan=>\let\betweencolumns=\linebetweencolumns,
+ \v!uit=>\let\betweencolumns=\spacebetweencolumns,
+ \s!default=>\let\betweencolumns=\spacebetweencolumns,
+ \s!unknown=>\let\betweencolumns=\@@kllijn]}
\def\linebetweencolumns%
{\bgroup
@@ -4932,12 +4096,6 @@
\ifx\@@klcommando\empty\else
\let\postprocesscolumnline\@@klcommando
\fi
- \processaction
- [\@@kllijn]
- [ \v!aan=>\let\betweencolumns=\linebetweencolumns,
- \v!uit=>\let\betweencolumns=\spacebetweencolumns,
- \s!default=>\let\betweencolumns=\spacebetweencolumns,
- \s!unknown=>\let\betweencolumns=\@@kllijn]%
\doifelsenothing{\@@klhoogte}
{\heightencolumnsfalse}
{\heightencolumnstrue}%
@@ -4967,6 +4125,7 @@
\restorecurrentwitruimte}%
%
\edef\fixedcolumnheight{\@@klhoogte}%
+\edef\minbalancetoplines{\@@klnboven}%
\steltolerantiein[\@@kltolerantie]% %% \startkolommen
\stelblankoin[\@@klblanko]%
\ifdim\tussenwit>\!!zeropoint
@@ -5251,1599 +4410,6 @@
\herhaal[4*\tooninstellingen\pagina]
\egroup}
-% - meerdere niveaus (moet niet moeilijk zijn)
-% - instellingen in macro
-
-%I n=Opsomming
-%I c=\startopsomming,\som,\sub,\kop,\sym,\mar,\but
-%I c=\stelopsommingin
-%I
-%I Opsommingen kunnen tot op vier niveaus automatisch worden
-%I aangemaakt met het commando:
-%I
-%I \startopsomming[aanduiding][instellingen]
-%I
-%I \som ........
-%I \som ........
-%I \som[referentie] ........
-%I \som ........
-%I
-%I \stopopsomming
-%I
-%I Eventueel kan direct achter \som een [referentie] worden
-%I opgegeven, zodat men bijvoorbeeld kan verwijzen naar
-%I 'punt \in[referentie]' (hier punt 3).
-%P
-%I De volgende genummerde aanduidingen zijn mogelijk:
-%I
-%I wijze van 'nummeren' instelling
-%I
-%I 1, 2, 3, 4 n (normaal) / o (oldstyle)
-%I a, b, c, d a
-%I A, B, C, D A (normaal) / KA (kap)
-%I i, ii, iii, iv r
-%I I, II, III, IV R (normaal) / KR (kap)
-%I
-%I doornummeren verder
-%P
-%I De volgende niet-genummerde aanduidingen zijn mogelijk
-%I (de aanduiding kan eventueel achterwege blijven):
-%I
-%I wijze van 'markeren' instelling
-%I
-%I dot 1
-%I streepje 2
-%I sterretje 3
-%I driehoekje 4
-%I bolletje 5
-%I groter bolletje 6
-%I nog groter bolletje 7
-%I
-%I alleen inspringen leeg laten
-%P
-%I Het al dan niet inspringen en de eventuele ruimte tussen
-%I de onderdelen wordt globaal of lokaal ingesteld met de
-%I commando's:
-%I
-%I \stelopsommingin[niveau][instelling]
-%I
-%I waarbij de volgende instellingen mogelijk zijn:
-%I
-%I standaard standaard instellingen
-%I opelkaar geen witruimte tussen onderdelen
-%I aanelkaar weinig witruimte na het symbool
-%I aansluitend geen wit voor en na de opsomming
-%I ruim meer witruimte na het symbool (n*ruim)
-%I inmarge markering in de kantlijn
-%I opmarge markering op de 'kantlijn'
-%I afsluiter afsluiter achter markering
-%I kolommen in twee kolommen zetten
-%I intro aansluiten op vorige regel(s)
-%P
-%I In plaats van een cijfer bij niveau kan ook het woord
-%I 'elk' worden gegeven. De instellingen mogen ook direkt
-%I achter de aanduiding worden meegegeven: [1,opelkaar].
-%I
-%I Als alternatief voor \som is \kop beschikbaar. In dat geval
-%I wordt de eerste alinea (of een eerste woord) afwijkend gezet.
-%I
-%I Met \sym{symbool} kan een eigen symbool worden geplaatst.
-%I Als dit symbool breed is (bijvoorbeeld ++), kan men de
-%I breedte aanpassen, bijvoorbeeld: \startopsomming[2*ruim].
-%I
-%I Een ander alternatief is \mar{tekst}. De tekst wordt in
-%I dat geval in de marge geplaatst.
-%I
-%I Een leeg item (dus zonder aanduiding) kan worden
-%I opgeroepen met \nop. Op deze manier kunnen opsommingen in
-%I kolommen worden uitgelijnd (gemanipuleerd). Het commando
-%I \nop komt overeen met \sym{\strut} \strut.
-%P
-%I Met \som[aanduiding] (zonder \start... \stop...) kan snel een
-%I opsomming met ‚‚n item worden gezet. In dat geval wordt er
-%I geen referentie aangemaakt.
-%I
-%I Als men een item tussenvoegt maar (vooralsnog) de nummering
-%I niet wil verhogen, dan kan men \sub gebruiken. Het oude nummer
-%I wordt dan in het zetwerk voorafgegaan door een +.
-%I
-%I Interactieve items kunnen worden gemaakt met \but, waarbij
-%I de bestemming tussen [] moet worden meegegeven.
-%P
-%I Een nauwkeuriger (globale) instelling is eveneens mogelijk met
-%I het commando:
-%I
-%I \stelopsommingin[niveau][breedte=,voor=,tussen=,na=,
-%I kopvoor=,kopna=,kopletter=,marletter=,symlettter=,
-%I afsluiter=,n=,factor=,afstand=]
-%I
-%I Standaard gelden voor de letters de volgende instellingen:
-%I
-%I kopletter normaal
-%I marletter type
-%I symletter vet
-%I
-%I De commando's \sym{symbool} en \som zijn ook buiten
-%I opsommingen beschikbaar.
-
-%T n=opsomming
-%T m=ops
-%T a=o
-%T
-%T \startopsomming
-%T
-%T \som ?
-%T
-%T \stopopsomming
-
-%T n=som
-%T m=som
-%T a=s
-%T
-%T \som ?
-
-%
-% NOG [0] voor start op 0
-%
-
-\newif\ifsubsom \subsomfalse
-\newif\ifsymsom \symsomfalse
-\newif\ifkopsom \kopsomfalse
-\newif\ifsomintro \somintrofalse
-\newif\ifsomautointro \somautointrofalse
-\newif\ifoptimizeitems \optimizeitemstrue
-\newif\ifpackeditems \packeditemsfalse
-\newif\iffirstlist \firstlistfalse
-
-\newcounter \itemcolumndepth
-
-\definetwopasslist{\s!list}
-
-\newcounter\noflists
-\newcounter\itemlevel
-
-\def\dolistreference%
- {\immediatewriteutilitycommand%
- {\twopassentry%
- {\s!list}%
- {\currentlist}%
- {\currentlist:\noflistelements}}}
-
-\def\setnextitemlevel#1%
- {\doifundefined{\??op#1\c!breedte}
- {\edef\itemreferences{\itemreferences,#1}%
- \copyparameters
- [\??op#1][\??oo]
- [\c!breedte,\c!factor,\c!afstand,
- \c!letter,\c!marletter,\c!symletter,\c!kopletter,
- \c!kleur,\c!markleur,\c!symkleur,\c!kopkleur,
- \c!kopvoor,\c!kopna,\c!voor,\c!tussen,\c!na,
- \c!afsluiter,\c!plaatsafsluiter,\c!inspringen,
- \c!n,\c!binnen,\c!symbool,\c!marge]%
- \makecounter{\s!itemcount#1}%
- \setvalue{\??op\c!symbool\s!global#1}{#1}}}
-
-\def\maxitemlevel{0}
-\def\itemreferences{0}
-
-\def\dostelopsommingenin[#1]% % still undocumented
- {\getparameters[\??oo][\c!niveaus=4,#1]%
- \ifnum\@@ooniveaus>\maxitemlevel
- \edef\maxitemlevel{\@@ooniveaus}%
- \herhaal[\maxitemlevel*\setnextitemlevel{\herhaler}]%
- %\dorecurse{\@@ooniveaus}{\setnextitemlevel\recurselevel}%
- \fi}
-
-\def\stelopsommingenin%
- {\dosingleargument\dostelopsommingenin}
-
-\def\doitemreference#1,#2,#3\\%
- {\ifnum\itemlevel>#1
- \ifnum#1>0
- \tempsymbool
- \fi
- \getvalue{\??op\c!symbool#2}%
- \doitemreference#2,#3\\%
- \fi}
-
-\def\itemreference%
- {\expandafter\doitemreference\itemreferences,,\\}
-
-\def\itemuse#1%
- {\getvalue{\??op\itemlevel#1}}%
-
-\def\packitems%
- {\ifnum\itemlevel=0 \else\packeditemstrue\fi}
-
-\def\dostelopsomminginvariable[#1][#2]% niveau instellingen
- {\doifelsenothing{#1}
- {\getparameters[\??op\itemlevel][#2]}%
- {\getparameters[\??op#1][#2]}}
-
-\def\dododostelopsomminginconstant[#1][#2#3#4]% * permits [2]
- {\processaction
- [#2#3#4]
- [ \v!opelkaar*=>\packitems,
- \v!vanelkaar*=>\packeditemsfalse,
- \v!intro*=>\somintrotrue,
- \v!autointro*=>\somautointrotrue,
- \v!ruim*=>{\doassign[\??op#1][\c!factor=1]},
- #2#3*\v!ruim*=>{\doassign[\??op#1][\c!factor=#2#3]},
- #2*\v!ruim*=>{\doassign[\??op#1][\c!factor=#2]},
- \v!marge*=>{\doassign[\??op#1][\c!breedte=-2em]}, % signal
- \v!inmarge*=>{\doassign[\??op#1][\c!breedte=-2em]}, % signal
- \v!opmarge*=>\doifnot{#1}{1}{\doassign[\??op#1][\c!breedte=0em]}, % signal
- \v!kolommen*=>\packitems,
- \v!los*=>\optimizeitemsfalse,
- \v!aansluitend*=>{\getparameters[\??op#1]
- [\c!kopvoor=,\c!kopna=,
- \c!voor=,\c!tussen=,\c!na=]%
- \packitems},
- \v!aanelkaar*=>{\doassign[\??op#1][\c!factor=-1]},
- #2#3*\v!aanelkaar*=>{\doassign[\??op#1][\c!factor=-#2#3]},
- #2*\v!aanelkaar*=>{\doassign[\??op#1][\c!factor=-#2]},
- \v!afsluiter*=>{\doassign[\??op#1][\c!plaatsafsluiter=\v!ja]},
- \v!standaard*=>{\getparameters[\??op#1]
- [\c!breedte=1.5em,
- \c!factor=0,
- \c!afstand=.5em,
- \c!kopvoor=,
- \c!kopna=\blanko,
- \c!voor=\blanko,
- \c!tussen=\blanko,
- \c!na=\blanko,
- \c!binnen=]}]}
-
-\def\dostelopsomminginconstant[#1][#2]%
- {\def\dodostelopsomminginconstant##1%
- {\dododostelopsomminginconstant[#1][##1*]}%
- \processcommalist[#2]\dodostelopsomminginconstant}
-
-\def\dodododostelopsommingin[#1][#2]%
- {\ConvertToConstant\doifinstringelse{=}{#2}
- {\dostelopsomminginvariable[#1][#2]}
- {\setvalue{\??op#1}{\dostelopsomminginconstant[#1][#2]}}}%
-
-\def\dododostelopsommingin[#1][#2]%
- {\ConvertToConstant\doifnot{#2}{}
- {\doifelse{#1}{\v!elk}
- {\herhaal[\maxitemlevel*{\ExpandFirstAfter\dodododostelopsommingin[\herhaler][#2]}]}
-% {\dorecurse{\maxitemlevel}{\ExpandFirstAfter\dodododostelopsommingin[\recurselevel][#2]}}
- {\ExpandFirstAfter\dodododostelopsommingin[#1][#2]}}}
-
-\def\dodostelopsommingin[#1][#2]%
- {\ConvertToConstant\doifelse{#2}{}
- {\ifnum\itemlevel=0\relax
- \dododostelopsommingin[\v!elk][#1]%
- \else
- \dododostelopsommingin[\itemlevel][#1]%
- \fi}
- {\doifelsenothing{#1}
- {\dododostelopsommingin[\itemlevel][#2]}
- {\dododostelopsommingin[#1][#2]}}}
-
-\def\dostelopsommingin[#1][#2][#3]%
- {\dodostelopsommingin[#1][#2]%
- \ConvertToConstant\doifnot{#3}{} % anders wordt #2 overruled
- {\dodostelopsommingin[#1][#3]}}
-
-\def\stelopsommingin%
- {\dotripleempty\dostelopsommingin}
-
-\def\doadvanceitem%
- {\ifsubsom\else\ifsymsom\else
- \pluscounter{\s!itemcount\itemlevel}%
- \fi\fi}
-
-\def\setitemlevel#1%
- {\ifnum\itemlevel>0\relax
- \firstlisttrue
- \doifnotinset{\v!verder}{#1}
- {\resetcounter{\s!itemcount\itemlevel}}%
- \def\tempnumber%
- {\countervalue{\s!itemcount\itemlevel}}%
- \doifelsevalue{\??op\itemlevel\c!plaatsafsluiter}{\v!ja}
- {\def\tempsymbool{\getvalue{\??op\itemlevel\c!afsluiter}}}
- {\def\tempsymbool{}}%
- \fi}
-
-% PAS OP: ook 'opelkaar' en zo worden getest, nog eens afvangen!
-
-\def\setitemmark#1% % en pas op: resets \docommando
- {\doifsymboldefinedelse{#1}
- {\setxvalue{\??op\c!symbool\s!global\itemlevel}{#1}%
- \setgvalue{\??op\c!symbool\s!local\itemlevel}{?}%
- \def\listitem{\symbol[#1]}%
- \let\docommando\gobbleoneargument}
- {\doifconversiondefinedelse{#1}
- {\setxvalue{\??op\c!symbool\s!global\itemlevel}{#1}%
- \setgvalue{\??op\c!symbool\s!local\itemlevel}%
- {\convertnumber{#1}{\countervalue{\s!itemcount\itemlevel}}}%
- \def\listitem%
- {\getvalue{\??op\c!symbool\s!local\itemlevel}\tempsymbool}%
- \let\docommando\gobbleoneargument}
- {\let\listitem\empty}}}
-
-%\def\calculatelistwidth#1#2%
-% {#2=\getvalue{\??op#1\c!afstand}\relax
-% \multiply#2 by \getvalue{\??op#1\c!factor}\relax
-% \advance#2 by \getvalue{\??op#1\c!breedte}\relax}
-
-\def\calculatelistwidth#1#2%
- {#2=\getvalue{\??op#1\c!afstand}\relax
- \ifnum\getvalue{\??op#1\c!factor}>0
- \ifdim#2=\!!zeropoint #2=.5em\fi
- \fi
- \multiply#2 by \getvalue{\??op#1\c!factor}\relax
- \advance#2 by \getvalue{\??op#1\c!breedte}\relax}
-
-\def\dodostartopsomming[#1][#2]%
- {\ifhmode
- \par
- \fi
- \ifnum\itemlevel=\maxitemlevel\relax
- \showmessage{\m!layouts}{9}{\maxitemlevel}%
- \def\itemincrement{0}%
- \else
- \def\itemincrement{1}%
- \fi
- \doglobal\increment(\itemlevel,\itemincrement)%
- \begingroup
- \ifnum\itemlevel=1 % NIEUW
- \doadaptleftskip{\getvalue{\??op1\c!marge}}%
-% \dosetraggedcommand{\@@oouitlijnen}\raggedcommand
- \fi
-\dosetraggedcommand{\getvalue{\??op\itemlevel\c!uitlijnen}}\raggedcommand
-\doifvaluesomething{\??op\itemlevel\c!inspringen}
- {\expanded{\stelinspringenin[\getvalue{\??op\itemlevel\c!inspringen}]}}%
- \doifinset{\v!kolommen}{#1}%
- {\ifbinnenkolommen\else\ifnum\itemcolumndepth=0
- \global\let\itemcolumndepth\itemlevel
- \getvalue{\??op\itemlevel\c!voor}%
- \processfirstactioninset
- [#1]
- [ \v!een=>\!!counta=1\relax,
- \v!twee=>\!!counta=2\relax,
- \v!drie=>\!!counta=3\relax,
- \v!vier=>\!!counta=4\relax,
- \v!vijf=>\!!counta=5\relax,
- \s!unknown=>\@EA\!!counta\getvalue{\??op\itemlevel\c!n}]%
- \startkolommen
- [\c!n=\!!counta, % neter \??op\itemlevel\c!n
- \c!hoogte=,
- \c!lijn=\v!uit,
- \c!balanceren=\v!ja,
- \c!uitlijnen=\v!nee]%
- \fi\fi}%
- \doifinsetelse{\v!intro}{#1}
- {\somintrotrue}
- {\somintrofalse}%
- \doglobal\increment\noflists
- \let\currentlist=\noflists
- \newcounter\noflistelements
- \kopsomfalse
- \subsomfalse
- \symsomfalse
- \let\marsymbol=\relax
- \global\let\somdestination=\empty
- \def\symsymbol{}%
- \def\som%
- {\dosom}%
- \def\but[##1]%
- {\gdef\somdestination{##1}%
- \dosom}%
- \def\nop%
- {\sym{\strut}\strut}%
- \definecomplexorsimple\its
- \setvalue{\v!mar}##1%
- {\def\marsymbol%
- {\llap
- {\doattributes{\??op\itemlevel}\c!marletter\c!markleur{##1}%
- \hskip\leftskip\hskip\linkermargeafstand}}%
- \dosom}%
- \setvalue{\v!kop}%
- {\kopsomtrue\dokop}%
- \setvalue{\v!sub}%
- {\subsomtrue\dosom}%
- \setvalue{\v!sym}##1%
- {\def\symsymbol%
- {\doattributes{\??op\itemlevel}\c!symletter\c!symkleur{##1}}%
- \symsomtrue
- \dosom}%
-% \setvalue{\v!its}%
-% {\getvalue{\v!sym}%
-% {\calculatelistwidth{\itemlevel}{\dimen0}%
-% \hbox to \dimen0
-% {\dorecurse{\getvalue{\??op\itemlevel\c!items}}
-% {\listitem\hss}%
-% \unskip
-% \hskip\getvalue{\??op\itemlevel\c!afstand}}}}%
- \setvalue{\v!its}%
- {\getvalue{\v!ran}%
- {\dorecurse{\getvalue{\??op\itemlevel\c!items}}{\listitem\hss}%
- \unskip}}%
- \setvalue{\v!ran}##1%
- {\getvalue{\v!sym}%
- {\calculatelistwidth{\itemlevel}{\dimen0}%
- \hbox to \dimen0
- {##1\hskip\getvalue{\??op\itemlevel\c!afstand}}}}%
- \setitemlevel{#1}%
- \getvalue{\??op\itemlevel}%
- \doifelsenothing{#1} % iffirstargument
- {\edef\@@opsymbool{\getvalue{\??op\itemlevel\c!symbool}}%
- \setgvalue{\??op\c!symbool\s!global\itemlevel}{}%
- \setgvalue{\??op\v!verder\itemlevel}{}%
- \setitemmark{\@@opsymbool}%
- \dostelopsomminginvariable[\itemlevel][#2]}
- {\dostelopsomminginconstant[\itemlevel][#1]%
- \dostelopsomminginvariable[\itemlevel][#2]%
- \doifinsetelse{\v!verder}{#1}% \moexpand, else problems in non-etex with chinese
- %{\edef\@@opsymbool{\getvalue{\??op\c!symbool\s!global\itemlevel}}%
- {\edef\@@opsymbool{\noexpand\getvalue{\??op\c!symbool\s!global\itemlevel}}%
- \getvalue{\??op\v!verder\itemlevel}}
- %{\edef\@@opsymbool{\getvalue{\??op\itemlevel\c!symbool}}%
- {\edef\@@opsymbool{\noexpand\getvalue{\??op\itemlevel\c!symbool}}%
- \setgvalue{\??op\v!verder\itemlevel}%
- {\dostelopsomminginconstant[\itemlevel][#1]%
- \dostelopsomminginvariable[\itemlevel][#2]}}%
- \def\docommando{\setitemmark}% \setitemmark resets \docommando
- \processcommalist[#1,\@@opsymbool]\docommando}%
- \ifsomautointro\ifnum\prevgraf<3
- \somintrotrue
- \fi\fi
- \ifpackeditems
- \doassign[\??op\itemlevel][\c!tussen=]%
- \fi
- \calculatelistwidth{\itemlevel}{\dimen0}%
- \ifdim\dimen0>\!!zeropoint\relax
- \advance\leftskip by \dimen0\relax
- \fi}
-
-\def\dostartopsomming[#1][#2]%
- {\ifsecondargument
- \dodostartopsomming[#1][#2]%
- \else
- \doifassignmentelse{#1}
- {\dodostartopsomming[][#1]}
- {\dodostartopsomming[#1][]}%
- \fi}
-
-\def\startopsomming%
- {\bgroup
- \dodoubleempty\dostartopsomming}
-
-\def\stopopsomming%
- {\par
- \ifnum\itemcolumndepth=0 \dolistreference \fi % beware !
- \iffirstlist \else \endgroup \fi % toegevoegd, eerte \som opent groep
- \ifnum\itemcolumndepth=\itemlevel\relax
- \stopkolommen
- \doglobal\newcounter\itemcolumndepth
- \getvalue{\??op\itemlevel\c!na}%
- \else
- \ifnum\itemlevel=1
- \dosomebreak\allowbreak % toegevoegd
- \getvalue{\??op1\c!na}%
- \doif{\@@oospringvolgendein}{\v!nee}{\noindentation}%
- \fi
- \fi
- \endgroup
- \doglobal\decrement(\itemlevel,\itemincrement)%
- \egroup}
-
-\def\sombreak%
- {\flushfootnotes\penalty-5\relax} % -10
-
-\def\somnobreak%
- {\flushfootnotes\penalty+5\ifbinnenkolommen\else00\fi\relax} % +5
-
-\def\dolistitem% evt aantal items opslaan per niveau, scheelt zoeken
- {\par
- \ignorespaces
- \increment\noflistelements
- \ifnum\itemcolumndepth=0\relax\ifoptimizeitems
- \ifnum\noflistelements=1 % tgv bv kolommen/nesting
- \findtwopassdata{\s!list}{\noflists:}% % wordt soms de volgorde
- \fi % verstoord, vandaar \find
- \iftwopassdatafound
- \ifnum\twopassdata=3
- \ifnum\noflistelements>1
- \dosomebreak\somnobreak
- \fi
- \else\ifnum\twopassdata>3
- \ifnum\noflistelements=2
- \ifsomintro
- \dosomebreak\nobreak
- \else
- \dosomebreak\somnobreak
- \fi
- \else\ifnum\twopassdata=\noflistelements\relax
- \dosomebreak\somnobreak
- \else\ifnum\noflistelements>2
- \dosomebreak\sombreak
- \else
- \ifsomintro\else\dosomebreak\sombreak\fi
- \fi\fi\fi
- \fi\fi
- \fi
- \fi\fi
- \noindent
- \ifkopsom
- \setbox8=\hbox
- {\doattributes{\??op\itemlevel}\c!kopletter\c!kopkleur{\listitem}}%
- \else\ifsymsom
- \setbox8=\hbox{\symsymbol}%
- \else
- \setbox8=\hbox
- {\doattributes{\??op\itemlevel}\c!letter\c!kleur{\listitem}}%
- \fi\fi
- \doifsomething{\somdestination}
- %{\setbox8=\hbox{\naar{\copy8}[\somdestination]}}%
- {\setbox8=\hbox{\naar{\box8}[\somdestination]}}%
- \global\let\somdestination=\empty
- \dimen2=\getvalue{\??op\itemlevel\c!breedte}\relax
- \ifdim\dimen2<\!!zeropoint\relax
- \llap{\ifsubsom\llap{+}\fi\box8\hskip\linkermargeafstand}%
- \else
- \ifdim\dimen2=\!!zeropoint\relax
- \calculatelistwidth{1}{\dimen0}%
- \else
- \calculatelistwidth{\itemlevel}{\dimen0}%
- \fi
- \llap{\hbox to \dimen0{\ifsubsom\llap{+}\fi\box8\hfill}}%
- \fi
- \setevalue{\??op\c!symbool\itemlevel}%
- %{\getvalue{\??op\c!symbool\s!local\itemlevel}}% problems with \uchar
- {\noexpand\getvalue{\??op\c!symbool\s!local\itemlevel}}%
- \kopsomfalse
- \subsomfalse
- \symsomfalse
- \EveryPar{\ignorespaces}%
- \ignorespaces}
-
-\def\complexdosom[#1]%
- {\par
- \ignorespaces
- \doadvanceitem
- \ifnum\itemcolumndepth=0\relax\ifnum\noflistelements>0\relax
- \dosomebreak\nobreak
- \fi\fi
- \iffirstlist
- \firstlistfalse
- \begingroup
- \ifcase\itemlevel
- \or % 1
- \ifnum\itemcolumndepth=0\relax
- \ifsomintro\dosomebreak\nobreak\fi
- \getvalue{\??op1\c!voor}%
- \ifsomintro\dosomebreak\nobreak\fi
- \fi
- \else % 2 en hoger
- \let\previtemlevel=\itemlevel
- \decrement\previtemlevel
- \getvalue{\??op\previtemlevel\c!tussen}% = itemlevel-1
- \fi
- \else
- \itemuse\c!tussen
- \fi
- \ignorespaces
- \dolistitem
- \ifpackeditems
- \stelwitruimtein[\v!geen]%
- \fi
- \itemuse\c!binnen
- \marsymbol
- \let\marsymbol=\relax
- \doifsomething{#1}
- {\doifnot{\itemreference}{?}
- {\bgroup
- \protectconversion
- \rawreference{\s!lst}{#1}{\itemreference}%
- \egroup}}%
- \strut % added 11-08-99
- \ignorespaces}
-
-\def\complexsom[#1]#2\par%
- {\startopsomming[#1]
- \complexdosom[]\ignorespaces\begstrut#2\unskip\endstrut\par
- \stopopsomming}
-
-\definecomplexorsimpleempty\som
-\definecomplexorsimpleempty\dosom
-
-% \def\complexdokop[#1]#2\par%
-% {\ifpackeditems\else\itemuse\c!kopvoor\fi
-% \dosomebreak{\pagina[\v!voorkeur]}% geen \goodbreak ! \allowbreak testen
-% \complexdosom[#1]{\doattributes{\??op\itemlevel}\c!kopletter\c!kopkleur
-% {\ignorespaces#2}}\par
-% \ifpackeditems\else\itemuse\c!kopna\fi
-% \dosomebreak\nobreak
-% \noindentation}
-
-\def\complexdokop[#1]#2\par% % beter in \complexdosom hangen met een if
- {\iffirstlist\else\dosomebreak\allowbreak\fi
- \ifpackeditems\else\itemuse\c!kopvoor\fi
- \iffirstlist\ifsomintro\else\ifcase\itemlevel % incr in \complexdosom
- %\dosomebreak{\pagina[\v!voorkeur]}% geen \goodbreak ! \allowbreak testen
- \dosomebreak\allowbreak
- \fi\fi\fi
- \complexdosom[#1]{\doattributes{\??op\itemlevel}\c!kopletter\c!kopkleur
- {\ignorespaces#2}}\par
- \dosomebreak\nobreak
- \ifpackeditems\else\itemuse\c!kopna\fi
- \dosomebreak\nobreak
- \noindentation}
-
-\def\complexkop[#1]#2\par#3\par%
- {\startopsomming[#1]%
- \complexdokop[]\ignorespaces#2\par#3\par
- \stopopsomming}
-
-\definecomplexorsimpleempty\kop
-\definecomplexorsimpleempty\dokop
-
-\def\sym#1%
- {\noindent
- \setbox0=\hbox{#1}%
- \ifdim\wd0<1em\relax
- \setbox0=\hbox to 1.5em{#1\hfil}%
- \else
- \setbox0=\hbox spread 1em{#1\hfil}%
- \fi
- \hangindent=\wd0\relax
- \box0
- \ignorespaces}
-
-%I n=Doordefinieren
-%I c=\doordefinieren,\steldoordefinierenin
-%I
-%I Er kunnen (eenvoudige) definitie-lijsten worden
-%I gemaakt met behulp van het commando:
-%I
-%I \doordefinieren[naam][plaats=,breedte=,uitlijnen=,
-%I monster=,letter=,kopletter=,voor=,tussen=,na=,hang=,
-%I inspringen=,tekst=]
-%I
-%I Een definitie is vervolgens op naam op te roepen:
-%I
-%I \naam{begrip} definitie
-%P
-%I Een definitie heeft de vorm:
-%I
-%I links Dit is een linker tekst. Een tekst wordt
-%I links geplaatst als 'links' wordt meegegeven.
-%I
-%I Dit is een rechter tekst. Een tekst wordt rechts
-%I rechts geplaatst als 'rechts' wordt meegegeven.
-%I
-%I boven
-%I
-%I Dit is een tekst waarbij het woord erboven staat. Voor
-%I dit soort teksten wordt 'boven' meegegeven.
-%I
-%I Tot slot is het mogelijk de tekst in de marge of
-%I aansluitend te plaatsen, in dat geval wordt 'inmarge',
-%I 'inlinker', 'inrechter' of 'aanelkaar' meegegeven.
-%P
-%I Aan 'voor', 'tussen' of 'na' kan een commando worden
-%I toegekend, bijvoorbeeld \blanko[groot]. Als letter kan
-%I normaal, vet, kapitaal, type, schuin, klein en kleinvet
-%I worden meegegeven.
-%I
-%I Als 'breedte' kan een maat worden meegegeven of een van de
-%I instellingen 'passend' en 'ruim'. In dat geval wordt de
-%I aan 'monster' toegekende tekst als uitgangspunt genomen.
-%P
-%I Met 'hang' kan men aangeven hoe lang er links of rechts
-%I moet worden ingesprongen. Er kan een aantal regels worden
-%I meegegeven maar ook 'passend' of 'ruim'. Een overgang naar
-%I een nieuwe regel binnen een linker- of rechtertekst wordt
-%I afgedwongen met \\ (vergelijk \margeteksten).
-%I
-%I Defaultwaarden kunnen worden ingesteld met het commando:
-%I
-%I \steldoordefinierenin[instellingen]
-%I
-%I Het tussentijds bijstellen van de instellingen is mogelijk
-%I met:
-%I
-%I \steldoordefinieren[naam][instellingen]
-
-% 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. Het commando
-% \??dd#1\s!do\c!status moet in dat geval \v!start zijn.
-%
-% herimplementeren met \nextbox en \unhbox\unvbox
-
-\newbox\@@definitiebox
-
-\def\@@definitiewoord#1%
- {\getvalue{\??dd#1\s!do\c!commando}{#1}}
-
-\def\normal@@definitiewoord#1[#2]#3#4%
- {\doattributes
- {\??dd#1}\c!kopletter\c!kopkleur
- {\getvalue{\??dd#1\c!commando}% NAAR BUITENSTE NIVEAU !
- {\begstrut\getvalue{\??dd#1\c!tekst}#4\endstrut}}%
- \rawreference{\s!def}{#2}{#3}}
-
-\setvalue{@@definitie\v!links}#1%
- {\@@definitiehang{#1}\@@definitielinkspure\@@definitielinkshang}
-
-\setvalue{@@definitie\v!rechts}#1%
- {\@@definitiehang{#1}\@@definitierechtspure\@@definitierechtshang}
-
-\def\@@definitiehang#1#2#3%
- {\processaction
- [\getvalue{\??dd#1\c!hang}]
- [ \v!geen=>\let\next=#2,
- 0=>\let\next=#2,
- \s!unknown=>\let\next=#3,
- \s!default=>\let\next=#2]%
- \next{#1}}
-
-% \def\@@definitielinkspure#1[#2]#3%
-% {\@@dostartdefinitie{#1}[#2]{#3}%
-% \advance\leftskip by \!!widtha
-% \@@makedefinitiepurebox{#1}\raggedright%
-% \advance\leftskip by \!!widthb
-% \llap
-% {\hbox to \leftskip{\copy\@@definitiebox\hss}}% copy ?
-% \@@dodefinitie{#1}}
-%
-% \def\@@definitierechtspure#1[#2]#3%
-% {\@@dostartdefinitie{#1}[#2]{#3}%
-% \advance\rightskip by \!!widtha
-% \@@makedefinitiepurebox{#1}\raggedleft%
-% \rlap
-% {\hskip\hsize
-% \hskip-\leftskip
-% \hskip-\rightskip
-% \copy\@@definitiebox}%
-% \advance\rightskip by \!!widthb
-% \@@dodefinitie{#1}}
-
-\def\@@definitielinkspure#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \leftskip\@@leftdefinitieskip
- \rightskip\@@rightdefinitieskip
- \advance\leftskip by \!!widtha
- \@@makedefinitiepurebox{#1}\raggedright
- \advance\leftskip by \!!widthb
- \llap
- {\hbox to \leftskip
- {\hskip\@@leftdefinitieskip
- \copy\@@definitiebox\hss}}%
- \@@dodefinitie{#1}}
-
-\def\@@definitierechtspure#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \leftskip\@@leftdefinitieskip
- \rightskip\@@rightdefinitieskip
- \advance\rightskip by \!!widtha
- \@@makedefinitiepurebox{#1}\raggedleft
- \rlap
- {\hskip\hsize
- \hskip-\leftskip
- \hskip-\rightskip
- \copy\@@definitiebox
- \hskip\@@rightdefinitieskip}%
- \advance\rightskip by \!!widthb
- \@@dodefinitie{#1}}
-
-\def\@@makedefinitiepurebox#1#2%
- {\setbox\@@definitiebox=\vtop
- {\mindermeldingen
- \hsize\!!widtha
- \leftskip\!!zeropoint
- \rightskip\!!zeropoint
- #2\steluitlijnenin[\getvalue{\??dd#1\c!uitlijnen}]%
- \unhcopy\@@definitiebox}%
- \ht\@@definitiebox=\ht\strutbox
- \dp\@@definitiebox=\dp\strutbox}
-
-\def\@@definitielinkshang#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \mindermeldingen
- \advance\!!widtha by \!!widthb
- \hangindent=\!!widtha
- \@@makedefinitiehangbox{#1}{\raggedright}{\advance\rightskip by \!!widthb}%
- \llap
- {\dontshowcomposition
- \vtop to \!!zeropoint{\box\@@definitiebox}}%
- \@@dodefinitie{#1}}%
-
-\def\@@definitierechtshang#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \mindermeldingen
- \advance\!!widtha by \!!widthb
- \hangindent=-\!!widtha
- \@@makedefinitiehangbox{#1}{\raggedleft}{\advance\leftskip by \!!widthb}%
- \rlap
- {\mindermeldingen
- \dontshowcomposition
- \dimen0=\hsize
- \advance\dimen0 by -\leftskip
- \advance\dimen0 by -\rightskip
- \hbox to \dimen0
- {\hss\vtop to \!!zeropoint{\box\@@definitiebox}}}%
- \@@dodefinitie{#1}}
-
-\def\@@makedefinitiehangbox#1#2#3%
- {\setbox\@@definitiebox=\vtop % \vbox gaat fout in hang
- {\forgetall
- \mindermeldingen
- \hsize\!!widtha
- #2\steluitlijnenin[\getvalue{\??dd#1\c!uitlijnen}]#3%
- \unhcopy\@@definitiebox}%
- \ht\@@definitiebox=\ht\strutbox
- \dp\@@definitiebox=\dp\strutbox
- \doifinsetelse{\getvalue{\??dd#1\c!hang}}{\v!passend,\v!ruim}
- {\dimen0=\ht\@@definitiebox
- \advance\dimen0 by \dp\@@definitiebox
- \doifvalue{\??dd#1\c!hang}{\v!ruim}
- {\advance\dimen0 by .5\ht\strutbox}%
- \getnoflines{\dimen0}%
- \hangafter=-\noflines}
- {\hangafter=-\getvalue{\??dd#1\c!hang}}}%
-
-%\setvalue{@@definitie\v!boven}#1[#2]#3%
-% {%\pagina[\v!voorkeur]% % Weg ermee!
-% \dosomebreak{\goodbreak}% % Dit is beter en nodig!
-% \@@dostartdefinitie{#1}[#2]{\let\\=\space#3}%
-% \copy\@@definitiebox
-% \nobreak
-% \getvalue{\??dd#1\c!tussen}%
-% \@@dodefinitie{#1}}
-
-\setvalue{@@definitie\v!boven}#1[#2]#3%
- {%\pagina[\v!voorkeur]% % Weg ermee!
- %\dosomebreak{\goodbreak}% % Dit is beter en nodig!
- \dohandelpaginaafX1 % En dit moet het maar worden.
- \@@dostartdefinitie{#1}[#2]{\let\\=\space#3}%
- \copy\@@definitiebox\par
- \nobreak
- \getvalue{\??dd#1\c!tussen}%
- \nobreak
- \@@dodefinitie{#1}}
-
-\setvalue{@@definitie\v!inmarge}#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \inmarge{\unhcopy\@@definitiebox}%
- \@@dodefinitie{#1}}
-
-\setvalue{@@definitie\v!inlinker}#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \inlinker{\unhcopy\@@definitiebox}%
- \@@dodefinitie{#1}}
-
-\setvalue{@@definitie\v!inrechter}#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \inrechter{\unhcopy\@@definitiebox}%
- \@@dodefinitie{#1}}
-
-\def\@@definitieaanelkaarpassend#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \unhcopy\@@definitiebox
- \hskip\!!widthb % toegevoegd
- \@@dodefinitie{#1}}
-
-\def\@@definitieaanelkaarruim#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \unhcopy\@@definitiebox
- \hskip\!!widthb \!!plus .5\!!widthb \!!minus .25\!!widthb
- \@@dodefinitie{#1}}
-
-\def\@@definitieaanelkaarbreed#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}%
- \hbox to \!!widtha
- {\unhcopy\@@definitiebox\hss}%
- \hskip\!!widthb
- \ignorespaces
- \@@dodefinitie{#1}}
-
-\setvalue{@@definitie\v!aanelkaar}#1[#2]#3%
- {\processaction
- [\getvalue{\??dd#1\c!breedte}]
- [\v!passend=>\let\next=\@@definitieaanelkaarpassend,
- \v!ruim=>\let\next=\@@definitieaanelkaarruim,
- \s!unknown=>\let\next=\@@definitieaanelkaarbreed,
- \s!default=>\let\next=\@@definitieaanelkaarruim]%
- \next{#1}[#2]{#3}}
-
-% \setvalue{@@definitie\v!hangend}#1[#2]#3%
-% {\skip0=-\leftskip % uggly trick
-% \@@dostartdefinitie{#1}[#2]{#3}% % adds \c!marge to \leftskip
-% \advance\skip0 by \leftskip % but useful
-% \ifdim\skip0=\!!zeropoint
-% \skip0=1.5em % just some default
-% \advance\leftskip by \skip0
-% \fi
-% \hskip-\skip0 % no hang in the first line
-% \unhcopy\@@definitiebox
-% \ifdim\!!widthb=\!!zeropoint
-% \kern.75em % another default
-% \else
-% \kern\!!widthb
-% \fi
-% \ignorespaces
-% \@@dodefinitie{#1}}
-
-\setvalue{@@definitie\v!hangend}#1[#2]#3%
- {\@@dostartdefinitie{#1}[#2]{#3}% % adds \c!marge to \leftskip
- \advance\leftskip by -\leftskipadaption
- \ifdim\leftskipadaption=\!!zeropoint
- \leftskipadaption=1.5em % just some default
- \ifnum\insidedefinition=1 \ifdim\leftskip>\!!zeropoint
- \leftskipadaption=\leftskip
- \fi \fi
- \fi
- \ifnum\insidedefinition=1
- \advance\leftskip by \leftskipadaption
- \fi
- \hskip-\leftskipadaption
- \unhcopy\@@definitiebox
- \ifdim\!!widthb=\!!zeropoint
- \kern.75em % another default
- \else
- \kern\!!widthb
- \fi
- \ignorespaces
- \@@dodefinitie{#1}}
-
-% \def\@@dostartdefinitie#1[#2]#3%
-% {\getvalue{\??dd#1\c!voor}%
-% \begingroup
-% \doadaptleftskip{\getvalue{\??dd#1\c!marge}}%
-% \showcomposition
-% \setbox\@@definitiebox=\hbox
-% {\forgetall
-% \mindermeldingen
-% \def\\{\crcr}%
-% % \doattributes
-% % {\??dd#1}\c!kopletter\c!kopkleur
-% % {\doifelsevalue{\??dd#1\c!plaats}{\v!aanelkaar}
-% % {\@@definitiewoord{#1}[#2]{#3}{#3}}
-% % {\@@definitiewoord{#1}[#2]{#3}{\vbox{\halign{\strut##\hss\cr#3\crcr}}}}}}%
-% \doifelsevalue{\??dd#1\c!plaats}{\v!aanelkaar}
-% {\@@definitiewoord{#1}[#2]{#3}{#3}}
-% {\@@definitiewoord{#1}[#2]{#3}{\vbox{\halign{\strut##\hss\cr#3\crcr}}}}}%
-% \!!widthb=\getvalue{\??dd#1\c!afstand}\relax
-% \ifdim\!!widthb=\!!zeropoint\relax
-% \doifvalue{\??dd#1\c!breedte}{\v!ruim}{\!!widthb=1em}%
-% \fi
-% \assignwidth
-% {\!!widtha}
-% {\getvalue{\??dd#1\c!breedte}}
-% {\doifelsevaluenothing{\??dd#1\c!monster}
-% {\unhcopy\@@definitiebox}
-% {\doattributes
-% {\??dd#1}\c!kopletter\c!kopkleur
-% {\getvalue{\??dd#1\c!tekst}\getvalue{\??dd#1\c!monster}}}}
-% {\!!widthb}%
-% %\getvalue{\??dd#1\s!do\c!lokaal}%
-% \parindent=\!!zeropoint\relax
-% \noindent
-% \ignorespaces}
-
-%D A new key 'titeluitlijnen' in definitions.
-
-\chardef\insidedefinition=0
-
-\let\@@leftdefinitieskip \!!zeropoint
-\let\@@rightdefinitieskip\!!zeropoint
-
-\def\@@dostartdefinitie#1[#2]#3%
- {\getvalue{\??dd#1\c!voor}%
- \begingroup
- \doadaptleftskip{\getvalue{\??dd#1\c!marge}}%
- \showcomposition
- \setbox\@@definitiebox=\hbox
- {\forgetall
- \mindermeldingen
- \def\\{\crcr}%
- \doifelsevalue{\??dd#1\c!plaats}{\v!aanelkaar}
- {\@@definitiewoord{#1}[#2]{#3}{#3}}
- {\@@definitiewoord{#1}[#2]{#3}{\vbox{\halign{\strut##\hss\cr#3\crcr}}}}}%
- \!!widthb=\getvalue{\??dd#1\c!afstand}\relax
- \ifdim\!!widthb=\!!zeropoint\relax
- \doifvalue{\??dd#1\c!breedte}{\v!ruim}{\!!widthb=1em}%
- \fi
- \assignwidth
- {\!!widtha}
- {\getvalue{\??dd#1\c!breedte}}
- {\doifelsevaluenothing{\??dd#1\c!monster}
- {\unhcopy\@@definitiebox}
- {\doattributes
- {\??dd#1}\c!kopletter\c!kopkleur
- {\getvalue{\??dd#1\c!tekst}\getvalue{\??dd#1\c!monster}}}}
- {\!!widthb}%
- %\getvalue{\??dd#1\s!do\c!lokaal}%
- \parindent=\!!zeropoint\relax
- \doifelsevalue{\??dd#1\c!titeluitlijnen}{\v!nee}
- {\edef\@@leftdefinitieskip {\the\leftskip }%
- \edef\@@rightdefinitieskip{\the\rightskip}}
- {\ifcase\insidedefinition
- \edef\@@leftdefinitieskip {\the\leftskip }%
- \edef\@@rightdefinitieskip{\the\rightskip}%
- \fi}%
- \ifcase\insidedefinition
- \chardef\insidedefinition=1
- \or
- \chardef\insidedefinition=2
- \fi
- \noindent
- \ignorespaces}
-
-\def\@@stopdefinitie#1%
- {\par
- \dostopattributes
- \endgroup
- \egroup % temporary hack
- \getvalue{\??dd#1\c!na}%
- \doifvalue{\??dd#1\c!springvolgendein}{\v!nee}{\noindentation}}
-
-\def\@@dodefinitie#1%
- {\dostartattributes{\??dd#1}\c!letter\c!kleur{}%
- \ignorespaces}
-
-\def\@@somedefinitie#1[#2]#3%
- {\bgroup % temporary hack
- %\BeforePar{\getvalue{\??dd#1}[#2]{#3}}%
- \BeforePar{\executedoordefinitie{#1}[#2]{#3}}%
- \AfterPar{\@@stopdefinitie{#1}}%
- \GetPar}
-
-\def\@@startsomedefinitie#1[#2]#3%
- {\bgroup % temporary hack
- %\BeforePar{\getvalue{\??dd#1}[#2]{#3}}%
- \BeforePar{\executedoordefinitie{#1}[#2]{#3}}%
- \GotoPar}
-
-\def\dodosteldoordefinierenin[#1][#2]%
- {\getparameters[\??dd#1][#2]}
-
-\def\dosteldoordefinierenin[#1][#2]% % beter: \iffirstargument
- {\ConvertToConstant\doifelse{#2}{}
- {\dodosteldoordefinierenin[][#1]}
- {\dodoubleargumentwithset\dodosteldoordefinierenin[#1][#2]}}
-
-\def\steldoordefinierenin%
- {\dodoubleempty\dosteldoordefinierenin}
-
-\def\executedoordefinitie#1[#2]%
- {\ExpandAfter\doifundefined{@@definitie\getvalue{\??dd#1\c!plaats}}
- {\setvalue{\??dd#1\c!plaats}{\v!links}}%
- \getvalue{@@definitie\getvalue{\??dd#1\c!plaats}}{#1}[#2]}
-
-\def\dodoordefinieren[#1][#2]%
- {\copyparameters[\??dd#1][\??dd]
- [\c!plaats,\c!kopletter,\c!letter,\c!kleur,\c!kopkleur,
- \c!breedte,\c!hang,\c!monster,\c!voor,\c!tussen,\c!na,\c!marge,
- \c!springvolgendein,\c!uitlijnen,\c!tekst,\c!afstand,\c!commando]%
- \getparameters[\??dd#1]
- [\s!do\c!status=\v!stop,
- \s!do\c!commando=\normal@@definitiewoord,
- #2]%
- \doifvalue{\??dd#1\c!plaats}{\v!boven}%
- {\doassign[\??dd#1][\c!tussen={\blanko}]}%
- \setvalue{#1}%
- {\dodoubleempty\@@definitie[#1]}%
- \setvalue{\e!start#1}%
- {\dodoubleempty\@@startdefinitie[#1]}%
- \setvalue{\e!stop#1}%
- {\@@stopdefinitie{#1}}}%
-
-\def\@@startdefinitie[#1][#2]%
- {\doifelsevalue{\??dd#1\s!do\c!status}{\v!start}
- {\def\next{\@@startsomedefinitie{#1}[#2]{}}}
- {\def\next{\dowithwargument{\@@startsomedefinitie{#1}[#2]}}}%
- \next}
-
-\def\@@definitie[#1][#2]%
- {\doifelsevalue{\??dd#1\s!do\c!status}{\v!start}
- {\def\next{\@@somedefinitie{#1}[#2]{}}}
- {\def\next{\dowithwargument{\@@somedefinitie{#1}[#2]}}}%
- \next}
-
-\def\doordefinieren%
- {\dodoubleemptywithset\dodoordefinieren}
-
-%I n=Doornummeren
-%I c=\doornummeren,\steldoornummerenin
-%I c=\reset,\volgende,\vorige
-%I
-%I Het is mogelijk door een tekst heen genummerde opsommingen
-%I te gebruiken. Het beschikbare commando is:
-%I
-%I \doornummeren[naam][plaats=,niveaus=,conversie=,
-%I kopletter=,letter=,breedte=,monster=,tekst=,voor=,tussen=,
-%I na=,wijze=,blok=,scheider=,afsluiter=,hang=,links=,rechts=,
-%I sectienummer=,nummer=,koppeling=,uitlijnen=,inspringen]
-%I
-%I De naam bestaat uit letters.
-%I
-%I Na het commando 'doornummeren' zijn de volgende commando's
-%I beschikbaar:
-%I
-%I \naam
-%I \subnaam
-%I \subsubnaam
-%I
-%I waarbij naam staat voor de opgegeven naam.
-%P
-%I Dit commando komt in grote lijnen overeen met het
-%I commando \doordefinieren. Als de plaats 'links' is
-%I en de tekst is 'vraag', dan krijgen we na het
-%I geven van \vraag Wat ... was?:
-%I
-%I vraag 1 Wat zouden we krijgen als de plaats 'rechts'
-%I en de tekst 'antwoord' was?
-%I
-%I We kunnen een referentie meegeven, dus \vraag[ref]. Als
-%I we geen nummer willen, maar wel de tekst, dan is de
-%I aanroep \vraag[-]. Er wordt in dat geval niet opgehoogd.
-%I Hetzelfde kan worden bereikt door 'nummer' de waarde
-%I nee te geven.
-%P
-%I De wijze waarop het laatste niveau wordt weergegeven kan
-%I worden ingesteld met conversie: cijfers, letters, Letters,
-%I romeins en Romeins). Conversie heeft pas effect als ook
-%I niveaus is ingesteld (2 of 3, standaard 3).
-%I
-%I Voor of na de te nummeren tekst op te nemen commando's
-%I kunnen worden ingesteld. Ook kan een voor het nummer op te
-%I nemen tekst worden meegegeven en kan de plaats van de tekst
-%I en het nummer worden ingesteld (… la \doordefinieren!).
-%I
-%I Er kan een koppeling worden gelegd met een ander item. Zo
-%I kunnen bijvoorbeeld vragen worden gekoppeld aan antwoorden.
-%I Dergelijke koppelingen hebben pas betekenis bij
-%I interactieve teksten.
-%I
-%I Defaultwaarden kunnen worden ingesteld met het commando:
-%I
-%I \steldoornummerenin[instellingen]
-%P
-%I Het is mogelijk het nummeren opnieuw te starten met het
-%I commando:
-%I
-%I \reset<naam>
-%I
-%I en een (sub)nummer op te hogen met:
-%I
-%I \volgende<naam>
-%I \volgendesub<naam>
-%I
-%I Het tussentijds bijstellen van de instellingen is mogelijk
-%I met:
-%I
-%I \steldoornummerenin[naam][instellingen]
-
-\def\showdnpuretext#1%
- {\strut\getvalue{\??dd#1\c!tekst}} % geen spatie
-
-\def\showdntext#1%
- {\doifelsevaluenothing{\??dd#1\c!tekst}
- {\ignorespaces}
- {\strut\getvalue{\??dd#1\c!tekst}\fixedspace}}
-
-\def\showdnnummer#1%
- {\voorafgaandenummer%
- \nummer[\getvalue{\??dd#1\??dd\c!nummer}]}
-
-\def\showdnsubnummer#1%
- {\showdnnummer{#1}%
- \getvalue{\??dd#1\c!scheider}%
- \nummer[\v!sub\getvalue{\??dd#1\??dd\c!nummer}]}
-
-\def\showdnsubsubnummer#1%
- {\showdnsubnummer{#1}%
- \getvalue{\??dd#1\c!scheider}%
- \nummer[\v!sub\v!sub\getvalue{\??dd#1\??dd\c!nummer}]}
-
-\def\showdnsubsubsubnummer#1%
- {\showdnsubsubnummer{#1}%
- \getvalue{\??dd#1\c!scheider}%
- \nummer[\v!sub\v!sub\v!sub\getvalue{\??dd#1\??dd\c!nummer}]}
-
-\def\domakednnummer#1#2%
- {\getvalue{\??dd#2\c!links}%
- \strut#1{#2}%
- \getvalue{\??dd#2\c!rechts}}
-
-% #1=name #2=level #3=\show #4[#5]#6#7=#1[#2]#3#4 van definitie
-
-%\def\special@@definitiewoord#1#2#3#4[#5]#6#7%
-% {\strut
-% \doifelsevalue{\??dd#1\c!nummer}{\v!nee}
-% {\!!doneafalse}
-% {\doifelse{#5}{-}
-% {\!!doneafalse}
-% {\!!doneatrue}}%
-% \if!!donea
-% \getvalue{\e!volgende#2#1}%
-% \iflocation
-% \bgroup
-% \setvalue{\??dd#1\c!sectienummer}{\v!ja}%
-% \protectconversion
-% \maakvoorafgaandenummer[#1]%
-% \xdef\internaldoornummer{#3{#1}}%
-% \rawreference{\s!num}{#1:\internaldoornummer}{}%
-% \egroup
-% \fi
-% \maakvoorafgaandenummer[#1]%
-% \hbox
-% {\def\kap##1{##1}% \domakednnumer gaat hier fout binnen kap
-% \doattributes
-% {\??dd#1}\c!kopletter\c!kopkleur
-% {\showdntext{#2#1}%
-% \domakednnummer#3{#1}%
-% \getvalue{\??dd#1\c!afsluiter}}%
-% \iflocation
-% \edef\localconnection{\getvalue{\??dd#1\c!koppeling}:\internaldoornummer}%
-% \doifreferencefoundelse{\localconnection}
-% {\in[\localconnection]}{}% genereert > of <
-% \fi}%
-% \rawreference{\s!num}{#5}{#3{#1}}%
-% \else
-% \edef\!!stringa{\showdnpuretext{#2#1}}% nog eens testen binnen \expanded
-% \expanded{\doattributes{\??dd#1}\noexpand\c!kopletter\noexpand\c!kopkleur
-% {\!!stringa}}%
-% \rawreference{\s!num}{#5}{}%
-% \fi}
-
-\def\special@@definitiewoord#1#2#3#4[#5]#6#7%
- {\strut
- \doifelsevalue{\??dd#1\c!nummer}{\v!nee}
- {\!!doneafalse}
- {\doifelse{#5}{-}
- {\!!doneafalse}
- {\!!doneatrue}}%
- \chardef\definitiekoppeling=0
- \iflocation
- \doifvaluesomething{\??dd#1\c!koppeling}
- {\processaction % genereert > of <
- [\getvalue{\??dd#1\c!koppelwijze}]
- [ \v!lokaal=>\chardef\definitiekoppeling=1, % old: default
- \v!globaal=>\chardef\definitiekoppeling=2]}% new: global crosslinking
- \fi
- \stelnummerin % the number is called indirectly
- [\getvalue{\??dd#1\??dd\c!nummer}]
- [\c!sectienummer=\getvalue{\??dd#1\c!sectienummer}]%
- \if!!donea
- \getvalue{\e!volgende#2#1}%
- \iflocation
- \bgroup
- \setvalue{\??dd#1\c!sectienummer}{\v!ja}%
- \protectconversion
- %\maakvoorafgaandenummer[#1]%
- \maakvoorafgaandenummer[\getvalue{\??dd#1\??dd\c!nummer}]%
- \ifcase\definitiekoppeling \or
- \xdef\internaldoornummer{#3{#1}}%
- \rawreference{\s!num}{#1:\internaldoornummer}{}%
- \or
- \xdef\internaldoornummer{\countervalue{\??dd\c!koppeling#1}}%
- \rawreference{\s!num}{#1:\internaldoornummer}{}%
- \fi
- \egroup
- \fi
- %\maakvoorafgaandenummer[#1]%
- \maakvoorafgaandenummer[\getvalue{\??dd#1\??dd\c!nummer}]%
-%\getvalue{\??dd#1\c!commando}{%
- \hbox
- {\let\normalkap\relax % sorry, uppercase causes troubles
- \doattributes % \nocase primitive needed
- {\??dd#1}\c!kopletter\c!kopkleur
- {\showdntext{#2#1}%
- \domakednnummer#3{#1}%
- \getvalue{\??dd#1\c!afsluiter}}%
- \iflocation\ifcase\definitiekoppeling \else
- \edef\localconnection{\getvalue{\??dd#1\c!koppeling}:\internaldoornummer}%
- \doifreferencefoundelse{\localconnection}
- {\in[\localconnection]}{}% genereert > of <
- %\in[\localconnection]%
- \fi\fi}%
- \doifnot{#5}{-}{\rawreference{\s!num}{#5}{#3{#1}}}%
-%}%
- \else
-%\getvalue{\??dd#1\c!commando}{%
- \edef\!!stringa{\showdnpuretext{#2#1}}% nog eens testen binnen \expanded
- \expanded{\doattributes{\??dd#1}\noexpand\c!kopletter\noexpand\c!kopkleur
- {\!!stringa}}%
- \doifnot{#5}{-}{\rawreference{\s!num}{#5}{}}%
-%}%
- \fi}
-
-\def\@@ddresetsubsubsubnummer#1%
- {\edef\doornummer{\getvalue{\??dd#1\??dd\c!nummer}}%
- \resetnummer[\v!sub\v!sub\v!sub\doornummer]}
-
-\def\@@ddresetsubsubnummer#1%
- {\@@ddresetsubsubsubnummer{#1}%
- \resetnummer[\v!sub\v!sub\doornummer]}
-
-\def\@@ddresetsubnummer#1%
- {\@@ddresetsubsubnummer{#1}%
- \resetnummer[\v!sub\doornummer]}
-
-\def\@@ddresetnummer#1%
- {\@@ddresetsubnummer{#1}%
- \resetnummer[\doornummer]}
-
-\def\@@ddvolgendesubsubsubnummer#1[#2]%
- {\edef\doornummer{\getvalue{\??dd#1\??dd\c!nummer}}%
- \verhoognummer[\v!sub\v!sub\v!sub\doornummer]%
- \rawreference{\s!num}{#2}{\showdnsubsubsubnummer{\doornummer}}}%
-
-\def\@@ddvolgendesubsubnummer#1[#2]%
- {\@@ddresetsubsubsubnummer{#1}%
- \verhoognummer[\v!sub\v!sub\doornummer]%
- \rawreference{\s!num}{#2}{\showdnsubsubnummer{\doornummer}}}
-
-\def\@@ddvolgendesubnummer#1[#2]%
- {\@@ddresetsubsubnummer{#1}%
- \verhoognummer[\v!sub\doornummer]%
- \rawreference{\s!num}{#2}{\showdnsubnummer{\doornummer}}}
-
-\def\@@ddvolgendenummer#1[#2]%
- {\@@ddresetsubnummer{#1}%
- \verhoognummer[\doornummer]%
- \rawreference{\s!num}{#2}{\showdnnummer{\doornummer}}}
-
-\def\dodosteldoornummerenin[#1][#2]%
- {\getparameters[\??dd#1][#2]%
- \stelnummerin[#1][\c!conversie=\getvalue{\??dd#1\c!conversie}]} % see below
-
-\def\dosteldoornummerenin[#1][#2]%
- {\ConvertToConstant\doifelse{#2}{}
- {\getparameters[\??dn][#1]}
- {\dodoubleargumentwithset\dodosteldoornummerenin[#1][#2]}}
-
-\def\steldoornummerenin%
- {\dodoubleempty\dosteldoornummerenin}
-
-\def\dododoornummeren#1#2#3[#4][#5]#6%
- {\makecounter{\??dd\c!koppeling#1}% new: global cross linking
- \dodoordefinieren[#3#1]%
- [\s!do\c!status=\v!start,
- \s!do\c!commando=\special@@definitiewoord{#1}{#3}{#6}]%
- \copyparameters[\??dd#3#1][\??dn]
- [\c!plaats,\c!kopletter,\c!letter,\c!kleur,\c!kopkleur,
- \c!breedte,\c!nummer,\c!afstand,\c!commando,
- \c!monster,\c!hang,\c!uitlijnen,\c!voor,\c!tussen,\c!na,
- \c!niveaus,\c!wijze,\c!blokwijze,\c!scheider,\c!marge,
- \c!springvolgendein,\c!afsluiter,\c!sectienummer,\c!nummer]%
- \ConvertToConstant\doifinstringelse{=}{#4}
- {\getparameters[\??dd#3#1]%
- [\c!tekst=#1,\??dd\c!nummer=#1,\c!conversie=,
- \c!links=,\c!rechts=,\c!koppeling=,\c!koppelwijze=\v!lokaal,#4]}%
- {\doifelsenothing{#4}
- {\getparameters[\??dd#3#1]%
- [\c!tekst=#1,\??dd\c!nummer=#1,\c!conversie=,
- \c!links=,\c!rechts=,\c!koppeling=,\c!koppelwijze=,#4]}%
- {\copyparameters[\??dd#3#1][\??dd#3#4]
- [\c!plaats,\c!kopletter,\c!letter,\c!kleur,\c!kopkleur,
- \c!breedte,\c!nummer,\c!afstand,\c!commando,\c!marge,
- \c!monster,\c!hang,\c!uitlijnen,\c!voor,\c!tussen,\c!na,
- \c!springvolgendein,\c!links,\c!rechts,\c!koppeling,\c!koppelwijze]%
- \getparameters[\??dd#3#1]
- [\c!tekst=#1,\??dd\c!nummer=#4,\c!conversie=,#5]}}%
- \ExpandBothAfter\doif{\getvalue{\??dd#3#1\??dd\c!nummer}}{#1}
- {\definieernummer
- [#3#1]
- [\c!wijze=\getvalue{\??dd#1\c!wijze},
- \c!blokwijze=\getvalue{\??dd#1\c!blokwijze},
- \c!sectienummer=\getvalue{\??dd#1\c!sectienummer}]%
- \doifvalue{\??dd#1\c!niveaus}{#2}% % for
- {\doifsomething{\getvalue{\??dd#1\c!conversie}}% % old
- {\stelnummerin[#3#1] % times
- [\c!conversie=\getvalue{\??dd#1\c!conversie}]}}}% % sake
- \setvalue{\s!reset#3#1}%
- {\doresetdoornummer[#1][#3]}%
- \setvalue{\e!volgende#3#1}%
- {\dotripleempty\dovolgendedoornummer[#1][#3]}}
-
-\def\dovolgendedoornummer[#1][#2]%
- {\pluscounter{\??dd\c!koppeling#1}% new: global crosslinking
- \getvalue{\??dd\c!volgende#2\c!nummer}{#1}}%
-
-\def\doresetdoornummer[#1][#2]%
- {\getvalue{\??dd\s!reset#2\c!nummer}{#1}}%
-
-\def\dodoornummeren[#1][#2][#3]%
- {\dododoornummeren{#1}{1}{}[#2][#3]\showdnnummer
- \dododoornummeren{#1}{2}{\v!sub}[#2][#3]\showdnsubnummer
- \dododoornummeren{#1}{3}{\v!sub\v!sub}[#2][#3]\showdnsubsubnummer
- \dododoornummeren{#1}{4}{\v!sub\v!sub\v!sub}[#2][#3]\showdnsubsubsubnummer}
-
-\def\doornummeren%
- {\dotripleemptywithset\dodoornummeren}
-
-%I n=Doorspringen
-%I c=\doorspringen,\steldoorspringenin
-%I
-%I Inspringende opsommingen (bijvoorbeeld dialogen) kunnen
-%I worden gezet met:
-%I
-%I \doorspringen[naam][tekst=,scheider=,breedte=,letter=,
-%I kopletter=,voor=,na=]
-%I
-%I Na dit commando zijn de commando's \naam, \subnaam en
-%I \subsubnaam beschikbaar.
-%I
-%I Er kunnen standaardwaarden worden ingesteld met het
-%I commando:
-%I
-%I \steldoorspringenin[instellingen]
-%I
-%I Een aantal commando's kan worden omringt met de volgende
-%I commando's (wel lege regels ertussen!).
-%I
-%I \startdoorspringen
-%I \stopdoorspringen
-%P
-%I Het tussentijds bijstellen van de instellingen is mogelijk
-%I met:
-%I
-%I \steldoorspringenin[naam][instellingen]
-
-% Het default-mechanisme kan mooier: leegtest, enz.
-%
-% Werkprocedure buiten definitie
-
-\def\dodosteldoorspringenin[#1][#2]%
- {\getparameters[\??ds#1][#2]}
-
-\def\dosteldoorspringenin[#1][#2]%
- {\ConvertToConstant\doifelse{#2}{}
- {\dodosteldoorspringenin[][#1]}
- {\dodoubleargumentwithset\dodosteldoorspringenin[#1][#2]}}
-
-\def\steldoorspringenin%
- {\dodoubleempty\dosteldoorspringenin}
-
-\def\startdoorspringen%
- {\witruimte
- \@@dsvoor
- \dosomebreak{\goodbreak}% \pagina[\v!voorkeur]
- \begingroup
- \parskip=\!!zeropoint\relax}
-
-\def\stopdoorspringen%
- {\endgroup
- \@@dsna}
-
-\def\dododoorspringen#1#2#3%
- {\par
- \getvalue{\??ds#1\c!voor}%
- \begingroup
- \doifvaluenothing{\??ds#1\c!monster}
- {\setvalue{\??ds#1\c!monster}%
- {\getvalue{\??ds#1\c!tekst}}}%
- \assignwidth
- {\!!widtha}
- {\getvalue{\??ds#1\c!breedte}}
- {\doattributes
- {\??ds#1}\c!kopletter\c!kopkleur
- {\getvalue{\??ds#1\c!monster}\getvalue{\??ds#1\c!scheider}}}
- {1em}%
- \advance\!!widtha by \tfskipsize
- \setbox2=\hbox to \!!widtha
- {\doattributes
- {\??ds#1}\c!kopletter\c!kopkleur
- {\strut
- \getvalue{\??ds#1\c!tekst}%
- \hss
- \getvalue{\??ds#1\c!scheider}%
- \tfskip}}%
- \parindent\!!zeropoint
- \hskip#2\!!widtha\indent\box2%
- \hangindent#3\!!widtha
- \doattributes{\??ds#1}\c!letter\c!kleur{}% #4}%
- \AfterPar%
- {\endgroup
- \getvalue{\??ds#1\c!na}}%
- \GetPar}
-
-\def\dodoorspringen[#1][#2]%
- {\copyparameters[\??ds#1][\??ds]
- [\c!tekst,\c!scheider,\c!breedte,\c!letter,\c!kleur,
- \c!kopletter,\c!monster,\c!voor,\c!na]%
- \getparameters[\??ds#1][#2]%
- \setvalue{#1}%
- {\dododoorspringen{#1}{0}{1}}%
- \setvalue{\v!sub#1}%
- {\dododoorspringen{#1}{1}{2}}%
- \setvalue{\v!sub\v!sub#1}%
- {\dododoorspringen{#1}{2}{3}}}
-
-\def\doorspringen%
- {\dodoubleargumentwithset\dodoorspringen}
-
-%I n=Doorlabelen
-%I c=\doorlabelen,\verhoog,\huidige
-%I
-%I Het is mogelijk genummerde verwijzingen (bijvoorbeeld
-%I naar sheets of video's) in de tekst op te nemen met
-%I het commando:
-%I
-%I \doorlabelen[naam][tekst=,plaats=,voor=,na=,kopletter=]
-%I
-%I Na dit commando zijn de volgende commando's beschikbaar:
-%I
-%I \reset<naam>
-%I \verhoog<naam>
-%I \volgende<naam>[referentie]
-%I \huidige<naam>
-%I \in<naam>[referentie]
-%P
-%I Er kan een 'kopje' worden opgeropeen met het commando:
-%I
-%I \naam
-%I
-%I In dat geval worden de onder 'voor' en 'na' opgegeven
-%I commando's uitgevoerd.
-%I
-%I Als we voor naam 'sheet' invullen en voor tekst
-%I 'transparant' dan leidt het commando \huidigesheet tot
-%I de tekst 'transparant 1' en een volgende aanroep tot de
-%I tekst 'transparant 2'.
-
-\def\dodoorlabel[#1][#2]%
- {\getvalue{\s!number#1\c!voor}%
- \bgroup
- %\ExpandFirstAfter\doifinset{\getvalue{\s!number#1\c!plaats}}{\v!marge,\v!inmarge}
- % {\setvalue{\s!number#1\c!zetwijze}{\v!inmarge}}%
- \doif{\getvalue{\s!number#1\c!plaats}}{\v!marge}
- {\setvalue{\s!number#1\c!plaats}{\v!inmarge}}%
- \doattributes{\s!number#1}\c!kopletter\c!kopkleur
- {\getvalue{\e!volgende#1}[#2]}%
- \egroup
- \getvalue{\s!number#1\c!na}}%
-
-\def\dovolgendedoorlabel[#1][#2]%
- {\volgendenummer[#1][\s!lab][#2]}
-
-\def\dodoorlabelen[#1][#2]%
- {\definieernummer
- [#1]
- [\c!voor=,
- \c!na=,
- \c!kopletter=,
- \c!wijze=\@@nrwijze,
- #2]%
- \setvalue{#1}%
- {\dodoubleempty\dodoorlabel[#1]}%
- \setvalue{\s!reset#1}%
- {\resetnummer[#1]}%
- \setvalue{\e!verhoog#1}%
- {\verhoognummer[#1]}%
- \setvalue{\e!volgende#1}%
- {\dodoubleempty\dovolgendedoorlabel[#1]}%
- \setvalue{\c!huidige#1}%
- {\huidigenummer[#1]}%
- \setvalue{\c!in#1}[##1]% % weghalen
- {\innummer[#1][##1]}% % weghalen
- \setvalue{\c!op#1}[##1]% % weghalen
- {\opnummer[#1][##1]}} % weghalen
-
-\def\doorlabelen%
- {\dodoubleargumentwithset\dodoorlabelen}
-
%I n=Uitlijnen
%I c=\startuitlijnen,\steluitlijnenin,\steltolerantiein
%I c=\regellinks,\regelrechts,\regelmidden,
@@ -6971,6 +4537,8 @@
% \tolerance >= 1500 % was 200
% \raggedness = 2 .. 6\korpsgrootte
+\chardef\raggedstatus=0 % normal left center right
+
\def\leftraggedness {2\bodyfontsize}
\def\rightraggedness {2\bodyfontsize}
\def\middleraggedness {6\bodyfontsize}
@@ -6986,71 +4554,72 @@
\let\updateraggedskips\relax
-\def\setraggedskips#1#2#3#4#5#6% never change this name
+\def\setraggedskips#1#2#3#4#5#6#7% never change this name
{\def\updateraggedskips%
- {\dosetraggedskips{#1}{#2}{#3}{#4}{#5}{#6}}%
+ {\dosetraggedskips{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
\updateraggedskips}
-\def\dosetraggedskips#1#2#3#4#5#6%
- {\leftskip=1\leftskip\!!plus#1\relax % zie: Tex By Topic 8.1.3
- \rightskip=1\rightskip\!!plus#2\relax % zie: Tex By Topic 8.1.3
- \spaceskip#3\relax
- \xspaceskip#4\relax
- \parfillskip\!!zeropoint\!!plus#5\relax
- \parindent#6\relax}
+\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{0em}{0em}{0em}{0em}{1fil}{\parindent}}
+ {\setraggedskips{0}{0em}{0em}{0em}{0em}{1fil}{\parindent}}
\def\raggedleft%
{\setraggedness\leftraggedness
- \setraggedskips{\leftraggedness}{0em}{.3333em}{.5em}{0em}{0em}}
+ \setraggedskips{1}{\leftraggedness}{0em}{.3333em}{.5em}{0em}{0em}}
\def\raggedcenter%
{\setraggedness\middleraggedness
- \setraggedskips{\middleraggedness}{\middleraggedness}{.3333em}{.5em}{0em}{0em}}
+ \setraggedskips{2}{\middleraggedness}{\middleraggedness}{.3333em}{.5em}{0em}{0em}}
%D We used to have:
%D
%D \starttypen
%D \def\raggedright%
%D {\setraggedness\rightraggedness
-%D \setraggedskips{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}}
+%D \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}}
%D \stoptypen
%D
%D However, the next alternative, suggested by Taco, is better.
\def\raggedright%
{\setraggedness\rightraggedness
- \setraggedskips{0em}{\rightraggedness}{.3333em}{.5em}{1fil}{\parindent}}
+ \setraggedskips{3}{0em}{\rightraggedness}{.3333em}{.5em}{1fil}{\parindent}}
\def\veryraggedleft%
- {\setraggedskips{1fil}{0em}{.3333em}{.5em}{0em}{0em}}
+ {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{0em}}
%D When we want the last line to have a natural width:
%D
%D \starttypen
%D \def\veryraggedleft%
-%D {\setraggedskips{1fil}{0em}{.3333em}{.5em}{0em}{-1fil}}
+%D {\setraggedskips{1}{1fil}{0em}{.3333em}{.5em}{0em}{-1fil}}
%D \stoptypen
%D
%D but this one is not accepted by the macros.
\def\veryraggedcenter%
- {\setraggedskips{1fil}{1fil}{.3333em}{.5em}{0em}{0em}}
+ {\setraggedskips{2}{1fil}{1fil}{.3333em}{.5em}{0em}{0em}}
\def\veryraggedright%
- {\setraggedskips{0em}{1fil}{.3333em}{.5em}{0em}{\parindent}}
+ {\setraggedskips{3}{0em}{1fil}{.3333em}{.5em}{0em}{\parindent}}
\def\ttraggedright%
{\tttf
- \setraggedskips{0em}{\rightraggedness}{0em}{0em}{0em}{\parindent}} % {\voorwit}}
+ \setraggedskips{3}{0em}{\rightraggedness}{0em}{0em}{0em}{\parindent}} % {\voorwit}}
%D A bonus one:
\def\raggedwidecenter%
{\setraggedness\middleraggedness
- \setraggedskips{.5fil}{.5fil}{.3333em}{.5em}{0em}{0em}}
+ \setraggedskips{2}{.5fil}{.5fil}{.3333em}{.5em}{0em}{0em}}
\def\dodosteluitlijnenin[#1]%
{\doifinsetelse{\v!ruim} {#1}{\!!doneatrue}{\!!doneafalse}%
@@ -7061,6 +4630,9 @@
\v!onder=>\raggedbottom,
\v!hoogte=>\normalbottom,
\v!breedte=>\notragged,
+ \v!normaal=>\notragged,
+ \v!ja=>\notragged,
+ \v!nee=>\raggedright,
\v!binnen=>\setraggedparagraphmode\raggedleft\raggedright,
\v!buiten=>\setraggedparagraphmode\raggedright\raggedleft,
\v!links=>\if!!donea\veryraggedleft \else\raggedleft \fi,
@@ -7500,12 +5072,23 @@
\doglobal\newcounter\margincontent
\egroup}
+\def\docomplexmargewoord#1#2#3%
+ {\@EA\setgvalue\@EA{\@EA\??im\@EA\margincontent\@EA}\@EA
+ {\@EA\stelinmargein\@EA[\margincontent][]% see next macro
+ \flushmargincontent[#1][#2]{#3}}}
+
\def\complexmargewoord[#1][#2]#3%
{\doglobal\increment\margincontent
\stelinmargein[\margincontent][]% see next macro
- \@EA\setgvalue\@EA{\@EA\??im\@EA\margincontent\@EA}\@EA
- {\@EA\stelinmargein\@EA[\margincontent][]% see next macro
- \flushmargincontent[#1][#2]{#3}}}
+ \ifsecondargument
+ \doifnumberelse{#1}
+ {\docomplexmargewoord{#2}{#1}{#3}}
+ {\docomplexmargewoord{#1}{#2}{#3}}%
+ \else
+ \doifnumberelse{#1}
+ {\docomplexmargewoord{}{#1}{#3}}
+ {\docomplexmargewoord{#1}{}{#3}}%
+ \fi}
\def\margewoordpositie[#1]#2%
{\ifnum#1>\margincontent
@@ -7657,7 +5240,7 @@
% dit zijn voorlopig lokale commando's
-\def\woordinlinker {\inlinkermarge} % vervallen
+\def\woordinlinker {\inleftmargin} % vervallen
\def\woordinrechter{\inrechtermarge} % vervallen
\def\woordinmarge%
@@ -7881,14 +5464,18 @@
%\fi
\od
\filluparrangedpages},
- \s!unknown=>\doifnumberelse{#1}
- {\ejectinsert
- \ejectpage
- \loop
- \ifnum\userpageno<#1\relax
- \insertdummypage
- \repeat}
- {}]%
+ \s!unknown=>\doifinstringelse{+}{#1}
+ {\ejectinsert\ejectpage
+ \dorecurse{#1}{\insertdummypage}}
+ {\doifnumberelse{#1}
+ {\ejectinsert\ejectpage
+ \doloop
+ {\ifnum\userpageno<#1\relax
+ \insertdummypage
+ \else
+ \exitloop
+ \fi}}
+ {}}]%
\egroup}
\def\complexpagina[#1]%
@@ -8197,8 +5784,8 @@
\def\@@nmpos#1{\setbox0=\hbox{#1}\ifdim\wd0=\!!zeropoint\else\tfskip\unhbox0\fi}
\def\dodoplaatsteksten#1#2#3#4#5#6% \hsize toegevoegd
- {\hbox
- {\hbox to \linkerrandbreedte
+ {\hbox % \hss's niet meer wijzigen
+ {\hbox to \linkerrandbreedte
{\hsize\linkerrandbreedte
\hss\getvalue{\??tk#1\v!rand#2}}%
\hskip\linkerrandafstand
@@ -8342,28 +5929,28 @@
\vskip-\bovenhoogte
\vskip-\bovenafstand
\plaatsbovenregel
-\vskip-\bovenhoogte
-\plaatsboventekstblok
+ \vskip-\bovenhoogte
+ \plaatsboventekstblok
\vskip\bovenafstand
\plaatshoofdregel
\vskip\hoofdafstand
-\plaatspositieanchors
-\vskip-\teksthoogte
+ \placepositionanchors
+ \vskip-\teksthoogte
\plaatstekstregel
\vskip\voetafstand
\plaatsvoetregel
\vskip\onderafstand
\plaatsonderregel
-\vskip-\onderhoogte
-\plaatsondertekstblok
+ \vskip-\onderhoogte
+ \plaatsondertekstblok
\plaatsversieaanduiding
\vfilll}%
\smashbox0
\box0
\egroup}
-\ifx\undefined\plaatspositieanchors
- \def\plaatspositieanchors{\vskip\teksthoogte}
+\ifx\undefined\placepositionanchors
+ \def\placepositionanchors{\vskip\teksthoogte}
\fi
%\def\@@plaatspaginascheider%
@@ -8460,14 +6047,6 @@
{\setvalue{#1\getvalue{\??by##1}\v!nummer}{\v!ja}}}%
\processcommacommand[\@@kolijst]\dopreparepaginaprefix}
-% \def\dopaginaprefix#1#2%
-% {\doifelsevalue{#1#2\v!nummer}{\v!ja} % v
-% {\@EA\beforesplitstring\@EA{\postprefix}\at:\to\preprefix
-% \@EA\aftersplitstring\@EA{\postprefix}\at:\to\postprefix
-% \doifsomething{\preprefix}
-% {\doifnot{\preprefix}{0}{\preprefix\@@nmnummerscheider}}}%
-% {\@EA\aftersplitstring\@EA{\postprefix}\at:\to\postprefix}}
-
\def\dopaginaprefix#1#2%
{\let\normaluchar\uchar\let\uchar\relax % ugly but needed
\doifelsevalue{#1#2\v!nummer}{\v!ja} % \v! and no \c!
@@ -8519,1338 +6098,6 @@
\def\translatednumber[#1::#2::#3]%
{#3}
-%I n=Markeringen
-%I c=\markeer,\haalmarkering
-%I c=\definieermarkering,\stelmarkeringin,\resetmarkering
-%I
-%I Men kan in een tekst markeringen aanbrengen. Een markering
-%I kan bijvoorbeeld worden opgehaald in een kopregel.
-%I
-%I \definieermarkering[categorie]
-%I
-%I Een markering wordt aangebracht met het commando:
-%I
-%I \markeer[categorie]{tekst}
-%I
-%I Er kunnen drie markeringen worden opgevraagd met het
-%I commando:
-%I
-%I \haalmarkering[categorie][plaats]
-%I
-%I Mogelijke plaatsen zijn: eerste, laatste, vorige. Vorige
-%I staat voor de laatste markering op de vorige bladzijde en
-%I eerste en laatste hebben betrekking op de huidige bladzijde.
-%P
-%I Markeringen worden ge(de)blokkeerd met het commando:
-%I
-%I \stelmarkeringin[categorie][status=,expansie=]
-%I
-%I waarbij als instellingen mogelijk zijn: start en stop.
-%I Standaard wordt een markering niet ge‰xpandeerd. Wil met
-%I wel expanderen (wat bij tellers nodig is), dan kan dat
-%I worden ingesteld: expansie=ja.
-%I
-%I Markeringen kunnen worden geinitialiseerd met:
-%I
-%I \resetmarkering[categorie]
-%I
-%I Standaard worden de markeringen 'deel', 'hoofdstuk', 'paragraaf',
-%I 'subparagraaf' en 'subsubparagraaf bijgehouden.
-%P
-%I Soms wordt een argument voor meerdere doeleinden gebruikt,
-%I bijvoorbeeld in \hoofdstuk{tekst}. Hierbij is {tekst}
-%I zowel de kop van het hoofdstuk als de eventueel te plaatsen
-%I markering in de hoofd- of voetregel. Als zo'n tekst te lang
-%I wordt, kan ze als volgt worden beperkt:
-%I
-%I {eerste tweede \geenmarkering{derde vierde} vijfde}
-%I
-%I De woorden 'derde' en 'vierde' worden in dit geval in de
-%I markering vervangen door punten.
-
-% voor 'interne' doeleinden zijn beschikbaar:
-%
-% \fetchmark[naam][plaats]
-
-% nog expansie in hoofdmarkering
-
-% ook nog reset koppelen aan sectie
-
-\def\hoofdmarkering#1%
- {\getvalue{\??mk#1\c!koppeling}}
-
-\def\dodoresetmarkering#1%
- {\doifdefined{\??mk\hoofdmarkering{#1}}
- {\expandafter\resetmark\csname\??mk\hoofdmarkering{#1}\endcsname}}
-
-\def\doresetmarkering[#1]%
- {\processcommalist[#1]\dodoresetmarkering}
-
-\def\resetmarkering%
- {\dosingleargument\doresetmarkering}
-
-\def\dostelmarkeringin[#1][#2]%
- {\getparameters[\??mk#1][#2]}
-
-\def\stelmarkeringin%
- {\dodoubleargument\dostelmarkeringin}
-
-\letvalue{\??mk \v!vorige}\gettopmark
-\letvalue{\??mk \v!eerste}\getfirstmark
-\letvalue{\??mk\v!laatste}\getbotmark
-
-\def\dododefinieermarkering[#1][#2]%
- {\stelmarkeringin[#1]
- [% \c!expansie=\v!nee, % saves a macro
- \c!scheider={ --- }, % watch the spaces
- \c!status=\v!start]%
- \ontkoppelmarkering[#1]% % no coupling with sections
- \setevalue{\??mk#1\c!koppeling}{#2}%
- \expandafter\newmark\csname\??mk#2\endcsname
- \showmessage{\m!systems}{13}{#1,[#2]}}
-
-\def\dodefinieermarkering[#1][#2]%
- {\doifelsenothing{#2}
- {\dododefinieermarkering[#1][#1]}
- {\dododefinieermarkering[#1][#2]}}
-
-\def\definieermarkering%
- {\dodoubleempty\dodefinieermarkering}
-
-\let\geenmarkering=\relax
-
-%\def\fetchmark[#1][#2]% geen \def, anders problemen in \doif...
-% {\def\dofetchmark{\getvalue{\??mk#2}}%
-% \expandafter\dofetchmark\csname\??mk\hoofdmarkering{#1}\endcsname}
-
-\def\dofetchmark#1#2% needed because we need to expand
- {\getvalue{\??mk#2}#1}
-
-\def\fetchmark[#1][#2]% never \unexpanded
- %{\getvalue{\getvalue{\??mk#2}\??mk\hoofdmarkering{#1}}}
- {\expandafter\dofetchmark\csname\??mk\hoofdmarkering{#1}\endcsname{#2}}
-
-\def\fetchtwomarks[#1]%
- {\doifsomething{\fetchmark[#1][\v!eerste]}
- {\fetchmark[#1][\v!eerste]%
- \doifsomething{\fetchmark[#1][\v!laatste]}
- {\doifnot{\fetchmark[#1][\v!eerste]}{\fetchmark[#1][\v!laatste]}
- {\getvalue{\??mk#1\c!scheider}\fetchmark[#1][\v!laatste]}}}}
-
-\def\fetchallmarks[#1]%
- {\doifsomething{\fetchmark[#1][\v!eerste]}
- {\doifsomething{\fetchmark[#1][\v!vorige]}
- {\doifnot{\fetchmark[#1][\v!vorige]}{\fetchmark[#1][\v!eerste]}
- {\fetchmark[#1][\v!vorige]\getvalue{\??mk#1\c!scheider}}}}%
- \fetchtwomarks[#1]}
-
-\def\dohaalmarkering[#1][#2]%
- {\doifvalue{\??mk#1\c!status}{\v!start}
- {\bgroup
- \def\geenmarkering##1{\unknown\ }%
- \processaction
- [#2]
- [ \v!beide=>{\fetchtwomarks[#1]},
- \v!alles=>{\fetchallmarks[#1]},
- \s!default=>{\fetchmark[#1][\v!eerste]},
- \s!unknown=>{\fetchmark[#1][#2]}]%
- \egroup}}
-
-\def\nohaalmarkering[#1][#2]%
- {}
-
-\unexpanded\def\haalmarkering%
- {\dodoubleargument\dohaalmarkering}
-
-\def\domarking[#1]#2%
- {\bgroup
- \doifelsevalue{\??mk#1\c!expansie}{\v!ja}
- {\expandmarkstrue}
- {\expandmarksfalse}%
-% \honorunexpanded
-% \getvalue{\??mk\hoofdmarkering{#1}}{#2}%
- \expandafter\setmark\csname\??mk\hoofdmarkering{#1}\endcsname{#2}%
- \egroup}
-
-\def\marking%
- {\dosingleargument\domarking}
-
-%I n=Tekstonderdelen
-%I c=\hoofdstuk,\paragraaf,\subparagraaf,\subsubparagraaf
-%I c=\titel,\onderwerp,\subonderwerp,\subsubonderwerp,\alinea
-%I c=\stelkopin,\stelkoppenin,\stelkopnummerin
-%I c=\startbijlagen,\bijlage
-%I c=\startinleidingen,\startuitleidingen
-%I
-%I Een tekst wordt gestructureerd met de commando's:
-%I
-%I \titel [referentie] {titel}
-%I \onderwerp [referentie] {onderwerp}
-%I \subonderwerp [referentie] {onderwerp}
-%I \subsubonderwerp [referentie] {onderwerp}
-%I
-%I \hoofdstuk [referentie] {titel}
-%I \paragraaf [referentie] {titel}
-%I \subparagraaf [referentie] {titel}
-%I \subsubparagraaf [referentie] {titel}
-%I
-%I In een {titel} kan het commando \\ worden gebruikt om naar
-%I een volgende regel te gaan. Wil men ook in de inhoudsopgave
-%I naar een nieuwe regel gaan, dan dient \crlf te worden
-%I gebruikt.
-%P
-%I Op een hoger niveau kunnen delen worden gedefinieerd. In
-%I dat geval wordt standaard geen kop geplaatst (het kan
-%I wel).
-%I
-%I \deel [referentie] {titel}
-%I
-%I In totaal zijn er 7 niveaus voorgedefinieerd. Meer
-%I niveaus zijn mogelijk. Het hoogste niveau is op dit
-%I moment dus \deel en het laagste \subsubsubsubparagraaf.
-%P
-%I Naar een hoofdstuk en een paragraaf kan worden
-%I terugverwezen met:
-%I
-%I \inhoofdstuk[referentie]
-%I \inparagraaf[referentie]
-%I
-%I Zodat verwijzingen als 'zie ook hoofdstuk 2' mogelijk
-%I zijn (zie ook \inhoofdstuk[alfa]).
-%I
-%I Ook kunnen de elders besproken commando's worden
-%I gebruikt. Een referentie kan eventueel worden weggelaten,
-%I bijvoorbeeld \hoofdstuk{titel}.
-%P
-%I Een overgang naar een nieuwe alinea kan worden afgedwongen
-%I met het commando:
-%I
-%I \alinea
-%I
-%I Dit commando komt overeen met het commando \par.
-%P
-%I Aanvullend zijn de volgende commando's beschikbaar. Deze
-%I commando's onderdrukken cq. wijzigen de nummering.
-%I
-%I \startbijlagen hoofdstukken nummeren met a, b, ...
-%I \stopbijlagen hoofdstukken nummeren met 1, 2, ...
-%I
-%I \startinleidingen hoofdstukken niet nummeren
-%I \stopinleidingen hoofdstukken wel nummeren
-%I \startuitleidingen hoofdstukken niet nummeren
-%I \stopuitleidingen hoofdstukken wel nummeren
-%I
-%I Als men bijlagen apart wil nummeren, dan gebruikt men in
-%I plaats van \hoofdstuk het commando:
-%I
-%I \bijlage[referentie]{titel}
-%I
-%I waarna de eigenlijke tekst komt of wordt ingelezen uit
-%I een file.
-%P
-%I De wijze waarop hoofdstukken en paragrafen worden genummerd
-%I en gezet, kan worden ingesteld met de commando's:
-%I
-%I \stelkoppenin[variant=,scheider=]
-%I
-%I Hierbij zijn als varianten mogelijk normaal en inmarge.
-%I
-%I Daarnaast is het volgende commando beschikbaar:
-%I
-%I \stelkopin[element][letter=,nummerletter=,tekstletter=,
-%I voor=,na=,pagina=,uitlijnen=,hoofd=]
-%I
-%I Mogelijke elementen zijn: hoofdstuk, paragraaf,
-%I subparagraaf, subsubparagraaf en indien gewenst: titel en
-%I onderwerp.
-%P
-%I Aan de parameters voor en na kunnen commando's worden
-%I toegekend; 'nummer', 'tekst' en 'letter' staan voor de
-%I lettertypen. Standaard zijn 'nummer' en 'tekst' gelijk
-%I aan 'letter'. In de regel kan men volstaan met het
-%I instellen van hoofdstuk en paragraaf, omdat de andere
-%I instellingen hiervan worden afgeleid. Voorbeelden van
-%I instellingen zijn 'letter=vet', 'voor={\blanko[groot]}'
-%I en 'nummer=\tfa'.
-%I
-%I Aan 'pagina' kan de waarde 'links', 'rechts' of 'ja' worden
-%I toegekend. Er wordt alleen naar een nieuwe pagina gegaan als
-%I het nummer van de (sub)(sub)paragraaf groter is dan 1.
-%I Wil men altijd overgaan op een nieuwe bladzijde, dan kan
-%I men dit aangeven door aan 'doorgaan' de waarde 'nee' toe
-%I te kennen.
-%P
-%I Een hoofdstuk kan worden voorafgegaan door een woord,
-%I bijvoorbeeld 'Hoofdstuk'. Dit woord kan worden ingesteld
-%I met \stellabeltekstin.
-%I
-%I Als men aan 'hoofd' de waarde 'geen' toekent, dan wordt
-%I geen hoofdregel geplaatst op de bladzijde waarop de kop
-%I wordt geplaatst.
-%I
-%I Het is mogelijk varianten van koppen te definieren met het
-%I commando:
-%I
-%I \definieerkop[dochter][moeder]
-%I
-%I Na \definieerkop[rubriek][onderwerp] is het commando \rubriek
-%I beschikbaar met dezelfde kenmerken als \onderwerp. Deze
-%I kenmerken kunnen worden aangepast met \stelkopin. Als de
-%I moeder een genummerde kop is, wordt de dochter ook genummerd.
-%P
-%I Nummers van koppen kunnen worden ingesteld met het commando:
-%I
-%I \stelkopnummerin[niveau][nummer]
-%I
-%I Als het nummer wordt vooraf gegaan door + of -, dan is
-%I sprake van een verhoging of verlaging: [hoofdstuk][+2].
-
-%T n=hoofdstuk
-%T m=hfd
-%T a=h
-%T
-%T \hoofdstuk{?}
-
-%T n=paragraaf
-%T m=par
-%T a=p
-%T
-%T \paragraaf{?}
-
-\newcount\nofsections
-
-\def\zerosection{\v!tekst}
-\def\firstsection{}
-\def\lastsection{}
-\let\@@sectie\empty
-\let\@@koppeling\empty
-
-\makecounter{\??se\v!tekst}
-
-\setevalue{\??se\v!tekst\c!voor}{}
-\setevalue{\??se\v!tekst\c!na }{}
-
-\setevalue{\v!tekst\c!nummer}{0}
-\setevalue{\v!tekst\s!format}{}
-
-\setevalue{\??sk\v!tekst}{}
-\setevalue{\??sk }{}
-
-\setvalue{\??by }{\v!tekst}
-\setvalue{\??by\v!tekst }{\v!tekst}
-\setvalue{\??by\v!alles }{\v!tekst}
-\setvalue{\??by\v!per }{\v!tekst}
-\setvalue{\??by\v!per\v!tekst }{\v!tekst}
-\setvalue{\??by\v!per\v!alles }{\v!tekst}
-\setvalue{\??by\v!per\v!pagina}{\v!tekst} % see footnotes
-
-\def\dostelsectiein[#1][#2]%
- {\getparameters[\??se#1][#2]%
- \doifelsevalue{\??se#1\c!vorigenummer}{\v!ja}
- {\setvalue{#1\c!nummer}{\@@longsectionnumber{#1}}}
- {\setvalue{#1\c!nummer}{\@@shortsectionnumber{#1}}}}
-
-\def\stelsectiein%
- {\dodoubleargument\dostelsectiein}
-
-\def\dokoppelmarkering[#1][#2]%
- {\doifdefinedelse{\??ko#2\c!sectie}
- {\dokoppelmarkering[#1][\getvalue{\??ko#2\c!sectie}]}
- {\def\donexttrackcommando##1%
- {\edef\gekoppeldemarkeringen{\getvalue{\??se##1\c!markering}}%
- \doifelse{##1}{#2}
- {\addtocommalist{#1}\gekoppeldemarkeringen}
- {\removefromcommalist{#1}\gekoppeldemarkeringen}%
- \setevalue{\??se##1\c!markering}{\gekoppeldemarkeringen}%
- \donexttracklevel{##1}}%
- \donexttracklevel{\zerosection}}} % \firstsection
-
-\def\koppelmarkering%
- {\dodoubleargument\dokoppelmarkering}
-
-\def\ontkoppelmarkering[#1]%
- {\koppelmarkering[#1][]}
-
-\def\definieersectie[#1]%
- {\doifundefined{\??se#1}
- {\doifelsenothing{\firstsection}
- {\def\firstsection{#1}%
- \setevalue{\??se#1\c!voor}{\v!tekst}%
- \setevalue{\??se\v!tekst\c!na}{#1}}
- {\setevalue{\??se\commalistelement\c!na}{#1}%
- \setevalue{\??se#1\c!voor}{\lastsection}%
- \setevalue{\??se\lastsection\c!na}{#1}}%
- \advance\nofsections by 1
- \setevalue{\??se#1\c!niveau}%
- {\the\nofsections}%
- \setevalue{\??se#1\c!na}%
- {}%
- \setvalue{\e!volgende#1}%
- {\@@nextsectionnumber{#1}}%
- \setvalue{#1\c!nummer}%
- {\@@longsectionnumber{#1}}%
- \setvalue{#1\s!format}%
- {\@@longformatnumber{#1}}%
- \setevalue{\??by#1}{#1}%
- \setevalue{\??by\v!per#1}{#1}%
- \makecounter{\??se#1}%
- \def\lastsection{#1}%
- \setvalue{\??sk#1}%
- {#1}%
- \setvalue{\??se#1\c!markering}%
- {}%
- \stelsectiein[#1]
- [\c!vorigenummer=\v!ja]}}%
-
-\def\previoussection#1%
- {\getvalue{\??se#1\c!voor}}
-
-\def\nextsection#1%
- {\getvalue{\??se#1\c!na}}
-
-\def\@@setsectionnumber#1#2%
- {\setgvalue{\??se#1\s!start}{}% % signal i.p.v. boolean
- \setcounter{\??se#1}{#2}%
- \resetsectioncounters[#1]%
- \checkpagecounter}
-
-\def\@@nextsectionnumber#1%
- {\setgvalue{\??se#1\s!start}{}% % signal i.p.v. boolean
- \pluscounter{\??se#1}%
- \resetsectioncounters[#1]%
- \checkpagecounter}
-
-\def\@@sectionvalue#1% % nog niet overal doorgevoerd
- {\countervalue{\??se#1}} % zoeken op \??se
-
-\def\@@sectionconversion#1%
- {\getvalue{\??cv\getvalue{\??se#1\@@sectieblok\c!conversie}}}
-
-% 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\@@sectieblok\c!conversie\endcsname\relax
- \@EA\ifx\csname\??se#1\c!conversie\endcsname\relax
- #2%
- \else
- \getvalue{\??cv\getvalue{\??se#1\c!conversie}}{#2}%
- \fi
- \else
- \getvalue{\??cv\getvalue{\??se#1\@@sectieblok\c!conversie}}{#2}%
- \fi
- \fi}
-
-\def\@@sectionlevel#1%
- {\ifundefined{\??se#1\c!niveau}0\else\getvalue{\??se#1\c!niveau}\fi}
-
-% Omdat een markering kan worden herdefinieerd moeten we
-% eerst testen of er wel een keten||afhankelijkheid is.
-
-\def\resetsectionmarks[#1]%
- {\doifdefinedelse{\??se#1}
- {\def\donexttrackcommando##1%
- {\doifdefined{\??se##1\c!markering} % skip zero level
- {\def\docommando####1%
- {\ExpandFirstAfter\resetmarkering[####1]}%
- \processcommacommand[\getvalue{\??se##1\c!markering}]\docommando}%
- \donexttracklevel{##1}}%
- \donexttracklevel{#1}}%
- {\ExpandFirstAfter\resetmarkering[\hoofdmarkering{#1}]}}
-
-\def\resetsectioncounters[#1]%
- {\def\donexttrackcommando##1%
- {\resetcounter{\??se##1}%
- \donexttracklevel{##1}}%
- \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%
- {\@EA\edef\@EA\sectionformat\@EA%
- {\@@sectiontype:\getvalue{\lastsection\s!format}}}
-
-\def\dobacktracklevel#1%
- {\doifnot{\previoussection{#1}}{\zerosection}
- {\dobacktrackcommando{\previoussection{#1}}}}
-
-\def\donexttracklevel#1%
- {\doifnot{#1}{\lastsection}
- {\donexttrackcommando{\nextsection{#1}}}}
-
-\newif\ifalllevels
-
-\def\dosetlevel#1% opvoeren met \ifcsname
- {\bgroup
- \doifelse{#1}{\v!vorige}
- {\global\alllevelstrue
- \global\let\currentlevel\empty
- \def\dobacktrackcommando##1%
- {\ifnum\countervalue{\??se##1}>0
- \global\alllevelsfalse
- \xdef\currentlevel{\getvalue{\previoussection{##1}\s!format}}%
- \else
- \dobacktracklevel{##1}%
- \fi}%
- \dobacktrackcommando\lastsection}
- {\doifelse{\getvalue{\??by#1}}{\v!tekst}
- {\global\alllevelstrue
- \global\let\currentlevel\empty}
- {\doifdefinedelse{\??ko#1\c!sectie} % beter alteratief: ook
- {\edef\@@sectie{\getvalue{\??ko#1\c!sectie}}} % hoofdstuk\c!format
- {\edef\@@sectie{#1}}%
- \doifdefinedelse{\??se\@@sectie}
- {\global\alllevelsfalse
- \xdef\currentlevel{\getvalue{\@@sectie\s!format}}}
- {\global\alllevelstrue
- \global\let\currentlevel\empty
- \def\dobacktrackcommando##1%
- {\@EA\ifx\csname\??se##1\c!start\endcsname\relax
- \dobacktracklevel{##1}%
- \else
- \ifnum\countervalue{\??se##1}>0
- \global\alllevelsfalse
- \xdef\currentlevel{\getvalue{##1\s!format}}%
- \else
- \dobacktracklevel{##1}%
- \fi
- \fi}%
- \dobacktrackcommando\lastsection}}}%
- \egroup}
-
-\let\currentlevel\empty
-
-\def\doifnextlevelelse[#1::#2]#3#4%
- {\ifalllevels
- #3%
- \else
- \doifelse{\@@sectiontype}{#1} % \@EA kunnen denk ik weg
- {\@EA\doifinstringelse\@EA{\@EA=\currentlevel:}{=:#2:}
- {\@EA\doifinstringelse\@EA{\@EA=\currentlevel:0}{=:#2:}{#4}{#3}}
- {#4}}
- {#4}%
- \fi}
-
-\def\doifprevlevelelse[#1::#2]#3#4%
- {\ifalllevels
- #3%
- \else
- \doifelse{\@@sectiontype}{#1}
- {\@EA\doifinstringelse\@EA{\@EA=\currentlevel:}{=:#2:}
- {#3}
- {#4}}
- {#4}%
- \fi}
-
-\def\dosettoclevel{\dosetlevel}
-\def\dosetreglevel{\dosetlevel}
-\def\dosetblklevel{\dosetlevel}
-
-\def\doiftoclevelelse{\doifnextlevelelse}
-\def\doifreglevelelse{\doifprevlevelelse}
-\def\doifblklevelelse{\doifprevlevelelse}
-
-\def\@@longformatnumber#1%
- {\getvalue{\previoussection{#1}\s!format}:\@@shortsectionnumber{#1}}
-
-\def\@@longsectionnumber#1%
- {\ifnum\countervalue{\??se\previoussection{#1}}>0
- \getvalue{\previoussection{#1}\c!nummer}\@@koscheider
- \fi
- \@@shortsectionnumber{#1}}
-
-\def\@@shortsectionnumber#1%
- {\@EA\ifx\csname\??se#1\@@sectieblok\c!conversie\endcsname\relax
- \@@sectionvalue{#1}%
- \else
- \@@sectionconversion{#1}{\@@sectionvalue{#1}}%
- \fi}
-
-% suited for chinese too:
-
-\def\@@shortsectionnumber#1%
- {\@EA\ifx\csname\??se#1\@@sectieblok\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}
-
-\def\dosetlocalsectieblok#1#2#3%
- {\def\@@sectiontype{#1}%
- \def\@@sectieblok{#2}%
- \def\@@sectieblokken{#3}}
-
-\def\doaroundsectieblok#1%
- {\doifvaluesomething{\??sb#1\c!pagina}
- {\ExpandFirstAfter\pagina[\getvalue{\??sb#1\c!pagina}]}%
- \resetsectioncounters[\zerosection]% was firstsection
- \resetsectionmarks[\zerosection]}
-
-\def\dostartsectieblok#1#2%
- {\begingroup
- \doaroundsectieblok{#1}%
- \getvalue{\??sb#1}%
- \expandafter\csname#2true\endcsname % vervangen door mode
- \enablemode[#1]%
- \getvalue{\??sb\@@sectieblok\c!voor}% don't move
- \showmessage{\m!structures}{1}{\@@sectieblokken}}
-
-\def\dostopsectieblok%
- {\showmessage{\m!structures}{2}{\@@sectieblokken}%
- \getvalue{\??sb\@@sectieblok\c!na}% don't move
- \doaroundsectieblok{\@@sectieblok}%
- \endgroup}
-
-\def\dostelsectieblokin[#1][#2]%
- {\getparameters[\??sb#1][#2]}
-
-\def\stelsectieblokin%
- {\dodoubleargument\dostelsectieblokin}
-
-% 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\dodefinieersectieblok[#1][#2][#3]%
- {\getparameters
- [\??sb#1]
- [\c!nummer=\v!ja,
- \c!pagina=\v!rechts, % anders worden marks te vroeg gereset !
- %\c!voor=,
- %\c!na=,
- #3]%
- \expandafter\newif\csname if#2\endcsname
- \doglobal\increment\currentsectionblock
- \setevalue{\??sb#1}%
- {\noexpand\dosetlocalsectieblok{\currentsectionblock}{#1}{#2}}%
- \setvalue{\e!start#2}%
- {\dostartsectieblok{#1}{#2}}%
- \setvalue{\e!stop#2}%
- {\dostopsectieblok}}
-
-\def\definieersectieblok%
- {\dotripleargument\dodefinieersectieblok}
-
-\def\sectiebloklabel#1#2%
- {\@EA\ifx\csname\??ko#1\@@sectieblok\c!label\endcsname\relax
- \labeltexts{#1}{#2}%
- \else
- \labeltexts{\getvalue{\??ko#1\@@sectieblok\c!label}}{#2}%
- \fi}
-
-\dosetlocalsectieblok{2}{\v!hoofdtekst}{\v!hoofdteksten} % hm, dirty
-
-\def\setsectiontype[#1]%
- {\getvalue{\??sb#1}}
-
-\def\writesection#1#2#3% #3 -> \asciititle
- {\bgroup
- \edef\!!stringa{#1}%
- \@EA\writestatus\@EA
- {\!!stringa}
- {\ifsectienummer#2\else(#2)\fi\normalspace\asciititle}%
- \egroup}
-
-\def\@@koniveau{1} \def\kopniveau{\@@koniveau}
-
-\def\dohandelpaginaafAA#1%
- {\ifnum\lastpenalty>0
- \global\paginageblokkeerdtrue
- \fi}
-
-\def\dohandelpaginaafAB#1%
- {\flushsidefloats
- \getvalue{\??ko#1\c!voor}%
- %\witruimte vervangen door \noindent elders
- \relax
- \ifpaginageblokkeerd
- \global\paginageblokkeerdfalse
- \else
- \!!countb=\getvalue{\??se\@@sectie\c!niveau}\relax
- \ifnum\!!countb>\@@koniveau\relax
- \!!counta=20000
- \multiply\!!countb by 500
- \advance\!!counta by \!!countb
- \dosomebreak{\penalty\!!counta}%
- \else
- \dosomebreak{\allowbreak}%
- \fi
- \fi
- \xdef\@@koniveau{\getvalue{\??se\@@sectie\c!niveau}}}
-
-\def\dohandelpaginaafB#1%
- {\doifinset{\getvalue{\??ko#1\c!pagina}}{\v!ja,\v!rechts,\v!links}
- {\def\resetcurrentsectionmarks% toegevoegd, zie \pagina
- {\resetsectionmarks[\previoussection{\@@sectie}]}%
- \pagina[\getvalue{\??ko#1\c!pagina}]%
- \doifinset{\getvalue{\??tk\v!hoofd\v!tekst\c!status}}{\v!normaal,\v!start}
- {\doifvaluesomething{\??ko#1\c!hoofd}
- {\stelhoofdin[\c!status=\getvalue{\??ko#1\c!hoofd}]}}%
- \doifinset{\getvalue{\??tk\v!voet\v!tekst\c!status}}{\v!normaal,\v!start}
- {\doifvaluesomething{\??ko#1\c!voet} % new
- {\stelvoetin[\c!status=\getvalue{\??ko#1\c!voet}]}}}}
-
-\def\dohandelpaginaafX#1% zie doordefinieren / boven
- {\bgroup
- \!!countb=\@@koniveau
- \advance\!!countb by #1
- \multiply\!!countb by 500
- \!!counta=20000
- \advance\!!counta by \!!countb
- \dosomebreak{\penalty\!!counta}%
- \egroup}
-
-\def\handelpaginaaf#1%
- {\dohandelpaginaafAA{#1}%
- \ifnum\countervalue{\??se\previoussection{\@@sectie}}>0
- \ifnum\countervalue{\??se\@@sectie}>0
- \dohandelpaginaafB{#1}%
- \else
- \doifnotvalue{\??ko#1\c!doorgaan}{\v!ja}
- {\dohandelpaginaafB{#1}}%
- \fi
- \else
- \dohandelpaginaafB{#1}%
- \fi
- \dohandelpaginaafAB{#1}}
-
-\def\handelpaginaafC#1%
- {\xdef\@@koniveau{\getvalue{\??se\@@sectie\c!niveau}}%
- \nobreak}
-
-%\def\dolocalkopsetup#1% koppeling met standaard kopcommando / engels
-% {\forgetall
-% \doifvaluesomething{\??ko#1\c!uitlijnen}
-% {\ExpandFirstAfter\steluitlijnenin[\getvalue{\??ko#1\c!uitlijnen}]}%
-% \doifvaluesomething{\??ko#1\c!tolerantie}
-% {\ExpandFirstAfter\steltolerantiein[\getvalue{\??ko#1\c!tolerantie}]}%
-% \def\\{\crlf\strut\ignorespaces}}
-
-\def\dolocalkopsetup#1% koppeling met standaard kopcommando / engels
- {\forgetall
- \doifvaluesomething{\??ko#1\c!uitlijnen}
- {\expanded{\steluitlijnenin[\getvalue{\??ko#1\c!uitlijnen}]}}%
- \doifvaluesomething{\??ko#1\c!tolerantie}
- {\expanded{\steltolerantiein[\getvalue{\??ko#1\c!tolerantie}]}}%
- \def\\{\crlf\strut\ignorespaces}}
-
-\newif\ifplaatskop
-\newif\ifverhoognummer
-\newif\ifkopnummer
-
-\def\setsectieenkoppeling#1%
- {\edef\@@koppeling{\getvalue{\??ko#1\c!koppeling}}%
- \edef\@@sectie{\getvalue{\??ko#1\c!sectie}}%
- \doifnothing{\@@koppeling}
- {\edef\@@koppeling{#1}}%
- \doifnothing{\@@sectie}
- {\edef\@@sectie{\getvalue{\??ko\@@koppeling\c!sectie}}}}
-
-\newif\ifkopprefix
-
-% \handelpaginaaf 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>
-
-\def\dodosomekop#1[#2]#3%
- {\doifelsevalue{\??ko#1\c!eigennummer}{\v!ja}
- {\def\next{\doquadruplegroupempty\dododosomekop{#1}{#2}{#3}}}
- {\def\next{\fourthargumentfalse\dododosomekop{#1}{#2}{#3}{}}}%
- \next}
-
-\def\finalsectionnumber%
- {\ifundefined{\@@sectie\c!nummer}\else
- \getvalue{\@@sectie\c!nummer}%
- \fi}
-
-\def\dododosomekop#1#2#3#4%
- {\iffourthargument
- \def\next%
- {\dodododosomekop{#1}[#2]{#1}{#3}{#4}}%
- \else
- \def\next%
- {\dodododosomekop{#1}[#2]{#1}{\finalsectionnumber}{#3}}%
- \fi
- \next}
-
-\def\findsectionnumber#1#2#3% class file title
- {\begingroup
- \setsectieenkoppeling{#1}%
- \xdef\foundsectionnumber{1}%
- \def\dolijstelement##1##2##3##4##5##6%
- {\doif{##1}{#1}
- {\ConvertConstantAfter\doif{##4}{#3}
- {\global\utilitydonetrue
- \scratchcounter=0\getvalue{\??se\@@sectie\c!niveau}%
- \advance\scratchcounter by 2
- \def\do####1:####2]%
- {\advance\scratchcounter by -1
- \ifcase\scratchcounter
- \xdef\foundsectionnumber{####1}%
- \else
- \do####2]%
- \fi}%
- \do##5]}}}%
- \setbox0=\vbox
- {\doutilities{#1}{#2}{#1}{}{}}%
- \endgroup
- \doifnumberelse{\foundsectionnumber}
- {\doif{\foundsectionnumber}{0}{\xdef\foundsectionnumber{1}}}
- {\xdef\foundsectionnumber{1}}% an appendix or so
- \stelkopnummerin[#1][\foundsectionnumber]%
- \stelkopnummerin[#1][-1]}
-
-\def\dodododosomekop#1[#2]#3#4#5% % pas met \ExpandFirstAfter op bij twee||taligheid
- {\flushingcolumnfloatsfalse
- \setsectieenkoppeling{#1}%
- \doifelsevalue{\??ko#1\c!prefix}{}
- {\kopprefixfalse}
- {\kopprefixtrue}%
- \ifkopprefix
- \doifelsevalue{\??ko#1\c!prefix}{+}
- {\doifelsenothing{#2}
- {\def\localkopprefix{+}}
- {\def\localkopprefix{#2}}} % eigenlijk alleen eerste
- {\edef\localkoprefix{\getvalue{\??ko#1\c!prefix}}}%
- \fi
- \doifelsevalue{\??ko#1\c!plaatskop}{\v!ja}
- {\plaatskoptrue}
- {\plaatskopfalse}%
- \processaction
- [\getvalue{\??ko#1\c!verhoognummer}]
- [ \v!ja=>\verhoognummertrue,
- \v!nee=>\verhoognummerfalse,
- \s!unknown=>{\ifx\currentproduct\empty
- \findsectionnumber{#1}\commalistelement{#5}%
- \fi
- \verhoognummertrue}]%
- \edef\numberheaddistance {\getvalue{\??ko#1\c!afstand}}%
- \edef\numberheadalternative{\getvalue{\??ko#1\c!variant}}%
- \dostelkopvariantin[\numberheadalternative]%
- \ifsectienummer
- \doifelsevalue{\??sb\@@sectieblok\c!nummer}{\v!ja}
- {\doifelsevalue{\??ko#1\c!nummer}{\v!ja}
- {\kopnummertrue}{\kopnummerfalse}}
- {\kopnummerfalse}%
- \else
- \kopnummerfalse
- \fi
- \convertexpanded{\??ko#1}{#5}\asciititle
- \ifverhoognummer
- \ifplaatskop
- \checknexthead\handelpaginaaf{#1}%
- \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
- \ifkopprefix
- \setupreferencing[\c!prefix=-]%
- \fi
- \getvalue{\e!volgende\@@sectie}%
- \getvalue{\??ko#1\c!tussen}%
- \ifkopnummer
- \doplaatskopnummertekst
- {#1}
- {\setsectionlistreference{\@@sectie}{#1}%
- \ExpandFirstAfter\soortpagina[\@@koppeling]%
- \rawreference{\s!sec}{#2}{{#4}{\asciititle}}%
- \resetsectionmarks[\@@sectie]%
- \stellijstin[\@@koppeling][\c!expansie=\getvalue{\??ko#1\c!expansie}]%
- \doschrijfnaarlijst{\@@koppeling}{#4}{#5}{\v!kop}}
- {\sectiebloklabel{#3}{#4}}
- {#5}
- {\marking[#1]{#5}%
- \doifelsevalue{\??ko#1\c!eigennummer}{\v!ja}
- {\edef\finalsectionnumber{#4}}
- {\bepaalkopnummer[#1]}%
- \expanded{\marking[#1\v!nummer]{\finalsectionnumber}}}%
- \writesection{#1}{#4}{#5}%
- \else
- \doplaatskoptekst
- {#1}
- {\setsectionlistreference{\@@sectie}{#1}%
- \ExpandFirstAfter\soortpagina[\@@koppeling]%
- \rawreference{\s!sec}{#2}{{#4}{\asciititle}}%
- \resetsectionmarks[\@@sectie]%
- \stellijstin[\@@koppeling][\c!expansie=\getvalue{\??ko#1\c!expansie}]%
- \doschrijfnaarlijst{\@@koppeling}{}{#5}{\v!kop}}
- {#5}
- {\marking[#1]{#5}%
- \doifelsevalue{\??ko#1\c!eigennummer}{\v!ja}
- {\edef\finalsectionnumber{#4}}
- {\bepaalkopnummer[#1]}%
- \expanded{\marking[#1\v!nummer]{\finalsectionnumber}}}%
- \writesection{#1}{-}{#5}%
- \fi
- \ifkopprefix
- \ExpandFirstAfter\setupreferencing[\c!prefix=\localkopprefix]%
- \fi
- \dosomebreak\nobreak
- \ifdisplaysectionhead\getvalue{\??ko#1\c!na}\fi
- \else
- \checknexthead\dohandelpaginaafB{#1}% toegevoegd ivm subpaginanr / tug sheets
- \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
- \ifkopprefix
- \setupreferencing[\c!prefix=-]%
- \fi
- \getvalue{\e!volgende\@@sectie}%
- \getvalue{\??ko#1\c!tussen}%
- \setsectionlistreference{\@@sectie}{#1}%
- \resetsectionmarks[\@@sectie]%
- \marking[#1]{#5}%
- \doifelsevalue{\??ko#1\c!eigennummer}{\v!ja}
- {\edef\finalsectionnumber{#4}}
- {\bepaalkopnummer[#1]}%
- \expanded{\marking[#1\v!nummer]{\finalsectionnumber}}%
- \ExpandFirstAfter\soortpagina[\@@koppeling]%
- \bgroup
- \stellijstin[\@@koppeling][\c!expansie=\getvalue{\??ko#1\c!expansie}]%
- \ifkopnummer
- \rawreference{\s!sec}{#2}{{#4}{\asciititle}}%
- \doschrijfnaarlijst{\@@koppeling}{#4}{#5}{\v!kop}%
- \writesection{#1}{#4}{#5}%
- \else
- \rawreference{\s!sec}{#2}{{#4}{\asciititle}}%
- \doschrijfnaarlijst{\@@koppeling}{}{#5}{\v!kop}%
- \writesection{#1}{-}{#5}%
- \fi
- \egroup
- \ifkopprefix
- \ExpandFirstAfter\setupreferencing[\c!prefix=\localkopprefix]%
- \fi
- \fi
- \else
- \ifplaatskop
- \checknexthead\handelpaginaaf{#1}%
- \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...]
- \getvalue{\??ko#1\c!tussen}%
- \doplaatskoptekst
- {#1}
- {\rawreference{\s!sec}{#2}{{#4}{\asciititle}}}
- {#5}
- {}%
- \writesection{#1}{-}{#5}%
- \dosomebreak\nobreak
- \ifdisplaysectionhead\getvalue{\??ko#1\c!na}\fi
- \else
- % do nothing
- \fi
- \fi
- \flushingcolumnfloatstrue
- \ifdisplaysectionhead\else\expandafter\GotoPar\fi}
-
-% \prevdepth\dp\strutbox is belangrijk, vergelijk naast elkaar:
-%
-% \onderwerp{test} \input tufte
-% \onderwerp{test} \strut \input tufte
-% \onderwerp{test} \plaatslijst[...]
-
-\def\doplaatskoptekst#1#2#3#4%
- {\beginheadplacement{#1}%
- \setbox0=\hbox
- {\getvalue{\??ko#1\c!commando}
- {} % no number
- {\doattributes
- {\??ko#1}\c!letter\c!kleur
- {\doattributes
- {\??ko#1}\c!tekstletter\c!tekstkleur
- {\dontconvertfont
- \ifdisplaysectionhead\stelinterliniein\fi
- #2%
- \getvalue{\??ko#1\c!voorcommando}%
- \getvalue{\??ko#1\c!tekstcommando}%
- {\ifdisplaysectionhead
- \setstrut\begstrut#3\endstrut
- \else
- #3%
- \fi}%
- \getvalue{\??ko#1\c!nacommando}%
- \ifdisplaysectionhead\endgraf\fi}}}}%
- \endheadplacement{#1}{#4}}
-
-\def\doplaatskopnummertekst#1#2#3#4#5%
- {\beginheadplacement{#1}%
- \setbox0=\hbox
- {\getvalue{\??ko#1\c!commando}%
- {\doattributes{\??ko#1}\c!letter\c!kleur
- {\doattributes{\??ko#1}\c!nummerletter\c!nummerkleur
- {\getvalue{\??ko#1\c!voorcommando}%
- \getvalue{\??ko#1\c!nummercommando}%
- {\ifdisplaysectionhead
- \setstrut\begstrut#3\endstrut
- \else
- #3%
- \fi}}}}
- {\doattributes{\??ko#1}\c!letter\c!kleur
- {\doattributes{\??ko#1}\c!tekstletter\c!tekstkleur
- {\dontconvertfont
- \ifdisplaysectionhead\stelinterliniein\fi
- #2%
- \getvalue{\??ko#1\c!tekstcommando}%
- {\ifdisplaysectionhead
- \setstrut\begstrut#4\endstrut
- \else
- #4%
- \fi}%
- \getvalue{\??ko#1\c!nacommando}%
- \ifdisplaysectionhead\endgraf\fi}}}}%
- \endheadplacement{#1}{#5}}
-
-\newsignal\headsignal
-\let\headlastlinewidth\!!zeropoint
-\newif\ifcontinuoushead
-
-\def\beginheadplacement#1%
- {\bgroup
- \everypar{}% needed indeed
- \noindent % ipv \witruimte elders, na \forgetall !
- \bgroup
- \forgetall % now we may forget everything
- %\showcomposition
- \mindermeldingen
- \postponefootnotes
- \iflocation\ifdisplaysectionhead\else\noninterferingmarks\fi\fi
- \setupinteraction
- [\c!letter=,
- \c!kleur=,
- \c!contrastkleur=]%
- \strictouterreferencestrue % tzt instelling
- \def\localkopsetup%
- {\dolocalkopsetup{#1}}%
- \startsynchronisatie}
-
-\def\endheadplacement#1#2%
- {\doifvaluenothing{\??ko#1\c!file}{\locationfalse}%
- \ifdisplaysectionhead
- \let\headlastlinewidth\!!zeropoint
- \snaptogrid\hbox
- {\iflocation
- \ifautocrossdocument
- \naarbox{\box0}[\getvalue{\??ko#1\c!file}::#1]%
- \else
- \hbox{\box0}%
- \fi
- \else
- \hbox{\box0}%
- \fi
- \doflushfootnotes}% new
- \endgraf
- \nointerlineskip
- \dosomebreak\nobreak
- #2%
- \else
- \strut
- \doflushfootnotes % new
- \iflocation
- \ifautocrossdocument
- \hhboxindent=\ifcontinuoushead\headlastlinewidth\else\!!zeropoint\fi
- \unhhbox0\with{\naarbox{\box\hhbox}[\getvalue{\??ko#1\c!file}::#1]}%
- \advance\lasthhboxwidth by \numberheaddistance
- \xdef\headlastlinewidth{\the\lasthhboxwidth}%
- \else
- \unhbox0
- \global\let\headlastlinewidth\!!zeropoint
- \fi
- \else
- \unhbox0
- \global\let\headlastlinewidth\!!zeropoint
- \fi
- #2%
- \dimen0=\numberheaddistance
- \hskip\dimen0 \!!plus \dimen0 \!!minus .25\dimen0
- \hskip\headsignal\ignorespaces
- \fi
- %#2%
- \ifdisplaysectionhead
- \prevdepth\dp\strutbox % important, font related depth, see comment
- \fi
- \stopsynchronisatie
- \egroup
- \egroup
-\doflushfootnotes % new, still needed?
- \ifdisplaysectionhead
- \doifvalue{\??ko#1\c!springvolgendein}{\v!nee}{\noindentation}%
- \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
- \handelpaginaafC{#1}%
- \global\continuousheadtrue
- \else
- \penalty\scratchcounter
- \global\continuousheadfalse
- #1{#2}%
- \fi
- \else
- \global\continuousheadfalse
- #1{#2}%
- \fi}
-
-\def\dostelkopnummerin[#1][#2#3]%
- {\bgroup
- \setsectieenkoppeling{#1}%
- \doifinstringelse{#2}{+-}
- {\doifelse{#3}{}
- {\@@nextsectionnumber{\@@sectie}}
- {\!!counta=#2#3\relax
- \advance\!!counta by \@@sectionvalue{\@@sectie}%
- \@@setsectionnumber{\@@sectie}{\!!counta}}}
- {\@@setsectionnumber{\@@sectie}{#2#3}}%
- \egroup}
-
-\def\stelkopnummerin%
- {\dodoubleargument\dostelkopnummerin}
-
-% \def\dokopnummer[#1]%
-% {\bgroup
-% \setsectieenkoppeling{#1}%
-% \doifnot{\finalsectionnumber}{0} % kan effienter
-% {\finalsectionnumber}%
-% \egroup}
-%
-% beter :
-
-\def\huidigekopnummer{0}
-
-\def\bepaalkopnummer[#1]%
- {\bgroup
- \setsectieenkoppeling{#1}%
- \xdef\huidigekopnummer{\@@sectionvalue{\@@sectie}}%
- \egroup}
-
-%\def\complexkopnummer[#1]%
-% {\bgroup
-% \setsectieenkoppeling{#1}%
-% \xdef\huidigekopnummer{\@@sectionvalue{\@@sectie}}%
-% \doifnot{\huidigekopnummer}{0}
-% {\finalsectionnumber}%
-% \egroup}
-
-\def\complexkopnummer[#1]%
- {\bgroup
- \edef\huidigekopnummer{#1}%
- \doifinsetelse{-}{#1}
- {\removefromcommalist{-}\huidigekopnummer
- \setsectieenkoppeling\huidigekopnummer
- \stelsectiein[\@@sectie][\c!vorigenummer=\v!nee]}%
- {\setsectieenkoppeling\huidigekopnummer}%
- \xdef\huidigekopnummer{\@@sectionvalue{\@@sectie}}%
- \doifnot{\huidigekopnummer}{0}{\finalsectionnumber}%
- \egroup}
-
-\def\simplekopnummer%
- {\huidigekopnummer}
-
-\definecomplexorsimple\kopnummer
-
-\def\alinea%
- {\par}
-
-\def\plaatskopalinea#1#2%
- {\vbox{\begstrut\doifsomething{#1}{#1\hskip\numberheaddistance}#2}}
-
-\def\plaatskopnormaal#1#2%
- {\doifelsenothing{#1}
- {\vbox
- {\localkopsetup
- \noindent
- #2}}%
- {\setbox0=\hbox{{#1}\hskip\numberheaddistance}%
- \vbox
- {\localkopsetup
- \hangindent 1\wd0
- \hangafter 1
- \noindent
- \unhbox0 % don't use \strut's here!
- #2}}}
-
-\def\plaatskopinmarge#1#2%
- {\vbox
- {\localkopsetup
- \begstrut % but use one \strut here!
- \doifsomething{#1}
- {\llap{\hbox to 5em{\hfill{#1}\hskip\linkermargeafstand}}}%
- {#2}}}
-
-\def\plaatskopmidden#1#2%
- {\vbox
- {\localkopsetup
- \veryraggedcenter
- \let\\\endgraf
- \let\crlf\endgraf
- \doifsomething{#1}{\strut#1\par}\begstrut#2}}
-
-\def\plaatskopintekst#1#2%
- {\bgroup
- \localkopsetup
- \doifsomething{#1}{{#1}\kern\numberheaddistance}% no stretch
- {\begstrut#2}%
- %\hskip\numberheaddistance % naar elders
- \egroup}
-
-% default == instellingen
-% koppeling == koppen, breaks, marks, enz.
-% sectie == nummering
-
-\let\@@kolijst=\empty
-
-\def\dodefinieerkop[#1][#2]% % don't preset prefix to much
- {\presetlabeltext[#1=]%
- \getparameters
- [\??ko#1]
- [\c!nummerletter=\getvalue{\??ko#1\c!letter},
- \c!tekstletter=\getvalue{\??ko#1\c!letter},
- \c!nummerkleur=\getvalue{\??ko#1\c!kleur},
- \c!tekstkleur=\getvalue{\??ko#1\c!kleur}]%
- \ConvertToConstant\doifinstringelse{=}{#2}
- {\getparameters
- [\??ko#1]
- [\c!sectie=\getvalue{\??ko\getvalue{\??ko#1\c!koppeling}\c!sectie},
- \c!default=,
- \c!koppeling=,
- \c!prefix=,
- \c!voor=,
- \c!na=,
- \c!afstand=,
- \c!pagina=,
- \c!hoofd=,
- \c!voet=,
- \c!letter=,
- \c!nummercommando=,
- \c!tekstcommando=,
- \c!eigennummer=\v!nee,
- \c!nummer=\v!ja,
- \c!kleur=,
- \c!springvolgendein=\v!nee,
- \c!doorgaan=\v!ja,
- \c!plaatskop=\v!ja,
- \c!verhoognummer=\v!ja,
- \c!variant=\@@kovariant,
- \c!commando=\@@plaatskop,
- \c!uitlijnen=,
- \c!tolerantie=,
- \c!file=,
- \c!expansie=,
- #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!voor,\c!na,\c!commando,\c!file,\c!pagina,\c!doorgaan,\c!hoofd,\c!voet,
- \c!nummer,\c!eigennummer,\c!plaatskop,\c!verhoognummer,
- \c!letter,\c!kleur,\c!afstand,\c!variant,\c!springvolgendein,
- %\c!nummerletter,\c!tekstletter,
- %\c!expansie, % njet
- \c!uitlijnen,\c!tolerantie,\c!nummercommando,\c!tekstcommando]}}%
- \getparameters[\??ko#1][#2]%
- \doifsomething{\getvalue{\??ko#1\c!sectie}}
- {\doifundefined{\??mk#1}
- {\definieermarkering[#1]%
- \koppelmarkering[#1][\getvalue{\??ko#1\c!sectie}]%
- \definieermarkering[#1\v!nummer]%
- \koppelmarkering[#1\v!nummer][\getvalue{\??ko#1\c!sectie}]}}%
-% \koppelmarkering[#1\v!nummer][\getvalue{\??ko#1\c!sectie}\v!nummer]}}%
- \doifundefined{\??li#1}{\definieerlijst[#1]}}
- {\ConvertToConstant\doifelse{#1}{#2}
- {\doifundefined{\??li#1}{\definieerlijst[#1]}}
- {\copyparameters
- [\??ko#1][\??ko#2]
- [\c!niveau,\c!sectie,\c!koppeling,\c!prefix,
- \c!voor,\c!na,\c!commando,\c!file,\c!pagina,\c!doorgaan,\c!hoofd,\c!voet,
- \c!nummer,\c!eigennummer,\c!plaatskop,\c!verhoognummer,
- \c!letter,\c!kleur,\c!afstand,\c!variant,\c!springvolgendein,
- %\c!nummerletter,\c!tekstletter,
- %\c!expansie, % njet
- \c!uitlijnen,\c!tolerantie,\c!nummercommando,\c!tekstcommando]%
- \definieermarkering[#1][#2]%
- \definieermarkering[#1\v!nummer][#2\v!nummer]%
- \doifundefined{\??li#1}{\definieerlijst[#1][#2]}}}%
- \addtocommalist{#1}\@@kolijst
- \setevalue{\??sk#1}%
- {\getvalue{\??ko#1\c!koppeling}}%
- \setevalue{\??by#1}%
- {\getvalue{\??ko#1\c!sectie}}%
- \setevalue{\??by\v!per#1}%
- {\getvalue{\??ko#1\c!sectie}}%
- \setvalue{#1}%
- {\dodoubleempty\dosomekop[#1]}}
-
-\def\definieerkop%
- {\dodoubleemptywithset\dodefinieerkop}
-
-\def\dosomekop[#1][#2]%
- {\dowithpargument{\dodosomekop{#1}[#2]}}
-
-\def\dostelkopin[#1][#2]%
- {\getparameters[\??ko#1][#2]%
- % The next check prevents hard to trace problems. I once
- % set \c!commando to nothing and (quite natural) got the
- % wrong references etc. The whole bunch should be boxed!
- \expandafter\convertcommand\csname\??ko#1\c!commando\endcsname\to\ascii
- \doifnothing{\ascii}
- {\setvalue{\??ko#1\c!commando}{\@@plaatskop}}}
-
-\def\stelkopin%
- {\dodoubleargumentwithset\dostelkopin}
-
-\newif\ifsectienummer \sectienummertrue
-\newif\ifdisplaysectionhead \displaysectionheadtrue
-
-\def\@@plaatskop{\plaatskopnormaal}
-
-\def\dostelkopvariantin[#1]%
- {\displaysectionheadtrue
- \processaction
- [#1]
- [ \v!normaal=>\def\@@plaatskop{\plaatskopnormaal},
- \v!midden=>\def\@@plaatskop{\plaatskopmidden},
- \v!marge=>\def\@@plaatskop{\plaatskopinmarge},
- \v!inmarge=>\def\@@plaatskop{\plaatskopinmarge},
- \v!tekst=>\def\@@plaatskop{\plaatskopintekst}\displaysectionheadfalse,
- \v!alinea=>\def\@@plaatskop{\plaatskopalinea},
- \s!unknown=>\def\@@plaatskop{\plaatskopnormaal}]}
-
-\def\dostelkoppenin[#1]%
- {\getparameters[\??ko][#1]%
- \doifelse{\@@kosectienummer}{\v!ja}
- {\sectienummertrue}
- {\sectienummerfalse}%
- \dostelkopvariantin[\@@kovariant]}
-
-\def\stelkoppenin%
- {\dosingleargument\dostelkoppenin}
-
-\def\systemsuppliedchapter {\getvalue{\v!hoofdstuk}}
-\def\systemsuppliedtitle {\getvalue{\v!titel}}
-
-% a left over
-
-\def\complexbijlage[#1]#2%
- {\pagina[\v!rechts]
- \stelnummeringin[\c!status=\v!stop]
- \systemsuppliedchapter[#1]{#2}
- \pagina[\v!rechts]
- \stelnummeringin[\c!status=\v!start]
- \stelpaginanummerin[\c!nummer=1]}
-
-\setvalue{\v!bijlage}%
- {\complexorsimpleempty\bijlage}
-
%I n=Selecteren
%I c=\soortpagina,\verwerkpagina,\koppelpagina
%I
@@ -10149,12 +6396,15 @@
\futurelet\next\dobetweenthelines}%
\GotoPar}
+% \def\dobetweenthelines%
+% {\convertcommand \next \to\!!stringa % very ugly and fuzzy
+% \convertargument\obeyedline\to\!!stringb % but needed anyway
+% \ifx\!!stringa\!!stringb % but alas, it fails
+% \@@rgtussen % hopelessly in non
+% \fi} % etex
+
\def\dobetweenthelines%
- {\convertcommand \next \to\!!stringa % very ugly and fuzzy
- \convertargument\obeyedline\to\!!stringb % but needed anyway
- \ifx\!!stringa\!!stringb
- \@@rgtussen
- \fi}
+ {\doifmeaningelse{\next}{\obeyedline}{\@@rgtussen}{}}
\def\stopregels%
{\endgroup
@@ -10162,6 +6412,7 @@
\newcount\linenumber
\newcount\linestepper
+\newif\ifinregelnummeren
% het gebruik van \setlocalreference scheelt een hash entry
@@ -10220,6 +6471,7 @@
\def\startregelnummeren%
{\bgroup
+ \inregelnummerentrue
\complexorsimpleempty\startregelnummeren}
\def\doschrijfregelnummer%
@@ -10386,11 +6638,45 @@
\egroup}
\def\crlf%
- {\ifhmode\unskip\else\strut\fi\hfil\break}
+ {\ifhmode\unskip\else\strut\fi\ifcase\raggedstatus\hfil\fi\break}
\def\opeenregel%
{\def\crlf{\ifhmode\unskip\fi\space}\let\\\crlf}
+\newcount\internalparagraphnumber
+
+\def\stelparagraafnummerenin%
+ {\dosingleempty\dostelparagraafnummerenin}
+
+\def\dostelparagraafnummerenin[#1]%
+ {\getparameters
+ [\??ph][#1]%
+ \processaction
+ [\@@phstatus]
+ [\v!start=>\let\showparagraphnumber\doshowparagraphnumberA,
+ \v!stop=>\let\showparagraphnumber\relax,
+ \v!regel=>\let\showparagraphnumber\doshowparagraphnumberB,
+ \v!reset=>\global\internalparagraphnumber=0
+ \let\showparagraphnumber\doshowparagraphnumberA]}
+
+\def\dodoshowparagraphnumber%
+ {\global\advance\internalparagraphnumber 1
+ \inleftmargin % \tf normalizes em
+ {\tf{\doattributes\??ph\c!letter\c!kleur{\the\internalparagraphnumber}}%
+ \kern\@@phafstand}}
+
+\def\doshowparagraphnumberA%
+ {\ifprocessingverbatim
+ \iflinepar\dodoshowparagraphnumber\fi
+ \else
+ \dodoshowparagraphnumber
+ \fi}
+
+\def\doshowparagraphnumberB%
+ {\ifinregelnummeren
+ \doshowparagraphnumberA
+ \fi}
+
%I n=Opmaak
%I c=\definieeropmaak,\testopmaak,\startstandaardopmaak
%I
@@ -10696,6 +6982,7 @@
[ \v!links=>\let\raggedbox\regellinks,
\v!rechts=>\let\raggedbox\regelrechts,
\v!midden=>\let\raggedbox\regelmidden,
+ \v!normaal=>\let\raggedbox\hbox,
\s!default=>\let\raggedbox\hbox,
\s!unknown=>\let\raggedbox\hbox]}
@@ -10706,7 +6993,7 @@
\v!rechts=>\def\raggedcommand{\raggedright},
\v!midden=>\def\raggedcommand{\raggedcenter},
\v!nee=>\def\raggedcommand{\raggedright},
-% \v!normaal=>\let\raggedcommand\relax,
+ \v!normaal=>\let\raggedcommand\relax,
\s!default=>\def\raggedcommand{\raggedcenter},
\s!unknown=>\let\raggedcommand\relax]}
@@ -11027,6 +7314,7 @@
\everypar ={\flushfootnotes
\ifinner\else\checksidefloat\fi
\checkindentation
+ \showparagraphnumber % here ?
\flushmargincontents
\flushcomments}
\neverypar ={}
@@ -11508,19 +7796,6 @@
% sequence of 20 floats, large and small, where a large one
% migrates and the next smaller one is inserted.
-% \loop ...\repeat doesn't work here, but why?
-%
-% \def\dosettopinserts%
-% {\ifsomefloatwaiting
-% \noffloatinserts=0\relax
-% \loop
-% \ifnum\noffloatinserts<\noftopfloats
-% ....
-% \repeat
-% \fi}
-%
-% so:
-
\def\dodosettopinserts%
{\ifnum\noffloatinserts<\noftopfloats
\dogetfloat
@@ -11958,26 +8233,37 @@
\newbox\captionbox
-\def\putcompletecaption%
- {\mindermeldingen
- \begstrut\dofloatnummer\dofloattekst\endstrut}
+\def\putcompletecaption#1#2#3#4%
+ {\noindent
+ \xdef\floatcaptionnumber{#1}%
+ \doattributes{\??kj#1}\c!letter\c!kleur
+ {\doifvalue{\??kj#1\c!nummer}{\v!ja}
+ {\hbox{\doattributes{\??kj#1}\c!kopletter\c!kopkleur{\strut#2\floatcaptionsuffix}}%
+ \ConvertToConstant\doifnot{#3}{}
+ {\ifcase#4\relax
+ \tfskip\emergencystretch=.5em
+ \else
+ \ifx\@@kjkjtussen\empty\else\unskip\@@kjkjtussen\fi
+ \fi}}%
+ \begstrut#3\endstrut\endgraf}}
\def\dosetpagfloat#1#2#3#4% \copy wegwerken
{\bgroup
\forgetall
+ \postponefootnotes
+ \mindermeldingen
%\showcomposition
\putborderedfloat#4\in4\\%
\def\locatefloat%
{\doregelplaats\@@flflplaats}%
\ConvertToConstant\doifelse{#3}{\v!geen}
- {\global\setbox\floatbox=\vbox
- {\locatefloat{\box4}}} % pas op, nog wd groter dan hsize
- {\dosetfloatcaption{#4}{#2}{#3}%
- % at another level, prevents reprocessing of footnotes
- \setbox\captionbox=\hbox{\putcompletecaption}%
- \def\putcompletecaption{\unhcopy\captionbox}%
- %
- \setbox2=\hbox{\forgetall\putcompletecaption}%
+ {\global\setbox\floatbox=\vbox % pas op als wd groter dan hsize
+ {\ifbinnenkolommen\ifdim\wd4>\hsize
+ \let\locatefloat\relax
+ \fi\fi
+ \locatefloat{\box4}}}
+ {\setbox2=\hbox
+ {\footnotesenabledfalse\putcompletecaption{#4}{#2}{#3}{0}}%
\doifinsetelse{\@@kjkjplaats}{\v!hoog,\v!midden,\v!laag}
{\dimen0=\hsize
\advance\dimen0 by -\wd4\relax
@@ -11992,17 +8278,12 @@
{\forgetall
\hsize=\dimen0\relax
\raggedright
- \begstrut\dofloatnummer
- \ifx\@@kjkjtussen\empty \else
- \unskip\@@kjkjtussen
- \fi
- \dofloattekst
- \endstrut}}
+ \putcompletecaption{#4}{#2}{#3}{1}}}
{\doifelse{\@@kjkjbreedte}{\v!max}
{\dosetraggedvbox{\@@kjkjuitlijnen}%
\setbox2=\raggedbox
{\hsize\wd4\relax
- \putcompletecaption}}
+ \putcompletecaption{#4}{#2}{#3}{0}}}
{\ifdim\wd2>\wd4\relax
\doifelse{\@@kjkjbreedte}{\v!passend}
{\ifdim\wd4<15\korpsgrootte\relax
@@ -12014,12 +8295,18 @@
\setbox0=\vbox
{\forgetall
\hsize=1.0\wd4
- \putcompletecaption}%
+ \footnotesenabledfalse
+ \putcompletecaption{#4}{#2}{#3}{0}}%
\ifdim\ht0>\lineheight\relax
\setbox2=\vbox
{\forgetall
\hsize=0.9\wd4
- \putcompletecaption}%
+ \putcompletecaption{#4}{#2}{#3}{0}}%
+ \else
+ \setbox0=\vbox
+ {\forgetall
+ \hsize=1.0\wd4
+ \putcompletecaption{#4}{#2}{#3}{0}}%
\fi
\else
\setbox0=\vbox
@@ -12028,7 +8315,8 @@
\ifdim\dimen2<\hsize
\hsize=\dimen2\relax
\fi
- \putcompletecaption}%
+ \footnotesenabledfalse
+ \putcompletecaption{#4}{#2}{#3}{0}}%
\ifdim\ht0>\lineheight\relax
\setbox2=\vbox
{\forgetall
@@ -12036,13 +8324,21 @@
\ifdim\dimen2<\hsize
\hsize=\dimen2\relax
\fi
- \putcompletecaption}%
+ \putcompletecaption{#4}{#2}{#3}{0}}%
+ \else
+ \setbox0=\vbox
+ {\forgetall
+ \dimen2=1.5\dimen0\relax
+ \ifdim\dimen2<\hsize
+ \hsize=\dimen2\relax
+ \fi
+ \putcompletecaption{#4}{#2}{#3}{0}}%
\fi
\fi}
{\dosetraggedvbox{\@@kjkjuitlijnen}%
\setbox2=\raggedbox
{\hsize\@@kjkjbreedte
- \putcompletecaption}}%
+ \putcompletecaption{#4}{#2}{#3}{0}}}%
\fi}}%
\global\setbox\floatbox=\vbox
{\forgetall
@@ -12090,34 +8386,30 @@
\def\dosetparfloat#1#2#3#4%
{\bgroup
- %\showcomposition
\forgetall
+ \postponefootnotes
+ \mindermeldingen
+ %\showcomposition
\putborderedfloat#4\in4\\
\ConvertToConstant\doifelse{#3}{\v!geen}
{\global\setbox\floatbox=\vbox{\box4}}
- {\dosetfloatcaption{#4}{#2}{#3}%
- \setbox2=\hbox
- {\forgetall
- \putcompletecaption}%
+ {\setbox2=\hbox
+ {\forgetall\putcompletecaption{#4}{#2}{#3}{0}}%
\doifelse{\@@kjkjbreedte}{\v!max}
{\dosetraggedvbox{\@@kjkjuitlijnen}%
\setbox2=\raggedbox
- {\hsize\wd4
- \putcompletecaption}}
+ {\hsize\wd4\putcompletecaption{#4}{#2}{#3}{0}}}%
{\doifelse{\@@kjkjbreedte}{\v!passend}
{\ifdim\wd2>\wd4\relax
\setbox2=\vbox
- {\forgetall
- \hsize\wd4
- \putcompletecaption}%
+ {\forgetall\hsize\wd4\putcompletecaption{#4}{#2}{#3}{0}}%
\else
\setbox2=\hbox to \wd4
{\hss\box2\hss}%
\fi}
{\dosetraggedvbox{\@@kjkjuitlijnen}%
\setbox2=\raggedbox
- {\hsize\wd4
- \putcompletecaption}}}%
+ {\hsize\wd4\putcompletecaption{#4}{#2}{#3}{0}}}}%
\global\setbox\floatbox=\vbox
{\processaction
[\@@kjkjplaats]
@@ -12158,7 +8450,7 @@
{\setbox\floatbox=\vbox
{\parindent\!!zeropoint
\ifvoorlopig
- \inlinkermarge{\framed{\infofont\the\totalnoffloats}}%
+ \inleftmargin{\framed{\infofont\the\totalnoffloats}}%
\fi
\box\floatbox}}%
\wd\floatbox=\floatwidth
@@ -12567,92 +8859,6 @@
%I \stopnaast
%I
%I \stelnaastplaatsenin[status=]
-%I
-
-% \newbox\facingbox
-% \newbox\facingpage
-%
-% \newdimen\facingboxsize
-% \newdimen\facingpagetotal
-%
-% \facingpagetotal=\!!zeropoint
-%
-% \newif\iffacingpages \facingpagesfalse
-%
-% \def\shipoutfacingpage%
-% {\iffacingpages
-% \setbox\facingpage=\vbox to \zethoogte
-% {\kern\hoofdhoogte
-% \kern\ht\topins % ?
-% \kern\dp\topins % ?
-% \kern\dp\strutbox % checken
-% \box\facingpage
-% \vfill}%
-% \myshipout{\buildpagebody\box\facingpage}%
-% \fi
-% \global\setbox\facingpage=\box\voidb@x
-% \global\facingpagetotal=\!!zeropoint\relax}
-%
-% \def\flushfacingpage%
-% {\penalty-\!!tenthousand
-% \global\facingpagetotal=\facingboxsize
-% \setbox\facingpage=\vbox{\box\facingbox}}
-%
-% \def\startnaast#1\stopnaast%
-% {\iffacingpages
-% \setbox\facingbox=\vbox
-% {\hsize=\zetbreedte\relax
-% #1}%
-% \global\facingboxsize=\ht\facingbox
-% \global\advance\facingboxsize by \dp\facingbox
-% \ifdim\pagetotal<\facingpagetotal
-% \dimen2=\facingpagetotal
-% \advance\dimen2 by -\pagetotal
-% \vskip\dimen2\relax
-% \else
-% \dimen2=\!!zeropoint\relax
-% \fi
-% \dimen0=\pagetotal
-% \advance\dimen0 by \facingboxsize
-% \ifdim\dimen0>\pagegoal
-% \flushfacingpage
-% \else
-% \global\advance\facingpagetotal by \facingboxsize
-% \ifdim\facingpagetotal>\pagegoal
-% \flushfacingpage
-% \else
-% \setbox\facingpage=\vbox
-% {\offinterlineskip
-% \mindermeldingen
-% \ht\facingpage=\!!zeropoint
-% \ifdim\pagetotal=\topskip
-% \vskip-\topskip
-% \fi
-% \box\facingpage
-% \advance\dimen2 by \pagetotal
-% \vskip\dimen2\relax
-% \ifdim\facingpagetotal>\facingboxsize
-% \vskip\tussenwit
-% \fi
-% \box\facingbox}%
-% \fi
-% \fi
-% \fi}
-%
-% \def\dostelnaastplaatsenin[#1]%
-% {\getparameters[\??np][#1]%
-% \doifelse{\@@npstatus}{\v!start}
-% {\global\facingpagestrue}
-% {\global\facingpagesfalse}}
-%
-% \def\stelnaastplaatsenin%
-% {\dosingleargument\dostelnaastplaatsenin}
-%
-% \def\naastpagina%
-% {\shipoutfacingpage}
-%
-% \def\facefloat% redefined
-% {\startnaast\box\floatbox\stopnaast}
\newbox\facingbox
\newbox\facingpage
@@ -12709,2252 +8915,6 @@
\def\stelnaastplaatsenin%
{\dosingleargument\dostelnaastplaatsenin}
-%I n=Lijsten
-%I c=\definieerlijst,\stellijstin,\plaatslijst
-%I
-%I Er kunnen lijsten worden aangemaakt en opgeroepen. Een
-%I lijst wordt gedefinieerd met:
-%I
-%I \definieerlijst[naam]
-%I
-%I en zonodig ingesteld met:
-%I
-%I \stellijstin[naam][status=,variant=,marge=,breedte=,
-%I scheider=,afstand=,paginanummer=,deelnummer=,
-%I titeluitlijnen=,label=,letter=,tekstletter=,nummerletter=,
-%I paginaletter=,paginaovergangen=,voor=,na=,niveau=,
-%I criterium=,symbool=,prefix=,links=,rechts=]
-%I
-%I De instellingen mogen ook direkt worden opgegeven:
-%I
-%I \definieerlijst[naam][instellingen]
-%I
-%I Ook kunnen kenmerken van andere lijsten worden overgenomen:
-%I
-%I \definieerlijst[naam][andere naam]
-%P
-%I De vorm van de lijst wordt onder meer bepaald door de variant
-%I (a,b,c). In grote lijnen ziet een lijst er als volgt uit:
-%I
-%I <marge+breedte+scheider+afstand> <variant>
-%I
-%I Mogelijke varianten zijn:
-%I
-%I variant a : nummer - titel - pagina
-%I variant b : nummer - titel - spaties - pagina
-%I variant c : nummer - titel - punten - pagina
-%I variant d : nummer - titel - pagina (doorlopend)
-%P
-%I Een of meer lijsten kunnen wordt opgeroepen met:
-%I
-%I \plaatslijst[naam,naam,...]
-%I
-%I Standaard zijn lijsten gedefinieerd voor deel, hoofdstuk,
-%I paragraaf, subparagraaf en subsubparagraaf. Deze lijsten
-%I zijn dus afzonderlijk in te stellen. Deze lijsten zijn
-%I gegroepeerd tot een samengestelde lijst (zie elders).
-%I
-%I De layout van een lijst kan worden beinvloed door
-%I commando's tussen te voegen met:
-%I
-%I \schrijftussenlijst[naam]{commandos}
-%I
-%I Voor eigen gebruik is \iflijstgeplaatst beschikbaar.
-%P
-%I Gevorderde gebruikers kunnen eigen lijstcommando's maken.
-%I Deze commando's kunnen worden toegekend met:
-%I
-%I [...,nummercommando=,tekstcommando=,paginacommando=,...]
-%I
-%I en hebben de vorm
-%I
-%I \commando{argument}
-%I
-%I bijvoorbeeld
-%I
-%i nummercommando=\omlijnd
-%I
-%I Volledige vrijheid krijgt men met de instelling
-%I
-%I variant=geen
-
-% \getlistlevel[hoofdstuk]\test{0} \test
-
-\def\getlistlevel[#1]#2#3% [list] \variable \default
- {\doifdefinedelse{\??ko#1\c!sectie}
- {\edef#2{\getvalue{\??ko#1\c!sectie}}%
- \doifdefinedelse{\??se#2\c!niveau}
- {\edef#2{\getvalue{\??se#2\c!niveau}}}
- {\edef#2{#3}}}
- {\edef#2{#3}}}
-
-% \def\doschrijfnaarlijst#1#2#3#4%
-% {\doifvalue{\??li#1\c!status}{\v!start}
-% {\begingroup
-% \thisisnextinternal{#1}%
-% %
-% % Dit gaat goed als #2 geen commando's bevat. Dit is
-% % bij interactieve teksten echter soms wel het geval.
-% % Vandaar dat we dit optioneel moeten maken, bijvoorbeeld
-% % met \stellijstin[referentie=ja].
-% %
-% \ExpandFirstAfter\processaction
-% [\getvalue{\??li#1\c!expansie}]
-% [ \v!ja=>{\edef\ascii{#3}},
-% \v!commando=>{\convertcommand#3\to\ascii},
-% \s!unknown=>{\convertargument#3\to\ascii}]%
-% \makesectionformat
-% \doifelse{\@@nmstatus}{\v!start}
-% {\def\dopaginanummer{\noexpand\pagenumber}}
-% {\def\dopaginanummer{0}}%
-% \edef\schrijfwegnaarlijst%
-% {\writeutilitycommand%
-% {\listentry%
-% {#1}%
-% {\nextinternalreference}%
-% {#2}%
-% {\ascii}%
-% {\sectionformat::\dopaginanummer}%
-% {\noexpand\realfolio}}}%
-% \schrijfwegnaarlijst
-% \endgroup}}
-
-\def\doschrijfnaarlijst#1#2#3#4%
- {\doifvalue{\??li#1\c!status}{\v!start}
- {\begingroup
- \convertexpanded{\??li#1}{#3}\asciilistentry
- \makesectionformat
- \doifelse{\@@nmstatus}{\v!start}
- {\def\dopaginanummer{\noexpand\pagenumber}}
- {\def\dopaginanummer{0}}%
- % niet waterdicht, wat te doen met figuren en zo
- % first hack: scheelt rommel, second hack: alleen koppen
- \ExpandBothAfter\rawdoifinsetelse{#1}{\crossdocumentelements}
- {\doif{\@@sectionlevel\@@sectie}{0}{\autocrossdocumentfalse}}
- {\autocrossdocumentfalse}%
- % blijft nog wat zwakjes
- \ifautocrossdocument
- \bgroup
- \thisisdestination{#1::\sectionformat}%
- \@EA\setsectieenkoppeling\@EA{#1}%
- \edef\currentlevel{\@@sectionlevel\@@sectie}%
- \def\docommando##1%
- {\def\dodocommando####1%
- {\setsectieenkoppeling{####1}%
- \def\level{\@@sectionlevel\@@sectie}%
- \ifnum\level>\currentlevel
- \expanded{\definereference[##1::####1][\v!geen]}%
- \else\ifnum\level=\currentlevel
- \expanded{\definereference[##1::####1][##1::{####1::\sectionformat}]}%
- \fi\fi}%
- \processcommacommand[\crossdocumentelements]\dodocommando}%
- \processcommacommand[\crossdocumentreferences]\docommando
- \egroup
- \else
- \thisisnextinternal{#1}%
- \fi
- \edef\schrijfwegnaarlijst%
- {\writeutilitycommand%
- {\listentry%
- {#1}%
- {\nextinternalreference}%
- {#2}%
- {\asciilistentry}%
- {\sectionformat::\dopaginanummer}%
- {\noexpand\realfolio}}}%
- \schrijfwegnaarlijst
- \endgroup}}
-
-\def\doschrijftussenlijst#1#2%
- {\doif{\getvalue{\??li#1\c!status}}{\v!start}
- {\begingroup
- \convertargument#2\to\ascii
- \makesectionformat
- \doifelse{\@@nmstatus}{\v!start}
- {\def\dopaginanummer{\noexpand\pagenumber}}
- {\def\dopaginanummer{0}}%
- \edef\schrijfwegnaarlijst%
- {\writeutilitycommand%
- {\listbetween%
- {#1}%
- {\ascii}%
- {\sectionformat::\dopaginanummer}%
- {\noexpand\realfolio}}}%
- \schrijfwegnaarlijst
- \endgroup}}
-
-\def\listentry#1%
- {\executeifdefined{#1\c!lijst}\gobblefivearguments}
-
-\def\listbetween#1%
- {\executeifdefined{#1\c!tussen}\gobblethreearguments}
-
-\def\@@livarianta% nr - tit - pag
- {\def\lijstfill{\hskip 1.25em}%
- \def\lijstskip{0em}%
- \def\lijstwidth{2em}}
-
-\def\@@livariantb% nr - tit - fill - pag
- {\def\lijstfill{\hfill}%
- \def\lijstskip{5em}%
- \def\lijstwidth{2em}}
-
-\def\@@livariantc% nr - tit - dots - pag
- {\def\lijstfill{\leaders\hbox to .5em{\hss.\hss}\hfill\hskip.5em}%
- \def\lijstskip{5em}%
- \def\lijstwidth{0pt}}
-
-\def\@@livariant%
- {\lijstvariantb}
-
-\@@livariantb
-
-\def\dostellijstin[#1][#2]%
- {\def\docommando##1%
- {\getparameters[\??li##1][#2]%
- \preparepaginaprefix{\??li##1}}%
- \processcommalist[#1]\docommando}
-
-\def\stellijstin%
- {\dodoubleargument\dostellijstin}
-
-\def\dodosetlijst#1%
- {\def\geenlijst##1{\unknown}%
- \setvalue{#1\c!tussen}{\dotussenlijst{#1}}%
- \setvalue{#1\c!lijst}{\dolijstelement{#1}}}
-
-\def\dodoresetlijst#1%
- {\let\geenlijst\empty
- \setvalue{#1\c!tussen}{\gobblefourarguments{#1}}%
- \setvalue{#1\c!lijst}{\gobblesixarguments{#1}}}
-
-\let\geenlijst\empty
-
-\def\dodefinieerlijst[#1][#2][#3]%
- {\presetlocalframed[\??li#1]%
- \getparameters
- [\??li#1]
- [\c!hoogte=\v!ruim,
- \c!diepte=\v!ruim,
- \c!offset=0.25em,
- \c!maxbreedte=,
- \c!status=\v!start,
- \c!koppeling=\v!uit,
- \c!criterium=\v!lokaal,
- \c!breedte=3em,
- \c!variant=\c!b,
- \c!letter=\v!normaal,
- \c!tekstletter=\getvalue{\??li#1\c!letter},
- \c!nummerletter=\getvalue{\??li#1\c!letter},
- \c!paginaletter=\getvalue{\??li#1\c!letter},
- \c!kleur=,
- \c!tekstkleur=\getvalue{\??li#1\c!kleur},
- \c!nummerkleur=\getvalue{\??li#1\c!kleur},
- \c!paginakleur=\getvalue{\??li#1\c!kleur},
- \c!nummercommando=\lijstnummercommando,
- \c!tekstcommando=\lijsttekstcommando,
- \c!paginacommando=\lijstpaginacommando,
- \c!paginanummer=\v!ja,
- \c!paginaovergangen=,
- \c!marge=\!!zeropoint,
- \c!titeluitlijnen=,
- \c!voor=,
- \c!na=,
- \c!tussen=,
- \c!symbool=,
- \c!interactie=\v!sectienummer,
- \v!deel\v!nummer=\v!ja, % nodig ? % v
- \c!label=\v!nee,
- \c!afstand=\!!zeropoint,
- \c!scheider=]%
- \ConvertToConstant\doifinstringelse{=}{#2}
- {\getparameters[\??li#1][#2]}
- {\ConvertToConstant\doifnot{#2}{}
- {\copyparameters
- [\??li#1][\??li#2]
- [\c!status,\c!breedte,\c!variant,\c!letter,\c!kleur,
- \c!tekstletter,\c!tekstkleur,\c!tekstcommando,
- \c!paginaletter,\c!paginacommando,\c!paginakleur,
- \c!nummerletter,\c!nummerkleur,\c!nummercommando,
- \c!paginanummer,\c!paginaovergangen,\c!marge,\c!symbool,
- \c!titeluitlijnen,\c!voor,\c!na,\c!tussen,\v!deel\c!nummer,\c!label]%
- \getparameters[\??li#1][#3]}}%
- \addutilityreset{#1}%
- \setvalue{\s!set#1}%
- {\dodosetlijst{#1}}%
- \setvalue{\s!reset#1}%
- {\dodoresetlijst{#1}}}
-
-\def\definieerlijst%
- {\dotripleempty\dodefinieerlijst}
-
-\def\iflijstgeplaatst{\ifutilitydone}
-
-\def\dobeginoflist%
- {\begingroup
- \startopelkaar[\v!blanko]}
-
-\def\doendoflist%
- {\stopopelkaar
- \endgroup}
-
-\def\doplaatslijst[#1][#2]%
- {\dobeginoflist
- \dogetcommalistelement1\from#1\to\firstlistelement
- \dostellijstin[#1][#2]%
- \doifvalue{\??li\firstlistelement\c!koppeling}{\v!aan}
- {\startlistreferences{#1}}%
- \dosettoclevel{\getvalue{\??li\firstlistelement\c!criterium}}%
- \doutilities{#1}{\jobname}{#1}{}{\par}%
- \stoplistreferences{#1}%
- \doendoflist}
-
-\def\plaatslijst%
- {\dodoubleempty\doplaatslijst}
-
-\def\dodovolledigelijst[#1][#2][#3]% enkelvoud, meervoud, instellingen
- {\systemsuppliedtitle[#2]{\headtext{#2}}
- \doplaatslijst[#1][#3]}
-
-\def\dovolledigelijst[#1][#2]%
- {\dodovolledigelijst[#1][#1][#2]}
-
-\def\volledigelijst%
- {\dodoubleempty\dovolledigelijst}
-
-\def\lijstelementen {} % bevat lijst met paginaovergangen
-\def\lijstnummercommando #1{#1} % geen strut i.v.m. intractieve versie
-\def\lijsttekstcommando #1{\begstrut#1\endstrut}
-\def\lijstpaginacommando #1{\strut#1}
-
-\def\doassigndimen#1#2#3%
- {\doifinsetelse{#2}{\v!passend,\v!ruim}
- {#1=#3\relax}
- {#1=#2\relax}}
-
-\def\dosetlistsymbol#1#2%
- {\processaction
- [\getvalue{\??li#1\c!symbool}]
- [ \v!geen=>\def\listsymbol%
- {\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
- \hbox to \dimen0{}},
- 1=>\def\listsymbol%
- {\strut$\bullet$},
- 2=>\def\listsymbol%
- {\vrule\!!width1em\!!height1ex\!!depth\!!zeropoint},
- 3=>\def\listsymbol% very slow
- {{\doassigndimen{\dimen0}{\getvalue{\??li#1\c!breedte}}{1.5em}%
- \doassigndimen{\dimen2}{\getvalue{\??li#1\c!hoogte}}{1ex}%
- \doassigndimen{\dimen4}{\getvalue{\??li#1\c!diepte}}{0pt}%
- \vrule\!!width\dimen0\!!height\dimen2\!!depth\dimen4}},
- \s!unknown=>\def\listsymbol{\getvalue{\??li#1\c!symbool}},
- \s!default=>\doifelsevalue{\??li#1\c!prefix}{\v!nee}
- {\aftersplitstring#2\at.\to\splitlistsymbol}
- {\def\splitlistsymbol{#2}}% geen \edef ivm enz
- \def\listsymbol% kan iets efficienter met \ifdone
- {\doifvalue{\??li#1\c!label}{\v!ja}{\leftlabeltext{#1}}%
- \strut\splitlistsymbol\getvalue{\??li#1\c!scheider}%
- \doifvalue{\??li#1\c!label}{\v!ja}{\rightlabeltext{#1}}}]}
-
-\def\dosomelijstelement#1#2#3{#1 #2 \translatednumber[#3]}
-
-\def\dodolijstelementa{\let\dosomelijstelement\dodofixdlijstelementABC}
-\def\dodolijstelementb{\let\dosomelijstelement\dodofixdlijstelementABC}
-\def\dodolijstelementc{\let\dosomelijstelement\dodofixdlijstelementABC}
-\def\dodolijstelementd{\let\dosomelijstelement\dodofixdlijstelementD}
-\def\dodolijstelemente{\let\dosomelijstelement\dodofixdlijstelementE}
-\def\dodolijstelementf{\let\dosomelijstelement\dodofixdlijstelementF}
-\def\dodolijstelementg{\let\dosomelijstelement\dodofixdlijstelementG}
-
-\setvalue{dodolijstelement\v!geen}%
- {\def\dosomelijstelement{\dodofreevlijstelement}}
-
-\setvalue{dodolijstelement\v!vertikaal}%
- {\def\dosomelijstelement{\dodofreevlijstelement}}
-
-\setvalue{dodolijstelement\v!horizontaal}%
- {\def\dosomelijstelement{\dodofreehlijstelement}}
-
-\setvalue{dodolijstelement\v!commando}%
- {\let\dosomelijstelement\dodocommandlijstelement}
-
-% Here I learned something new: \leftskip can be changed
-% within a paragraph and the last one counts. Therefore we
-% cannot use \bgroup's! The placement of the \leftskip
-% assignment and the \endgraf's may not be changed. We have to
-% end the preceding paragraph before changing \leftskip. This is
-% because every listelement sets the \leftskip.
-
-% \strippedcsname\dodolijstelement
-
-\def\newlineinlist{\space}
-
-\def\dolijstelement#1#2#3#4#5#6% pas op: wordt ook elders gedefinieerd
- {\doiftoclevelelse[#5]
- {\getvalue{dodolijstelement\getvalue{\??li#1\c!variant}}%
- %\showcomposition
- \let\@@iabreedte=\!!zeropoint % moet boolean worden
- \bgroup
- \edef\lijstelementen%
- {\getvalue{\??li#1\c!paginaovergangen}}%
- \ExpandSecondAfter\doifinset{#3}{\lijstelementen}%
- {\showmessage{\m!systems}{14}{#3}%
- \pagina}%
- \egroup
- \mindermeldingen
- \dosetlistsymbol{#1}{#3}%
- \dosomelijstelement{#1}{#2}{#3}{#4}{#5}{#6}%
- \global\utilitydonetrue}
- {}}
-
-\def\dolistattributes#1#2#3%
- {\doifvaluesomething{\??li#1#3}
- {\setupinteraction[\c!kleur=,\c!contrastkleur=]}%
- \doattributes{\??li#1}{#2}{#3}}
-
-\def\dodocommandlijstelement#1#2#3#4#5#6%
- {\doifdefinedelse{\??li#1\c!commando}
- {\getvalue{\??li#1\c!commando}
- {#3}{#4}{\paginaprefix\??li#1[#5]\translatednumber[#5]}}
- {[#1: #3 - #4 - \paginaprefix\??li#1[#5]\translatednumber[#5]]}}
-
-\def\dodofreelijstelement#1#2#3#4#5#6#7#8%
- {\def\makelijstelement##1##2%
- {\hbox
- {\doifelsevalue{\??li#1\c!interactie}{##1}
- {\setbox0=\hbox{\showcontrastlocation{\??ia}{#6}{##2}}%
- \linklisttoelement{#1}{#2}{#5}{#6}{\box0}}%{\copy0}}%
- {##2}}}%
- \getvalue{\??li#1\c!voor}% can be \hskip
- \doifdefinedelse{\??li#1\c!commando}
- {\makelijstelement{\getvalue{\??li#1\c!interactie}}% this forces all
- {\getvalue{\??li#1\c!commando}%
- {#3}% geen conversies etc
- {#4}% geen conversies etc
- {\paginaprefix\??li#1[#5]%
- \translatednumber[#5]}}}
- {#7%
- \vbox
- {\forgetall
- \makelijstelement\v!alles
- {\makelijstelement\v!sectienummer
- {\dolistattributes{#1}\c!nummerletter\c!nummerkleur
- {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}}%
- \makelijstelement\v!tekst
- {\dolistattributes{#1}\c!tekstletter\c!tekstkleur
- {\let\\=\newlineinlist
- \dontconvertfont
- \getvalue{\??li#1\c!tekstcommando}{#4}}}%
- \doifvalue{\??li#1\c!paginanummer}{\v!ja}
- {\doifsomething{#5}
- {\makelijstelement\v!paginanummer
- {\dolistattributes{#1}\c!paginaletter\c!paginakleur
- {\getvalue{\??li#1\c!paginacommando}
- {\paginaprefix\??li#1[#5]%
- \translatednumber[#5]}}}}}}}%
- #8}%
- \getvalue{\??li#1\c!na}}
-
-\def\dodofreehlijstelement#1#2#3#4#5#6%
- {\dodofreelijstelement{#1}{#2}{#3}{#4}{#5}{#6}
- {\noindent}{}}
-
-\def\dodofreevlijstelement#1#2#3#4#5#6% % \nointerlineskip nodig,
- {\dodofreelijstelement{#1}{#2}{#3}{#4}{#5}{#6} % anders verkeerde spatiering
- {\ifvmode\nointerlineskip\fi} % bij multi-line lijsten
- {\nointerlineskip\endgraf\allowbreak}} %
-
-\def\dodofixdlijstelementABC#1#2#3#4#5#6% weeden
- {\endgraf
- \leftskip=\getvalue{\??li#1\c!marge}% na de \endgraf !
- \getvalue{\??li#1\c!voor}%
- \doifelsevalue{\??li#1\c!breedte}{\v!passend}
- {\!!widtha=\!!zeropoint}
- {\doifelsenothing{#3}
- {\doifelsevalue{\??li#1\c!titeluitlijnen}{\v!ja}
- {\!!widtha=\!!zeropoint}
- {\!!widtha=\getvalue{\??li#1\c!breedte}}}
- {\!!widtha=\getvalue{\??li#1\c!breedte}}}%
- \getvalue{\??li\c!variant\getvalue{\??li#1\c!variant}}%
- \endgraf
- \def\makelijstelement##1##2%
- {\doifelsevalue{\??li#1\c!interactie}{##1}
- {\setbox0=\hbox{\showcontrastlocation{\??ia}{#6}{##2}}%
- \linklisttoelement{#1}{#2}{#5}{#6}{\box0}}%{\copy0}}%
- {\hbox{##2}}}%
- \doifvalue{\??li#1\c!interactie}{\v!tekst} % not supported
- {\doassign[\??li#1][\c!interactie=\v!alles]}%
- \makelijstelement\v!alles
- {\hbox to \hsize
- {\!!widthb=\hsize
- \setbox2=\hbox \ifdim\!!widtha>\!!zeropoint to \!!widtha \fi
- {\makelijstelement\v!sectienummer
- {\dolistattributes{#1}\c!nummerletter\c!nummerkleur
- {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}%
- \hfill}}%
- \setbox4=\hbox
- {\doifvalue{\??li#1\c!paginanummer}{\v!ja}
- {\doifsomething{#5} % \lijstwidth is new ; temp hack
- {\hbox \ifdim\lijstwidth>\!!zeropoint to \lijstwidth\fi
- {\hfill
- \makelijstelement\v!paginanummer
- {\dolistattributes{#1}\c!paginaletter\c!paginakleur
- {\getvalue{\??li#1\c!paginacommando}
- {\paginaprefix\??li#1[#5]%
- \translatednumber[#5]}}}}}}}%
- \vbox
- {\hsize\!!widthb
- \ifdim\!!widtha<\hsize
- \hangindent=\wd2
- \dimen2=\getvalue{\??li#1\c!afstand}%
- \advance\hangindent by \dimen2
- \hangafter=1
- \ifvoid4
- % we kunnen gewoon afbreken aan het eind
- \else
- \ifdim\lijstskip>\!!zeropoint\relax
- \rightskip=\lijstskip\!!plus10em\relax
- \parfillskip=-\rightskip
- \fi
- \fi
- \else
- \dimen2=\!!zeropoint
- \fi
- \parindent=\!!zeropoint\relax
- \leavevmode
- \box2\relax
- \hskip\dimen2
- \bgroup
- \dolistattributes{#1}\c!tekstletter\c!tekstkleur
- {\let\\=\newlineinlist
- \dontconvertfont
- \getvalue{\??li#1\c!tekstcommando}{#4}}%
- \egroup
- \ifvoid4
- \ifdim\!!widtha<\hsize
- \hfill\strut
- \fi
- \else
- \nobreak\hskip.5em\lijstfill
- \box4\relax
- \relax
- \fi}%
- \hss}}%
- \nointerlineskip % anders verkeerde spatiering bij multi-line
- \endgraf
- \allowbreak
- \getvalue{\??li#1\c!na}}
-
-% overrulen interactie kan sneller, bv door hulpconstanten
-% te gebruiken en die te letten
-
-\def\dodofixdlijstelementD#1#2#3#4#5#6%
- {%\leftskip=\getvalue{\??li#1\c!marge}%
-\ifvmode
- \advance\leftskip\getvalue{\??li#1\c!marge}% AANGEPAST
-\fi
- \bgroup
- \ifvmode
- \noindent\leavevmode
- \fi
- \doifvalue{\??li#1\c!interactie}{\v!tekst} % not supported
- {\doassign[\??li#1][\c!interactie=\v!sectienummer]}%
- \doifvalue{\??li#1\c!interactie}{\v!alles} % not supported
- {\doassign[\??li#1][\c!interactie=\v!sectienummer]}%
- \def\makelijstelement##1##2%
- {\doifelsevalue{\??li#1\c!interactie}{##1}
- {\setbox0=\hbox{\showcontrastlocation{\??ia}{#6}{##2}}%
- \linklisttoelement{#1}{#2}{#5}{#6}{\box0}}%{\copy0}}%
- {\hbox{##2}}}%
- \setbox4=\hbox
- {\doifvalue{\??li#1\c!paginanummer}{\v!ja}
- {\doifsomething{#5}
- {\makelijstelement\v!paginanummer
- {\dolistattributes{#1}\c!paginaletter\c!paginakleur
- {\getvalue{\??li#1\c!paginacommando}
- {\paginaprefix\??li#1[#5]%
- \translatednumber[#5]}}}}}}%
- \hbox
- {\getvalue{\??li#1\c!links}%
- \makelijstelement\v!sectienummer
- {\dolistattributes{#1}\c!nummerletter\c!nummerkleur
- {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}}%
- \getvalue{\??li#1\c!rechts}%
- \hskip.5em}%
- \nobreak
- \tolerance3500 % niet zomaar veranderen
- \dolistattributes{#1}\c!tekstletter\c!tekstkleur
- {\let\\=\newlineinlist
- \dontconvertfont
- \getvalue{\??li#1\c!tekstcommando}{#4}}%
- \ifvoid4\else
- \nobreak
- \hskip.75em\relax
- \nobreak
- \box4
- \fi
- \dimen0=\getvalue{\??li#1\c!afstand}\relax
- \ifdim\dimen0<1em\relax
- \hskip1em\!!plus1em\!!minus.25em\relax
- \else
- \hskip\dimen0\!!plus.5\dimen0\!!minus.25\dimen0\relax
- \fi
- \egroup}
-
-\def\dodofixdlijstelementE#1%
- {\dodofixdlijstelementEFG
- {\setupinteraction[\c!strut=\v!nee]}
- {\localframed[\??li#1][\c!diepte=\!!zeropoint,\c!kleur=]}
- {#1}}
-
-\def\dodofixdlijstelementF#1%
- {\dodofixdlijstelementEFG
- {}
- {\dosetraggedhbox{\getvalue{\??li#1\c!uitlijnen}}\raggedbox}
- {#1}}
-
-\def\dodofixdlijstelementG#1%
- {\dodofixdlijstelementEFG
- {}
- \regelmidden
- {#1}}
-
-\def\dodofixdlijstelementEFG#1#2#3#4#5#6#7#8%
- {\noindent
- \hbox
- {#1% in case E nils the strut
- \let\\=\newlineinlist
- \setbox0=\hbox
- {#2{\showcontrastlocation{\??ia}{#8}
- {\dostartattributes{\??li#3}\c!letter\c!kleur{}%
- \ignorespaces\dontconvertfont\setstrut
- \begstrut
- \doifelsenothing{\??li#3\c!maxbreedte}
- {\getvalue{\??li#3\c!tekstcommando}{#6}}
- {\getvalue{\??li#3\c!tekstcommando}{\limitatetext{#6}{\getvalue{\??li#3\c!maxbreedte}}{\unknown}}}%
- \endstrut % struts new
- \dostopattributes}}}%
- \linklisttoelement{#3}{#4}{#7}{#8}{\box0}}%{\copy0}}%
- \par
- \getvalue{\??li#3\c!tussen}}
-
-\def\strippedlistentry[#1::#2::#3]{#1::#2}%
-
-\def\linklisttoelement#1#2#3#4#5% % list location format page data
- {\ifautocrossdocument
- \gotodestination{}{}{#1::\strippedlistentry[#3]}{#4}{#5}%
- \else
- \gotonextinternal{#1}{#2}{#4}{#5}%
- \fi}
-
-\def\schrijfnaarlijst[#1]#2#3%
- {\doifsomething{#1}
- {\convertargument#2\to\firstlistelement
- \@EA\doschrijfnaarlijst\@EA{#1}{\firstlistelement}{#3}{\v!kop}}}
-
-\def\dotussenlijst#1#2#3#4% pas op: wordt ook elders gedefinieerd
- {\doiftoclevelelse[#3]
- {#2}
- {}}
-
-\def\schrijftussenlijst[#1]#2%
- {\@EA\doschrijftussenlijst\@EA{#1}{#2}} % #2 weg en \expanded
-
-% NOG ENGELS MAKEN
-
-\def\lijstlengte {\utilitylistlength}
-\def\lijstbreedte {\utilitylistwidth}
-\def\lijsthoogte {\utilitylistheight}
-
-\def\utilitylistlength {0}
-\def\utilitylistwidth {0pt}
-\def\utilitylistheight {0pt}
-
-\def\dobepaallijstkenmerken[#1][#2]%
- {\begingroup
- \doglobal\newcounter\utilitylistlength
- \def\dolijstelement##1##2##3##4##5##6%
- {\doiftoclevelelse[##5]
- {\doglobal\increment\utilitylistlength
- \hbox
- {\doattributes
- {\??li##1}\c!tekstletter\c!tekstkleur
- {\let\\=\newlineinlist
- \dontconvertfont
- \getvalue{\??li##1\c!tekstcommando}{##4}}}%
- \global\utilitydonetrue}
- {}}%
- \dostellijstin[#1][#2]%
- \dogetcommalistelement1\from#1\to\commalistelement
- \dosettoclevel{\getvalue{\??li\commalistelement\c!criterium}}%
- \setbox0=\vbox
- {\doutilities{#1}{\jobname}{#1}{}{\par}}%
- \xdef\utilitylistheight {\the\ht0}%
- \xdef\utilitylistwidth {\the\wd0}%
- \endgroup
- \iflijstgeplaatst\enablemode[\e!lijst]\else\disablemode[\e!lijst]\fi}
-
-\def\bepaallijstkenmerken%
- {\dodoubleempty\dobepaallijstkenmerken}
-
-% \definieerreferentielijst
-% [externalfigure]
-% [commando=\toongrootfiguur,
-% voor=\pagina,
-% na=\pagina]
-%
-% \definieerreferentielijst
-% [externaltable]
-% [commando=\toongrotetabel,
-% voor=\pagina,
-% na=\pagina]
-%
-% \def\toongrootfiguur#1%
-% {\externfiguur[#1][kader=aan,factor=max]}
-%
-% \def\toongrotetabel#1%
-% {\switchtobodyfont[12pt]\haalbuffer[#1]}
-%
-% \schrijfnaarreferentielijst[externalfigure]{koe}{\externfiguur[koe][breedte=3cm,kader=aan]}
-% \schrijfnaarreferentielijst[externalfigure]{paard}{\externfiguur[paard][breedte=3cm,kader=aan]}
-%
-% \startbuffer[kanweg]
-% \starttabel[|||]
-% \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
-% \stoptabel
-% \stopbuffer
-%
-% \schrijfnaarreferentielijst[externaltable]{kanweg}{\switchtbodyfont[5pt]\haalbuffer[kanweg]}
-%
-% \plaatsreferentielijst
-% [externalfigure,externaltable]
-
-% algemeen
-
-\def\referentiebutton#1[#2]%
- {\hbox\bgroup % the \hbox is needed to bypass
- \let\referenceprefix=\empty % \dontleavehmode in \naarbox
- \setupinteraction[\c!kleur=,\c!contrastkleur=,\c!strut=]%
- \setupreferencing[\c!prefix=]%
- \naarbox{\hbox{\ignorespaces#1}}[#2]%
- \egroup}
-
-\newcounter\referencecounter
-
-\def\doreferentielijstelement#1#2#3#4#5%
- {\doiftoclevelelse[#4]
- {\getvalue{\??rl#1\c!voor}%
- \referentiebutton
- {\getvalue{\??rl#1\c!commando}{#3}\pagereference[\r!to#2]}%
- [\r!from#2]%
- \global\utilitydonetrue
- \getvalue{\??rl#1\c!na}}
- {}}
-
-\def\doplaatsreferentielijst[#1][#2]%
- {\begingroup
-% \let\doschrijfnaarreferentielijst=\gobblethreearguments
- \stelreferentielijstin[#1][#2,\c!status=\v!stop]%
- \dogetcommalistelement1\from#1\to\commalistelement
- \dosettoclevel{\getvalue{\??rl\commalistelement\c!criterium}}%
- \doutilities{#1}{\jobname}{#1}{}{\par}%
- \endgroup}
-
-\def\plaatsreferentielijst%
- {\dodoubleempty\doplaatsreferentielijst}
-
-\def\doschrijfnaarreferentielijst#1#2#3%
- {\doifvalue{\??rl#1\c!status}{\v!start}
- {\begingroup
- \makesectionformat
- \doifelse{\@@nmstatus}{\v!start}
- {\def\dopaginanummer{\noexpand\pagenumber}}
- {\def\dopaginanummer{0}}%
- \edef\schrijfwegnaarlijst%
- {\writeutilitycommand%
- {\referencelistentry%
- {#1}% tag
- {#2}% number
- {#3}% data
- {\sectionformat::\dopaginanummer}%
- {\noexpand\realfolio}}}%
- \schrijfwegnaarlijst
- \endgroup}}
-
-%\def\schrijfnaarreferentielijst[#1]#2#3% #1=class #2=data #3=visualization
-% {\doifelsevalue{\??rl#1\c!status}{\v!start}
-% {\doglobal\increment\referencecounter
-% \referentiebutton
-% {#3%
-% \pagereference[\r!from\referencecounter]%
-% \doschrijfnaarreferentielijst{#1}{\referencecounter}{#2}}%
-% [\r!to\referencecounter]}
-% {#3}}
-
-\def\schrijfnaarreferentielijst[#1]#2% #1=class #2=data #3=visualization
- {\dowithnextbox
- {\doifelsevalue{\??rl#1\c!status}{\v!start}
- {\doglobal\increment\referencecounter % must be resolved due to #2
- \referentiebutton
- {\box\nextbox
- \pagereference[\r!from\referencecounter]%
- \doschrijfnaarreferentielijst{#1}{\referencecounter}{#2}}%
- [\r!to\referencecounter]}
- {\box\nextbox}}
- \hbox} % \vbox ?
-
-\def\referencelistentry#1%
- {\executeifdefined{#1\c!lijst}\gobblefourarguments}
-
-\def\dodosetreferentielijst#1%
- {\setvalue{#1\c!lijst}{\doreferentielijstelement{#1}}}
-
-\def\dodoresetreferentielijst#1%
- {\setvalue{#1\c!lijst}{\gobblefourarguments}}
-
-\def\dodefinieerreferentielijst[#1][#2]%
- {\stelreferentielijstin[#1]
- [\c!commando=,
- \c!status=\v!start,
- \c!criterium=\v!alles,
- \c!voor=,
- \c!na=,
- #2]
- \setcounter{#1}{0}%
- \addutilityreset{#1}%
- \setvalue{\s!set#1}%
- {\dodosetreferentielijst{#1}}%
- \setvalue{\s!reset#1}%
- {\dodoresetreferentielijst{#1}}}
-
-\def\definieerreferentielijst%
- {\dodoubleempty\dodefinieerreferentielijst}
-
-\def\dostelreferentielijstin[#1][#2]%
- {\getparameters[\??rl#1][#2]}
-
-\def\stelreferentielijstin%
- {\dodoubleempty\dostelreferentielijstin}
-
-%I n=Inhoudsopgave
-%I c=\volledigeinhoud,\plaatsinhoud
-%I c=\stelinhoudin
-%I
-%I Er kan een inhoudsopgave worden opgeroepen met:
-%I
-%I \plaatsinhoud
-%I \volledigeinhoud
-%I
-%I De wijze waarop de inhoudsopgave wordt aangemaakt wordt
-%I ingesteld met:
-%I
-%I \stelinhoudin[instellingen]
-%I
-%I De instellingen komen overeen met de van lijsten.
-%P
-%I Een inhoudsopgave is een zogenaamde samengestelde lijst.
-%I Op termijn komt het mechanisme van samengestelde lijsten
-%I ook voor de gebruiker beschikbaar. Vooralsnog werkt het
-%I achter de schermen.
-%I
-%I De commando's zijn slim genoeg om meestal automatisch de
-%I juiste lijsten te genereren. Men kan echter met 'criterium'
-%I het niveau specificeren. Met 'niveau' geeft men aan tot welk
-%I niveau de inhoudsopgave moet worden weergegeven.
-
-\def\dostelsamengesteldelijstin[#1][#2]%
- {\getparameters[\??ih#1][#2]%
- \ExpandFirstAfter\stellijstin[\getvalue{\??ih#1\c!lijst}][#2]}
-
-\def\stelsamengesteldelijstin%
- {\dodoubleargument\dostelsamengesteldelijstin}
-
-% \def\doplaatssamengesteldelijst[#1][#2]%
-% {\begingroup
-% \getparameters[\??ih#1][#2]%
-% \dosettoclevel{\getvalue{\??ih#1\c!criterium}}%
-% \edef\samengesteldelijst{\getvalue{\??ih#1\c!lijst}}% om voorlopig nog
-% \stripspaces\from\samengesteldelijst\to\samengesteldelijst % compatible te
-% \ExpandFirstAfter\doifnumberelse{\getvalue{\??ih#1\c!niveau}}% blijven
-% {\!!counta=\getvalue{\??ih#1\c!niveau}% met de vorige implementatie
-% \advance\!!counta by 1\relax% accepteren we ook nummers (0==deel)
-% \getfromcommacommand[\samengesteldelijst][\!!counta]%
-% \edef\maximumlijst{\commalistelement}}%
-% {\edef\maximumlijst{\getvalue{\??ih#1\c!niveau}}}%
-% \!!counta=\getvalue{\??se\getvalue{\??ko\maximumlijst \c!sectie}\c!niveau}%
-% \let\!!stringa=\samengesteldelijst
-% \let\samengesteldelijst=\empty
-% \def\docommando##1%
-% {\ifnum\getvalue{\??se\getvalue{\??ko##1\c!sectie}\c!niveau}>\!!counta
-% \else
-% \addtocommalist{##1}\samengesteldelijst
-% \fi}%
-% \processcommacommand[\!!stringa]\docommando
-% \doifvalue{\??ih#1\c!koppeling}{\v!aan}
-% {\startlistreferences{#1}}%
-% \ExpandFirstAfter\dodoplaatssamengesteldelijst[\samengesteldelijst][#2]%
-% \stoplistreferences{#1}%
-% \endgroup}
-
-\def\doplaatssamengesteldelijst[#1][#2]%
- {\begingroup
- \getparameters[\??ih#1][#2]%
- \dosettoclevel{\getvalue{\??ih#1\c!criterium}}%
- \edef\samengesteldelijst{\getvalue{\??ih#1\c!lijst}}%
- \stripspaces\from\samengesteldelijst\to\samengesteldelijst
- \doifelsevalue{\??ih#1\c!niveau}{\v!huidige} % criterium=vorige,niveau=huidige
- {\!!counta=0\@@koniveau} % hm: \@@koniveau
- {\ExpandFirstAfter\doifnumberelse{\getvalue{\??ih#1\c!niveau}}% in verband
- {\!!counta=\getvalue{\??ih#1\c!niveau}% met de vorige implementatie
- \advance\!!counta by 1 % accepteren we ook nummers (0==deel)
- \getfromcommacommand[\samengesteldelijst][\!!counta]%
- \edef\maximumlijst{\commalistelement}}%
- {\edef\maximumlijst{\getvalue{\??ih#1\c!niveau}}}%
- \!!counta=\getvalue{\??se\getvalue{\??ko\maximumlijst\c!sectie}\c!niveau}}%
- \let\!!stringa=\samengesteldelijst
- \let\samengesteldelijst=\empty
- \def\docommando##1%
- {\ifnum\getvalue{\??se\getvalue{\??ko##1\c!sectie}\c!niveau}>\!!counta
- \else
- \addtocommalist{##1}\samengesteldelijst
- \fi}%
- \processcommacommand[\!!stringa]\docommando
- \doifvalue{\??ih#1\c!koppeling}{\v!aan}
- {\startlistreferences{#1}}%
- \ExpandFirstAfter\dodoplaatssamengesteldelijst[\samengesteldelijst][#2]%
- \stoplistreferences{#1}%
- \endgroup}
-
-\def\dodoplaatssamengesteldelijst[#1][#2]%
- {\dobeginoflist
- \dostellijstin[#1][#2]%
- \doutilities{#1}{\jobname}{#1}{}{\par}%
- \doendoflist}
-
-\def\dovolledigesamengesteldelijst[#1][#2]%
- {\systemsuppliedtitle[#1]{\headtext{#1}}%
- \doplaatssamengesteldelijst[#1][#2]}
-
-\def\dodefinieersamengesteldelijst[#1][#2][#3]%
- {\setvalue{\??ih#1\c!lijst}{#2}%
- \getcommalistsize[#2]%
- \getfromcommalist[#2][\commalistsize]%
- \doeassign[\??ih#1][\c!niveau=\commalistelement]%
- \getparameters
- [\??ih#1]
- [\c!criterium=\v!lokaal,
- #3]%
- \setvalue{\e!stel#1\e!in}%
- {\dodoubleempty\dostelsamengesteldelijstin[#1]}%
- \setvalue{\e!plaats#1}%
- {\dodoubleempty\doplaatssamengesteldelijst[#1]}%
- \setvalue{\e!volledige#1}%
- {\dodoubleempty\dovolledigesamengesteldelijst[#1]}}
-
-\def\definieersamengesteldelijst%
- {\dotripleempty\dodefinieersamengesteldelijst}
-
-\def\plaatssamengesteldelijst%
- {\dodoubleempty\doplaatssamengesteldelijst}
-
-%I n=Synoniemen
-%I c=\definieersynoniemen,\stelsynoniemenin
-%I
-%I Er kunnen meerdere lijsten worden gedefinieerd door middel
-%I van het commando:
-%I
-%I \definieersynoniemen[naam][namen][commando]
-%I
-%I Na dit commando zijn de volgende commando's beschikbaar:
-%I
-%I \naam{tekst}{synoniem}
-%I \commando{tekst}
-%I \volledigelijstmetnamen
-%I \plaatslijstmetnamen
-%P
-%I De commando's rond de lijst met afkortingen zijn gedefinieerd
-%I met de waarden: [afkorting][afkortingen][\voluit]. Beschikbare
-%I commando's zijn dus:
-%I
-%I \afkorting{afkorting}{betekenis}
-%I \voluit{afkorting}
-%I \volledigelijstmetafkortingen
-%I \plaatslijstmetafkortingen
-%I
-%I De betekenis kan worden opgeroepen met \voluit{afkorting}.
-%P
-%I De wijze van zetten kan worden ingesteld met het commando:
-%I
-%I \stelsynoniemenin[naam][synoniemletter=,tekstletter=,
-%I status=,plaats=,breedte=,criterium=,conversie=,
-%I expansie=]
-%I
-%I Als de status 'stop' is, dan worden geen synoniemen naar
-%I de lijst weggeschreven. Als het criterium 'alles' is,
-%I dan worden alle synoniemen in het overzicht opgenomen, zoniet,
-%I dan worden alleen gebruikte synoniemen opgenomen. Omdat
-%I standaard 'conversie' op 'nee' staat, worden afkortingen
-%I getoond.
-%P
-%I In principe is een synoniem pas beschikbaar als het is
-%I gedefinieerd. Het is echter mogelijk synoniemen te laden,
-%I mits de tekst tenminste eenmaal is verwerkt. Het is dus
-%I mogelijk synoniemen op te roepen die pas later worden
-%I gedefinieerd. Alleen de omschrijvingen zijn beschikbaar,
-%I dus niet de commando's (doordenkertje). Het laden vindt
-%I plaats met:
-%I
-%I \laadnamen
-%I
-%I of, zoals bij afkortingen:
-%I
-%I \laadafkortingen
-
-% 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
-
-\def\dostelsynoniemenin[#1][#2]%
- {\getparameters[\??sm#1][#2]}
-
-\def\stelsynoniemenin%
- {\dodoubleargument\dostelsynoniemenin}
-
-\def\doresetsynonym#1%
- {\letvalue{#1\s!entry}=\gobblethreearguments}
-
-\def\dohandlesynonymentry#1#2#3#4%
- {\bgroup
- \global\utilitydonetrue
- \syndef
- {\doattributes{\??sm#1}\c!tekstletter\c!tekstkleur{#3}}
- \ConvertToConstant\doifelse{#4}{}{\unknown}{#4}\par
- \egroup}
-
-\def\synonymentry#1%
- {\executeifdefined{#1\s!entry}\gobblethreearguments}
-
-\def\dosetsynonym#1%
- {\doifdefinedelse{\??sm#1\c!commando}
- {\setvalue{#1\s!entry}{\getvalue{\??sm#1\c!commando}}} % 3 argumenten
- {\setvalue{#1\s!entry}{\dohandlesynonymentry{#1}}}}
-
-\def\doplaatslijstmetsynoniemen#1#2%
- {\witruimte
- \begingroup
- \def\currentsynonym{#1}%
-% \def\synplaats{\getvalue{\??sm#1\c!plaats}}%
-% \def\synbreedte{\getvalue{\??sm#1\c!breedte}}%
-% \def\synmonster{\getvalue{\??sm#1\c!monster}}%
-%
- \doordefinieren % nog eens een class van maken, net als framed
- [syndef]
- [\c!plaats=\getvalue{\??sm#1\c!plaats},
- \c!breedte=\getvalue{\??sm#1\c!breedte},
- \c!afstand=\getvalue{\??sm#1\c!afstand},
- \c!monster=\getvalue{\??sm#1\c!monster},
- \c!hang=\getvalue{\??sm#1\c!hang},
- \c!uitlijnen=\getvalue{\??sm#1\c!uitlijnen},
- \c!voor=\getvalue{\??sm#1\c!voor},
- \c!tussen=\getvalue{\??sm#1\c!tussen},
- \c!na=\getvalue{\??sm#1\c!na},
- \c!springvolgendein=\getvalue{\??sm#1\c!springvolgendein},
- \c!kopletter=,
- \c!letter=]%
-%
- \stelwitruimtein[\v!geen]%
- \doutilities{#1}{\jobname}{#2}{}{\par}%
- \endgroup
- \ifutilitydone\else\geenwitruimte\fi}
-
-\def\dovolledigelijstmetsynoniemen#1#2%
- {\plaatsvolledig
- {\systemsuppliedchapter}{#1}{\headtext{#2}}%
- {\doplaatslijstmetsynoniemen{#1}{#2}}}
-
-\def\processsynonym#1#2#3%
- {\begingroup % anders in mathmode lege \hbox, zie eenheden
- \ifsynonymmeaning
- \doattributes{\??sm#1}\c!synoniemletter\c!synoniemkleur
- {\synonymmeaningfalse#3}%
- \else
- \explicithmode
- \doattributes{\??sm#1}\c!tekstletter\c!tekstkleur{#2}%
- \fi
- \endgroup}
-
-%\def\getsynonymmeaning#1#2#3%
-% {\doifdefinedelse{#2#3}
-% {{\synonymmeaningtrue\getvalue{#2#3}}}
-% {{\showmessage{\m!systems}{18}{#1,#3}}}
-
-\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
- \convertexpanded{\??sm#1}{#3}\asciisynonym
- \convertexpanded{\??sm#1}{#4}\asciimeaning
- \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {\asciimeaning}}%
- \endgroup}
-
-\def\preexecutesynonym#1#2#3#4%
- {\ifdoinpututilities \else
- \dowritesynonym{#1}{#2}{#3}{#4}%
- \unexpanded\setgvalue{#2}{\processsynonym{#1}{#3}{#4}}%
- \fi}
-
-\def\executesynonym#1#2#3#4%
- {\preexecutesynonym{#1}{#2}{#3}{#4}%
- \processsynonym{#1}{#3}{#4}}
-
-\def\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\dolaadsynoniemen#1#2%
- {\bgroup
- \let\dosetsynonym=\doloadsynonym
- \showmessage{\m!systems}{19}{#2}%
- \doutilities{#1}{\jobname}{}{}{}%
- \egroup
- \setvalue{\s!check#1}##1{}}
-
-\def\dodocomplexsynonym[#1][#2]#3#4%
- {\doifsomething{#2}
- {\getvalue{\s!check#1}{#2}%
- \doifelsevalue{\??sm#1\c!conversie}{\v!ja}
- {\unexpanded\setgvalue{#2}{\expandsynonym{#1}{#2}{#3}{#4}}}
- {\doifelsevalue{\??sm#1\c!status}{\v!start}
- {\doifelsevalue{\??sm#1\c!criterium}{\v!alles}
- {\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\dodefinieersynoniemen[#1][#2][#3][#4]%
- {\stelsynoniemenin
- [#1]
- [\c!synoniemletter=,
- \c!tekstletter=,
- \c!status=\v!start,
- \c!criterium=,
- \c!plaats=\v!links,
- \c!breedte=5em,
- \c!afstand=0pt,
- \c!monster=,
- \c!hang=,
- \c!uitlijnen=,
- \c!voor=,
- \c!tussen=,
- \c!na=,
- \c!springvolgendein=\v!nee]%
- \presetheadtext
- [#2=\Word{#2}]%
- \setvalue{\e!stel#2\e!in}%
- {\dodoubleargument\getparameters[\??sm#1]}%
- \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
- \setvalue{\s!set#1}%
- {\dosetsynonym{#1}}%
- \setvalue{\s!reset#1}%
- {\doresetsynonym{#1}}%
- \setvalue{\s!check#1}##1%
- {\checkdefined{synoniemen}{#1}{##1}}%
- \addutilityreset{#1}%
- \setvalue{\e!laad#2}%
- {\dolaadsynoniemen{#1}{#2}}%
- \setvalue{\e!plaats\e!lijstmet#2}%
- {\doplaatslijstmetsynoniemen{#1}{#2}}%
- \setvalue{\e!volledige\e!lijstmet#2}%
- {\dovolledigelijstmetsynoniemen{#1}{#2}}}
-
-\def\definieersynoniemen%
- {\doquadrupleempty\dodefinieersynoniemen}
-
-%I n=Sorteren
-%I c=\definieersorteren,\stelsorterenin
-%I
-%I Sorteren is een vereenvoudigde variant van 'synoniemen':
-%I
-%I \definieersorteren[naam][namen]
-%I
-%I Na dit commando zijn de volgende commando's beschikbaar:
-%I
-%I \naam{tekst}
-%I \volledigelijstmetnamen
-%I \plaatslijstmetnamen
-%P
-%I De wijze van zetten kan worden ingesteld met het commando:
-%I
-%I \stelsorterenin[naam][status=,commando=,voor=,na=,
-%I letter=,criterium=,expansie=]
-%I
-%I Met 'commando' kan met een bewerking uitvoeren op de
-%I onderdelen van een lijst.
-%I
-%I Als de status 'stop' is, dan worden geen sorteringen naar
-%I de lijst weggeschreven. Als het criterium 'alles' is,
-%I dan worden alle sorteringen in het overzicht opgenomen,
-%I zoniet, dan worden alleen gebruikte opgenomen.
-%P
-%I In principe is een item pas beschikbaar als het is
-%I gedefinieerd. Het is echter mogelijk items te laden,
-%I mits de tekst tenminste eenmaal is verwerkt. Het is dus
-%I mogelijk items op te roepen die pas later worden
-%I gedefinieerd.
-%I
-%I \laadnamen
-%I
-%I of, zoals bij logo's:
-%I
-%I \laadlogos
-%I
-%I Bij een eerste run zijn de commando's nog niet
-%I beschikbaar. Een logo kan dus het best worden opgeroepen
-%I met: \naam{...}, bijvoorbeeld \naam{PRAGMA} in plaats van
-%I \PRAGMA.
-
-% 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\dostelsorterenin[#1][#2]%
- {\getparameters[\??so#1][#2]}
-
-\def\stelsorterenin%
- {\dodoubleargument\dostelsorterenin}
-
-\def\doresetsorteren#1%
- {\letvalue{#1\s!entry}=\gobblethreearguments}
-
-\def\dosetsorteren#1%
- {\setvalue{#1\s!entry}##1##2##3%
- {\def\dowritesort####1####2####3{}%
- \global\utilitydonetrue
- \bgroup
- \doifdefinedelse{\??so#1\c!commando}
- {\getvalue{\??so#1\c!commando}{##2}} % 1 argument
- {\getvalue{\??so#1\c!voor}%
- \doattributes{\??so#1}\c!letter\c!kleur{##2}%
- \getvalue{\??so#1\c!na}}%
- \egroup}}
-
-\def\doplaatslijstmetsorteren#1% NOG EEN RUWE VERSIE MAKEN
- {\witruimte % ZONDER WITRUIMTE ETC ETC
- \begingroup
- \stelwitruimtein[\v!geen]%
- \doutilities{#1}{\jobname}{#1}{}{\par}%
- \endgroup
- \ifutilitydone\else\geenwitruimte\fi}
-
-\def\dovolledigelijstmetsorteren#1#2%
- {\plaatsvolledig
- {\systemsuppliedchapter}{#1}{\headtext{#2}}
- {\doplaatslijstmetsorteren{#1}}}
-
-\def\processsort#1#2#3%
- {\explicithmode
- \bgroup
- \doattributes{\??so#1}\c!letter\c!kleur{#2}%
- \egroup}
-
-\def\dowritesort#1#2#3%
- {\bgroup
- \convertexpanded{\??so#1}{#3}\asciisynonym
- \immediatewriteutility{s e {#1} {#2} {\asciisynonym} {}}%
- \egroup}
-
-\def\synonymentry#1%
- {\executeifdefined{#1\s!entry}\gobblethreearguments}
-
-\def\preexecutesort#1#2#3%
- {\ifdoinpututilities \else
- \dowritesort{#1}{#2}{#3}%
- \unexpanded\setgvalue{#2}{\processsort{#1}{#3}{#2}}%
- \fi}
-
-% \def\executesort#1#2#3%
-% {\preexecutesort{#1}{#2}{#3}%
-% \processsort{#1}{#3}{#2}}
-%
-% Better because it catches nested logo's:
-
-\def\executesort#1#2#3%
- {\bgroup
- \def\executesort##1##2##3{##3}% Trick needed for nested logo's.
- \preexecutesort{#1}{#2}{#3}%
- \processsort{#1}{#3}{#2}%
- \egroup}
-
-\def\doloadsort#1%
- {\setvalue{#1\s!entry}##1##2##3%
- {\setgvalue{##1}{##2}%
- \global\utilitydonetrue}}
-
-\def\dolaadsorteren#1#2%
- {\bgroup
- \let\dosetsorteren=\doloadsort
- \showmessage{\m!systems}{20}{#2}%
- \doutilities{#1}{\jobname}{}{}{}%
- \egroup
- \setvalue{\s!check#1}##1{}}
-
-\def\dodocomplexsort[#1][#2]#3%
- {\doifsomething{#2}
- {\getvalue{\s!check#1}{#2}%
- \doifelsevalue{\??so#1\c!status}{\v!start}
- {\doifelsevalue{\??so#1\c!criterium}{\v!alles}
- {\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}
-
-\def\dodefinieersorteren[#1][#2][#3]%
- {\getparameters[\??so#1]
- [%\c!commando=, % we test for defined !
- \c!status=\v!start,
- \c!criterium=,
- \c!letter=,
- \c!voor=,
- \c!na=\endgraf]%
- \presetheadtext[#2=\Word{#2}]%
- \setvalue{\e!stel#2\e!in}[##1]% vervalt tzt
- {\getparameters[\??so#1][##1]}%
- \ifthirdargument
- \def#3##1%
- {\getvalue{\??so:#1:##1}}
- \setvalue{#1}%
- {\dotripleempty\docomplexsort[\??so:#1:][#1]}%
- \else
- \setvalue{#1}%
- {\dotripleempty\docomplexsort[][#1]}%
- \fi
- \setvalue{\s!set#1}%
- {\dosetsorteren{#1}}%
- \setvalue{\s!reset#1}%
- {\doresetsorteren{#1}}%
- \addutilityreset{#1}%
- \setvalue{\e!laad#2}%
- {\dolaadsorteren{#1}{#2}}%
- \setvalue{\s!check#1}##1%
- {\checkdefined{sorteren}{#1}{##1}}%
- \setvalue{\e!plaats\e!lijstmet#2}%
- {\doplaatslijstmetsorteren{#1}}%
- \setvalue{\e!volledige\e!lijstmet#2}%
- {\dovolledigelijstmetsorteren{#1}{#2}}}
-
-\def\definieersorteren%
- {\dotripleempty\dodefinieersorteren}
-
-%I n=Afkortingen
-%I c=\afkorting,\volledigelijstmetafkortingen
-%I
-%I Een afkorting wordt gedefinieerd met:
-%I
-%I \afkorting{afkorting}{betekenis}
-%I
-%I en opgeroepen met:
-%I
-%I \voluit{afkorting}
-%I
-%I Een lijst met afkortingen wordt gegenereerd met:
-%I
-%I \plaatslijstmetafkortingen
-%I \volledigelijstmetafkortingen
-
-%T n=afkorting
-%T m=afk
-%T a=a
-%T
-%T \afkorting {?} {}
-
-%I n=Eenheden
-%I c=\eenheid,\betekenis,\wiskunde
-%I
-%I Een afkorting wordt gedefinieerd met:
-%I
-%I \eenheid [eenheid] {dimensie} {betekenis}
-%I
-%I en opgeroepen met:
-%I
-%I \betekenis {eenheid}
-%I
-%I Een voorbeeld van een definitie is:
-%I
-%I \eenheid [KUUB] {m^3} {inhoud}
-%I
-%I Een lijst met eenheden wordt gegenereerd met:
-%I
-%I \plaatslijstmeteenheden
-%I \volledigelijstmeteenheden
-%P
-%I Aanvullend zijn twee commando's beschikbaar die worden
-%I gebruikt bij het zetten van eenheden:
-%I
-%I \wiskunde{wiskundige commando's}
-%I \dimensie{wiskundige eenheid}
-%I
-%I Het eerste commando maakt $ binnen $ mogelijk, het
-%I laatste commando handelt ook de spatiering af.
-%I
-%I Een teveel aan spatiering kan ongedaan worden voorkomen
-%I met:
-%I
-%I \geendimensie{wiskundige eenheid}
-
-%I n=Buffers
-%I c=\startbuffer,\haalbuffer,\typebuffer
-%I
-%I Een stuk tekst kan in een buffer worden opgeslagen en
-%I later worden opgeroepen. Dit kan de opbouw van de
-%I ruwe ASCII-file ten goede komen.
-%I
-%I \startbuffer[naam]
-%I \stopbuffer
-%I
-%I Een buffer is eigenlijk een tijdelijke file. Deze file
-%I heeft de extensie 'tmp' en overschrijft dus een file met
-%I dezelfde naam!
-%I
-%I Een buffer kan worden opgeroepen met:
-%I
-%I \haalbuffer[naam]
-%I \typebuffer[naam]
-%I
-%I In alle gevallen is de naam optioneel en mag dus worden
-%I weggelaten.
-%P
-%I Voor en na het wegschrijven kunnen commando's worden
-%I uitgevoerd. Deze worden ingesteld met:
-%I
-%I \stelbufferin[voor=,na=]
-%P
-%I Omdat het argument optioneel is, wat moet worden getest,
-%I worden alle spaties tot het eerste woord onderdrukt. Dit
-%I betekent dat als er moet worden getypt (\typebuffer) en
-%I terwijl voor het eerste woord spaties moeten staan, er
-%I bewust wel (!) een naam moet worden opgegeven.
-
-% \EveryPar%
-% {\doglobal\newcounter\NOfLines}
-%
-% \EveryLine%
-% {\doglobal\increment\NOfLines%
-% \hskip-3em%
-% \hbox to 3em{\hss\NOfLines\hskip1em}}
-
-\def\processnextbufferline#1#2#3%
- {\relax % checken waarom eerdere macro dit nodig heeft / supp-mps run
- \convertargument#1 \to\next
- \doifinstringelse{\endofblock}{\next}
- {\ifnum\nestedbufferlevel=0\relax % \relax ?
- \def\next{#2}%
- \else
- \decrement\nestedbufferlevel\relax
- \def\next{#3}%
- \fi}
- {\doifinstringelse{\beginofblock}{\next}
- {\increment\nestedbufferlevel\relax
- \def\next{#3}}
- {\def\next{#3}}}%
- \next}
-
-\def\dodostartbuffer[#1][#2][#3]%
- {\showmessage{\m!systems}{15}{#1}%
- \doifelse{#3}{}
- {\letbeundefined{\e!stop\e!buffer}% % \let\stopbuffer=\relax % \undefined
- \@EA\@EA\@EA\convertargument\@EA\e!start\e!buffer\to\beginofblock % else a space
- \@EA\@EA\@EA\convertargument\@EA\e!stop\e!buffer\to\endofblock
- \let\processnextblockline=\processnextbufferline}
- {\letbeundefined{#3}% \letvalue{#3}=\relax % \undefined
- \@EA\convertargument\csname#2\endcsname\to\beginofblock
- \@EA\convertargument\csname#3\endcsname\to\endofblock}%
- \def\closeblock%
- {\immediate\closeout\tmpblocks
- \egroup
- \getvalue{#3}}%
- \doifelsenothing{#1}
- %{\immediate\openout\tmpblocks=\jobname.\f!temporaryextension}
- %{\immediate\openout\tmpblocks=#1.\f!temporaryextension}%
- %{\immediate\openout\tmpblocks=\bufferprefix\jobname.\f!temporaryextension}
- %{\immediate\openout\tmpblocks=\bufferprefix#1.\f!temporaryextension}%
- {\immediate\openout\tmpblocks=\TEXbufferfile{\jobname}}
- {\immediate\openout\tmpblocks=\TEXbufferfile{#1}}%
- \newcounter\nestedbufferlevel
- \setupcopyblock
- \let\writeoutblocks\gobbleoneargument
- \copyblockline}
-
-\def\dostartbuffer%
- {\bgroup
- \obeylines % nodig, anders gaat 't fout als direct \starttabel (bv)
- \dotripleempty\dodostartbuffer}
-
-\letvalue{\e!start\e!buffer}\dostartbuffer
-
-% \setbuffer[name]#2\endbuffer : saves to file #1.tmp
-
-\def\setbuffer[#1]#2\endbuffer%
- {\immediate\openout\tmpblocks=\TEXbufferfile{#1}%
- \convertargument#2\to\ascii
- \immediate\write\tmpblocks{\ascii}%
- \immediate\closeout\tmpblocks}
-
-\def\dobuffer#1[#2]#3%
- {\def\dodobuffer##1%
- {\showmessage{\m!systems}{#1}{##1}%
- \beginrestorecatcodes
- #3{\TEXbufferfile{##1}}{}{}%
- \endrestorecatcodes}%
- \doifelsenothing{#2}
- {\dodobuffer\jobname}
- {\processcommalist[#2]\dodobuffer}}
-
-\def\haalbuffer%
- {\dodoubleempty\dohaalbuffer}
-
-\def\dohaalbuffer[#1][#2]%
- {\iffirstargument
- \dodohaalbuffer[][#1]%
- \else
- \dodohaalbuffer[#1][#2]%
- \fi}
-
-\def\dodohaalbuffer[#1][#2]%
- {\getvalue{\??bu#1\c!voor}%
- \dobuffer{16}[#2]\readjobfile
- \getvalue{\??bu#1\c!na}}
-
-\def\typebuffer%
- {\dodoubleempty\dotypebuffer}
-
-\def\dotypebuffer[#1][#2]%
- {\iffirstargument
- \dobuffer{17}[#1]\typefile
- \else
- \dobuffer{17}[#2]\typefile
- \fi}
-
-\def\stelbufferin%
- {\dodoubleempty\dostelbufferin}
-
-\def\dostelbufferin[#1][#2]%
- {\ifsecondargument
- \getparameters[\??bu#1][#2]%
- \else
- \getparameters[\??bu][#1]%
- \fi}
-
-\def\dodefinieerbuffer[#1]%
- {\iffirstargument % else problems
- \doglobal\increment\nofdefinedbuffers
- \setevalue{\e!start#1}%
- {\noexpand\dostartbuffer[def-\nofdefinedbuffers][\e!start#1][\e!stop#1]}%
- \setevalue{\e!haal#1}%
- {\noexpand\dodohaalbuffer[#1][def-\nofdefinedbuffers]}%
- \setevalue{\e!type#1}%
- {\noexpand\dodotypebuffer[#1][def-\nofdefinedbuffers]}%
- \fi}
-
-\def\definieerbuffer%
- {\dosingleargument\dodefinieerbuffer}
-
-%I n=Tekstblokken
-%I c=\definieerblok,\verbergblokken,\handhaafblokken
-%I c=\gebruikblokken,\selecteerblokken,\stelblokin
-%I
-%I Het is mogelijk blokken tekst te verbergen en op andere
-%I plaatsen in de tekst op te roepen. Voorbeelden hiervan
-%I zijn vragen en antwoorden. De antwoorden kunnen onder de
-%I vragen worden ingetypt en bijvoorbeeld in een apart
-%I hoofdstuk worden opgenomen.
-%I
-%I Een tekstblok wordt gedefinieerd met het commando
-%I
-%I \definieerblok[naam]
-%I
-%I en wordt vervolgens steeds omringd door de commando's
-%I
-%I \beginvannaam
-%I tekst
-%I \eindvannaam
-%P
-%I Het zetten van blokken kan worden onderdrukt met het
-%I commando
-%I
-%I \verbergblokken[naam,naam,...]
-%I
-%I wat weer ongedaan gemaakt kan worden met:
-%I
-%I \handhaafblokken[naam,naam,...]
-%I
-%I Blokken kunnen worden opgeroepen met de commando's
-%I
-%I \gebruikblokken[naam,naam,...]
-%I \selecteerblokken[naam,naam,...][criterium=]
-%I
-%I Als criterium kan worden opgegeven: alles of hoofdstuk. In het
-%I laatste geval worden alleen de bij het actulele hoofdstuk horende
-%I blokken tussengevoegd.
-%P
-%I Men moet zonodig eerst het (opnieuw) aanmaken van referenties
-%I onderdrukken met het commando \stelrefererenin[status=stop].
-%I
-%I Genummerde tekstonderdelen (b.v. \doornummeren[vraag]) moeten
-%I desgewenst worden gereset (b.v.\resetvraag)
-%P
-%I De met het volgende commando in te stellen parameters hebben
-%I betrekking op het gebruiken van blokken:
-%I
-%I \stelblokin[naam][voor=,na=,binnen=,letter=]
-%I
-%I Een blok wordt altijd binnen een groep uitgevoerd ({ }).
-%I Zowel 'voor' als 'na' worden buiten deze groep
-%I uitgevoerd, en 'binnen' binnen de groep.
-%P
-%I Soms is het wenselijk tijdens \gebruikblokken sommige blokken
-%I wel 'uit te voeren' maar niet (nogmaals) in de tekst op te
-%I nemen. Als een blok wordt definieerd met:
-%I
-%I \beginvannaam[-]
-%I tekst
-%I \eindvannaam
-%I
-%I dan wordt het ter plaatse al dan niet gezet en bij het later
-%I oproepen wel verwerkt maar niet gezet.
-%I
-%I Als in de tekst een blok wel moet worden verwerkt, maar niet
-%I gezet, dan kan [+] worden opgegeven.
-%P
-%I Het handhaven, verbergen en gebruiken van blokken kan door
-%I de hele tekst plaatsvinden. Binnen ieder hoofdstuk kunnen
-%I bijvoorbeeld blokken worden gedefinieerd die aan het eind van
-%I het hoofdstuk worden opgeroepen. Dit mechanisme noodzaakt
-%I tenminste twee maal verwerken van de file met TeX.
-%I
-%I Een tweede pass is echter niet nodig als na het gebruik geen
-%I nieuwe blokken meer worden gedefinieerd. In dat geval kan
-%I vlak voordat de blokken worden opgeroepen, het commando
-%I
-%I \geenblokkenmeer
-%I
-%I worden gegeven. Dit scheelt tijd.
-
-% In eerste instantie is gebruik gemaakt van een utilityfile. Dit
-% is echter niet perse noodzakelijk. Wellicht dat als er blokken
-% moeten worden gesorteerd, toch weer texutil moet worden
-% gebruikt.
-
-% In de block-move variant hieronder wordt gebruik gemaakt van
-% de in de \answer-macro van Knuth gebruikte copieermethode.
-% Blokken kunnen worden
-%
-% gehandhaafd : in de tekst worden opgenomen ‚n gecopieerd
-% verborgen : alleen worden gecopieerd
-% gebruikt : later in de tekst worden opgenomen
-% geselecteerd : later selectief in de tekst worden opgenomen
-%
-% Ieder blok wordt gecopieerd naar de file 'jobname.tmp'.
-% Daarnaast wordt een blok tijdelijk opgeslagen in de file
-% 'texutil.tmp'. Handhaven komt neer op het opnieuw inlezen van
-% deze file.
-%
-% De file 'jobname.tmp' wordt later gecopieerd naar de file
-% 'jobname.tum'. Dit is nodig om in een eerdere run verzamelde
-% blokken te kunnen verwerken.
-
-% Werken met \copie gaat fout. Bovendien zijn de spaties
-% belangrijk!
-%
-% \def\c!copie{copie} % vervalt, verkeerde catcodes
-
-% The use of \string prevents spaces kreeping in when
-% converting the string. Although we can use \meaning in a
-% more direct way, we prfer to use \convertargument, because
-% this way the macro's are more readible.
-
-% MEER GEBRUIKEN : \dodoubleargumentwithset
-
-\def\blockversion {1996.03.10}
-
-\def\@@blockerrormessage%
- {\showmessage{\m!textblocks}{1}{}%
- \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]#3%
- {\setvalue{\??se\s!old#3}{#1}%
- \doifnot{#3}{\lastsection}
- {\dodosetblockcounters[#2:0]{\getvalue{\??se#3\c!na}}}}
-
-\def\dosetblockcounters[#1#2::#3]%
- {\ifblockpermitted
- \dodosetblockcounters[#3:0]\firstsection
- \setsectiontype[#1]%
- \def\@@sectionvalue##1{\getvalue{\??se\s!old##1}}%
- \def\@@sectionconversion##1##2{##2}% to get rid of {##2}
- \fi}
-
-\def\setblockcounters%
- {\@EA\dosetblockcounters\@EA[\blockstatus]}
-
-\def\getblockstatus#1%
- {\dosetblklevel{\getvalue{\??by\@@bscriterium}}%
- \doifblklevelelse[#1]
- {\global\blockpermittedtrue}
- {\global\blockpermittedfalse}%
- \def\blockstatus{#1}}
-
-\newwrite\outblocks
-\newread\inpblocks
-\newwrite\tmpblocks
-
-\newif\ifcopyingblocks
-
-\newbox\blockbox
-
-\newif\ifvisible
-\visibletrue
-
-\newif\ifblockpermitted
-
-\newcount\blocklevel
-\blocklevel=0
-
-\newif\ifoldinbijlagen
-
-\def\opentmpblock%
- {\immediate\openout\tmpblocks=\TEXbufferfile{\f!utilityfilename}}
-
-\def\closetmpblock%
- {\immediate\write\tmpblocks{}% een lege regel is handig voor \par commando's
- \immediate\closeout\tmpblocks}
-
-\newif\iftmpblockstarted
-
-\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}}%
- \global\copyingblockstrue
- \fi}
-
-\def\stopcopyingblocks%
- {\ifcopyingblocks
- \immediate\closeout\outblocks
- \copyblockfile
- \global\copyingblocksfalse
- \fi}
-
-\def\geenblokkenmeer%
- {\stopcopyingblocks}
-
-\def\copyblockfile
- {\ifcopyingblocks
- \begingroup
- \showmessage{\m!textblocks}{2}{\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
- % \let\copynextline\relax
- %\fi
- %\copynextline}%
- \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!textblocks}{3}{#1.\f!blockextension}}
- {\showmessage{\m!textblocks}{4}{}}%
- \endrestorecatcodes}
-
-%\def\setupcopyblock% kan vlotter
-% {\!!counta=1\relax
-% \loop
-% \catcode\!!counta=\@@other
-% \advance\!!counta by 1\relax
-% \ifnum\!!counta<255\relax
-% \repeat
-% \obeylines}
-
-\def\setupcopyblock%
- {\dostepwiserecurse{1}{255}{1}{\catcode\recurselevel=\@@other}%
- \obeylines}
-
-\def\writeoutblocks%
- {\immediate\write\outblocks}
-
-\def\processnextblocklineAB#1#2#3%
- {\convertargument#1 \to\next
- \doifinstringelse{\endofblockA}{\next}
- {\def\next{#2}}
- {\doifinstringelse{\endofblockB}{\next}
- {\def\next{#2}}
- {\def\next{#3}}}%
- \next}
-
-\bgroup
-\obeylines
-\gdef\copyblocklineAB#1
- {\processnextblocklineAB{#1}%
- {\closeblock}%
- {\writeoutblocks{#1}%
- \writetmpblock{#1}%
- \copyblocklineAB}}
-\gdef\skipblocklineAB#1
- {\processnextblocklineAB{#1}%
- {\closeblock}%
- {\skipblocklineAB}}
-\egroup
-
-\def\processnextblockline#1#2#3%
- {\convertargument#1 \to\next
- \doifinstringelse{\endofblock}{\next}
- {\def\next{#2}}
- {\def\next{#3}}%
- \next}
-
-\bgroup
-\obeylines
-\gdef\copyblockline#1
- {\processnextblockline{#1}%
- {\closeblock}%
- {\writeoutblocks{#1}%
- \writetmpblock{#1}%
- \copyblockline}}
-\gdef\skipblockline#1
- {\processnextblockline{#1}%
- {\closeblock}%
- {\skipblockline}}
-\egroup
-
-\def\skipblock#1%
- {\checkcopyingblocks
- \@EA\convertargument\string\thiswasblock{#1}\to\endofblock
-%testen : \expanded{\convertargument\string\thiswasblock{#1}\noexpand\to\noexpand\endofblock}%
- \let\openblock=\begingroup
- \let\closeblock=\endgroup
- \openblock
- \setupcopyblock
- \skipblockline}
-
-\def\doafterblock#1#2{}
-\def\dobeforeblock#1#2{}
-
-\def\thisisblock#1%
- {\executeifdefined{\s!thisisblock#1}{\skipblock{#1}}}
-
-\def\thiswasblock#1%
- {\getvalue{\s!thiswasblock#1}}
-
-\def\saveblock#1#2%
- {\checkcopyingblocks
- \obeylines
- %\@EA\convertargument\string\eindvan#1\to\endofblockA
- \@EA\@EA\@EA\convertargument\@EA\string\csname\e!eindvan#1\endcsname\to\endofblockA
-%testen: \expanded{\convertargument\string\csname\e!eindvan#1\endcsname\to\endofblockA}%
- \@EA\convertargument\string\eindvanblok[#1]\to\endofblockB % 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%
- {\readjobfile{\TEXbufferfile{\f!utilityfilename}}{}{}}
-
-\def\dodefinieerblok[#1]%
- {\passeerblok[#1]%
- \handhaafblokken[#1]%
- \stelblokin
- [#1]
- [\c!voor=\blanko,
- \c!na=\blanko,
- \c!binnen=,
- \c!letter=,
- \c!file=\jobname]}
-
-\def\definieerblok%
- {\dosingleargumentwithset\dodefinieerblok}
-
-\def\dostelblokin[#1][#2]%
- {\getparameters[\??tb#1][#2]}
-
-\def\stelblokin%
- {\dodoubleargumentwithset\dostelblokin}
-
-\def\passeerblok[#1]%
- {\setvalue{\s!thisisblock#1}##1[##2]%
- {\skipblock{#1}}}
-
-\def\doverbergblok[#1][#2][#3]%
- {\doifelsenothing{#2}
- {\global\blockpermittedfalse
- \edef\bloktitel{#1}}
- {\doifelsenothing{#3}
- {\global\blockpermittedtrue
- \edef\bloktitel{#1}}
- {\doifcommonelse{#2}{#3}
- {\global\blockpermittedfalse
- \edef\bloktitel{#1:#2}}
- {\global\blockpermittedtrue
- \edef\bloktitel{#1:#3}}}}%
- \ifblockpermitted
- \showwarning{\m!textblocks}{5}{\bloktitel}%
- \def\next%
- {\def\dobeforeblock####1####2%
- {\begingroup}%
- \def\doafterblock####1####2%
- {\endgroup
- \doexecuteloadedblock{#1}}%
- \saveblock{#1}{#3}}%
- \else
- \doifinsetelse{+}{#3}
- {\showwarning{\m!textblocks}{6}{\bloktitel}%
- \def\next%
- {\def\dobeforeblock####1####2%
- {\begingroup
- \global\visiblefalse}%
- \def\doafterblock####1####2%
- {{\setbox0=\vbox
- {\catcode`\^^M=\@@endofline\relax
- \loadoneblock
- \par}}%
- \endgroup}%
- \saveblock{#1}{#3}}}%
- {\showwarning{\m!textblocks}{7}{\bloktitel}%
- \def\next%
- {\def\dobeforeblock####1####2%
- {\begingroup
- \globaldefs=-1\relax}%
- \def\doafterblock####1####2%
- {\endgroup}%
- \copyblock{#1}{#3}}}%
- \fi
- \next}
-
-\def\doverbergblokken[#1][#2]%
- {\def\docommando##1%
- {\setvalue{\e!beginvan##1}%
- {\bgroup\obeylines\dotripleempty\doverbergblok[##1][#2]}}%
- \processcommalist[#1]\docommando}
-
-\def\verbergblokken%
- {\dodoubleempty\doverbergblokken}
-
-\def\doexecuteloadedblock#1%
- {\blockpermittedtrue % ?
- \getvalue{\??tb#1\c!voor}%
- \bgroup
- \doattributes{\??tb#1}\c!letter\c!kleur{}%
- \visibletrue
- \catcode`\^^M=\@@endofline\relax
- \getvalue{\??tb#1\c!binnen}%
- \loadoneblock
- \par
- \egroup
- \getvalue{\??tb#1\c!na}}
-
-\def\dohandhaafblok[#1][#2][#3]%
- {\doifelsenothing{#2}
- {\global\blockpermittedtrue
- \edef\bloktitel{#1}}
- {\doifcommonelse{#2}{#3}
- {\global\blockpermittedtrue
- \edef\bloktitel{#1:#2}}
- {\doifinsetelse{\v!alles}{#2}
- {\doifelse{#3}{}
- {\global\blockpermittedtrue
- \edef\bloktitel{#1}}
- {\global\blockpermittedfalse
- \edef\bloktitel{#1:#3}}}
- {\global\blockpermittedfalse
- \doifelse{#3}{}
- {\edef\bloktitel{#1}}
- {\edef\bloktitel{#1:#3}}}}}%
- \ifblockpermitted
- \showwarning{\m!textblocks}{8}{\bloktitel}%
- \def\dobeforeblock##1##2%
- {\begingroup}%
- \def\doafterblock##1##2%
- {\endgroup
- \doexecuteloadedblock{#1}}%
- \else
- \showwarning{\m!textblocks}{9}{\bloktitel}%
- \fi
- \saveblock{#1}{#3}}
-
-\def\dohandhaafblokken[#1][#2]%
- {\def\docommando##1%
- {\setvalue{\e!beginvan##1}%
- {\bgroup\obeylines\dotripleempty\dohandhaafblok[##1][#2]}}%
- \processcommalist[#1]\docommando}
-
-\def\handhaafblokken%
- {\dodoubleempty\dohandhaafblokken}
-
-% \def\dodogebruikblok#1#2#3#4%
-% {\getblockstatus{#2}%
-% \ifblockpermitted%
-% \doifelsenothing{#4}
-% {\edef\bloktitel{#1}}
-% {\doifnotcommon{#3}{#4}
-% {\global\blockpermittedfalse}%
-% \edef\bloktitel{#1:#3}}%
-% \else
-% \edef\bloktitel{#1}%
-% \fi
-% \ifblockpermitted
-% \def\next%
-% {\global\advance\blocklevel by 1
-% \doifinsetelse{-}{#3}
-% {\showwarning{\m!textblocks}{10}{\bloktitel}%
-% \setvalue{\s!thiswasblock#1}%
-% {\global\advance\blocklevel by -1
-% \par\egroup}%
-% \setbox0=\vbox\bgroup}
-% {\showwarning{\m!textblocks}{11}{\bloktitel}%
-% \setvalue{\s!thiswasblock#1}%
-% {\par
-% \egroup
-% \getvalue{\??tb#1\c!na}%
-% \global\advance\blocklevel by -1\relax}%
-% \getvalue{\??tb#1\c!voor}%
-% \bgroup
-% \doattributes{\??tb#1}\c!letter\c!kleur{}%
-% \visibletrue
-% \getvalue{\??tb#1\c!binnen}}}%
-% \else
-% \def\next%
-% {\showwarning{\m!textblocks}{12}{\bloktitel}%
-% \skipblock{#1}}%
-% \fi
-% \next}
-%
-% \def\dogebruikblok[#1][#2]%
-% {\setvalue{\s!thisisblock#1}##1[##2]%
-% {\dodogebruikblok{#1}{##1}{##2}{#2}}}
-%
-% \def\dogebruikblokken[#1][#2]%
-% {\def\docommando##1%
-% {\dogebruikblok[##1][#2]}%
-% \processcommalist[#1]\docommando
-% \dogetcommalistelement1\from#1\to\commalistelement
-% \doifdefined{\??tb\commalistelement\c!file}
-% {\loadallblocks{\getvalue{\??tb\commalistelement\c!file}}}%
-% \endgroup}
-%
-% \def\gebruikblokken%
-% {\begingroup
-% \doassign[\??bs][\c!criterium=\v!alles]%
-% \dodoubleempty\dogebruikblokken}
-
-\newconditional\processblockstatus
-\newconditional\dummyblockstatus
-
-\def\dodogebruikblok#1#2#3#4%
- {\getblockstatus{#2}%
- \ifblockpermitted
- \setfalse\dummyblockstatus
- \doifelsenothing{#4}
- {\edef\bloktitel{#1}}
- {\doifnotcommon{#3}{#4}
- {\ifconditional\processblockstatus
- \settrue\dummyblockstatus
- \else
- \global\blockpermittedfalse
- \fi}%
- \edef\bloktitel{#1:#3}}%
- \else
- \edef\bloktitel{#1}%
- \fi
- \ifblockpermitted
- \global\advance\blocklevel by 1
- \doifinset{-}{#3}{\settrue\dummyblockstatus}%
- \ifconditional\dummyblockstatus
- \showwarning{\m!textblocks}{10}{\bloktitel}%
- \setvalue{\s!thiswasblock#1}%
- {\par
- \egroup
- \global\advance\blocklevel by -1\relax}%
- \def\next%
- {\setbox0=\vbox\bgroup}%
- \else
- \showwarning{\m!textblocks}{11}{\bloktitel}%
- \setvalue{\s!thiswasblock#1}%
- {\par
- \egroup
- \getvalue{\??tb#1\c!na}%
- \global\advance\blocklevel by -1\relax}%
- \def\next%
- {\getvalue{\??tb#1\c!voor}%
- \bgroup
- \visibletrue
- \doattributes{\??tb#1}\c!letter\c!kleur{}%
- \getvalue{\??tb#1\c!binnen}}%
- \fi
- \else
- \def\next%
- {\showwarning{\m!textblocks}{12}{\bloktitel}%
- \skipblock{#1}}%
- \fi
- \next}
-
-\def\dogebruikblok[#1][#2]%
- {\setvalue{\s!thisisblock#1}##1[##2]%
- {\dodogebruikblok{#1}{##1}{##2}{#2}}}
-
-\def\dodogebruikblokken[#1][#2]%
- {\def\docommando##1%
- {\dogebruikblok[##1][#2]}%
- \processcommalist[#1]\docommando
- \dogetcommalistelement1\from#1\to\commalistelement
- \doifdefined{\??tb\commalistelement\c!file}
- {\loadallblocks{\getvalue{\??tb\commalistelement\c!file}}}%
- \endgroup}
-
-\def\dogebruikblokken%
- {\begingroup
- \doassign[\??bs][\c!criterium=\v!alles]%
- \dodoubleempty\dodogebruikblokken}
-
-\def\gebruikblokken%
- {\setfalse\processblockstatus\dogebruikblokken}
-
-\def\verwerkblokken%
- {\settrue \processblockstatus\dogebruikblokken}
-
-\def\doselecteerblokken[#1][#2][#3]%
- {\doifelsenothing{#3}
- {\getparameters[\??bs][#2]%
- \dogebruikblokken[#1][]}
- {\getparameters[\??bs][#3]%
- \dogebruikblokken[#1][#2]}}%
-
-\def\selecteerblokken%
- {\begingroup
- \doassign[\??bs][\c!criterium=\v!alles]%
- \dotripleempty\doselecteerblokken}
-
-\def\beginvanblok[#1]% % er wordt ook gechecked op \eindvanblok[..]
- {\getvalue{\e!beginvan#1}}
-
%I n=Achtergronden
%I c=\stelachtergrondenin
%I
@@ -15000,34 +8960,9 @@
\newbox\leftbackground
\newbox\rightbackground
-% \getvalue{\??ma#1\c!commando} is obsolete; replaced by overlay
-%
-% \def\doaddpagebackground#1#2%
-% {\doifvaluesomething{\??ma#1\c!achtergrond}
-% {\setbox2=\vbox
-% {\offinterlineskip
-% \localframed
-% [\??ma#1]
-% [\c!breedte=\papierbreedte,\c!hoogte=\papierhoogte]%, \c!offset=\v!overlay]
-% {\getvalue{\??ma#1\c!commando}}}%
-% \wd2=\!!zeropoint
-% \dp2=\!!zeropoint
-% \setbox#2=\vbox
-% {\hbox{\box2\box#2}}}}
-
-%\def\doaddpagebackground#1#2%
-% {\doifvaluesomething{\??ma#1\c!achtergrond}
-% {\edef\setpagebackgrounddepth%
-% {\dp#2=\the\dp#2}%
-% \setbox#2=\vbox\localframed
-% [\??ma#1]
-% [\c!strut=\v!nee,\c!breedte=\papierbreedte,\c!hoogte=\papierhoogte]
-% {\dp#2=\!!zeropoint\box#2}%
-% \setpagebackgrounddepth}}
-
\def\ifsomebackgroundfound#1%
{\edef\!!stringe{\??ma#1}%
- \doifelsevaluenothing{\!!stringe\c!achtergrond}
+ \doifelsevaluenothing{\!!stringe\c!achtergrond }
{\doifelsevalue{\!!stringe\c!kader }\v!aan\!!doneatrue
{\doifelsevalue{\!!stringe\c!linkerkader }\v!aan\!!doneatrue
{\doifelsevalue{\!!stringe\c!rechterkader}\v!aan\!!doneatrue
@@ -15048,7 +8983,8 @@
{\dp#2=\the\dp#2}%
\setbox#2=\vbox\localframed
[\??ma#1]
- [\c!strut=\v!nee,\c!breedte=\papierbreedte,\c!hoogte=\papierhoogte]
+ [\c!strut=\v!nee,\c!offset=\v!overlay,
+ \c!breedte=\papierbreedte,\c!hoogte=\papierhoogte]
{\dp#2=\!!zeropoint\box#2}%
\setpagebackgrounddepth
\fi}
@@ -15077,7 +9013,7 @@
\localframed
[\??ma#3#4]
[\c!breedte=#1,\c!hoogte=#2,\c!offset=\v!overlay]
- {\getvalue{\??ma#3#4\c!commando}}%
+ {\getvalue{\??ma#3#4\c!commando}}% {\hsize=#1\vsize=#2....}
\else
\hskip#1%
\fi}
@@ -15186,35 +9122,6 @@
\def\docheckbackgrounddefinitions%
{\global\somebackgroundtrue}}}
-% \def\dostelachtergrondenin[#1][#2][#3]%
-% {\ifthirdargument
-% \docheckbackgrounddefinitions
-% \def\docommando##1%
-% {\doifinsetelse{##1}{\v!pagina,\v!linkerpagina,\v!rechterpagina}
-% {\getparameters[\??ma##1][#3]%
-% \dosetpageseparation}
-% {\def\dodocommando####1%
-% {\getparameters[\??ma##1####1][#3]}
-% \processcommalist[#2]\dodocommando}}%
-% \processcommalist[#1]\docommando
-% \else\ifsecondargument
-% \docheckbackgrounddefinitions
-% \doifcommonelse{#1}{\v!pagina,\v!linkerpagina,\v!rechterpagina}
-% {\def\docommando##1%
-% {\getparameters[\??ma##1][#2]}%
-% \processcommalist[#1]\docommando
-% \dosetpageseparation}
-% {\dostelachtergrondenin
-% [#1]
-% [\v!linkerrand,\v!linkermarge,\v!tekst,\v!rechtermarge,\v!rechterrand]
-% [#2]}%
-% \else\iffirstargument
-% \getparameters[\??ma][#1]%
-% \fi\fi\fi
-% \doifelse{\@@mastatus}{\v!stop}
-% {\global\newbackgroundfalse}
-% {\global\newbackgroundtrue}}
-
\def\dostelachtergrondenin[#1][#2][#3]%
{\ifthirdargument
\docheckbackgrounddefinitions
@@ -15537,16 +9444,6 @@
\xdef\texcommentsymbol{%}
\egroup
-%\def\loadoptionfile% tzt \unlinkfile
-% {\readjobfile{\f!optfilename}
-% {\showmessage{\m!systems}{2}{\f!optfilename}}%
-% {}%
-% \doiffileelse{\f!optfilename}
-% {\immediate\openout\scratchwrite=\f!optfilename
-% \immediate\write\scratchwrite{\texcommentsymbol\space see backup copy}%
-% \immediate\closeout\scratchwrite}
-% {}}
-
\def\loadoptionfile%
{\readjobfile{\jobname.\f!optionextension}
{\showmessage{\m!systems}{2}{\jobname.\f!optionextension}}%
@@ -15567,15 +9464,18 @@
\appendtoks \openutilities \to \everyjob
\appendtoks \loadoptionfile \to \everyjob
\appendtoks \loadtwopassdata \to \everyjob
-\appendtoks \setupfootnotes \to \everyjob % eigenlijk ergens anders
- % hangt af van korps
-\appendtoks \pagina[\v!laatste] \pagina
- \ifarrangingpages\poparrangedpages\fi \to \everybye
+\appendtoks \setupfootnotes \to \everyjob % pas op: hangt af van korps
+\appendtoks \pagina[\v!laatste] \pagina \to \everybye
+\appendtoks \ifarrangingpages\poparrangedpages\fi \to \everybye
\appendtoks \registreerfileinfo[end]{\jobname} \to \everybye
-\appendtoks \stopcopyingblocks \to \everybye
-\appendtoks \closeutilities \to \everybye
-\appendtoks \closespecialfile \to \everybye
+
+\appendtoks \savenofpages \to \everybye
+\appendtoks \savenofsubpages \to \everybye
+
+\appendtoks \closeutilities \to \everygoodbye
+\appendtoks \stopcopyingblocks \to \everygoodbye
+\appendtoks \closespecialfile \to \everygoodbye
\appendtoks \checkreferences \to \everystarttext % nieuw 4-12-1999
@@ -15595,8 +9495,10 @@
{\doglobal\decrement\textlevel\relax
\ifnum\textlevel>0 \else
\the\everystoptext
- \the\everybye
- \expandafter\normalend
+ %\the\everybye %
+ %\the\everygoodbye % == \end (new)
+ %\expandafter\normalend %
+ \expandafter\end
\fi}
\let\normalend=\end
@@ -15604,6 +9506,9 @@
\def\end%
{\ifnum\textlevel>0 \else
\the\everybye
+ \the\everygoodbye
+ \global\everygoodbye\emptytoks % rather unneeded
+ \global\everybye\emptytoks % but for sure
\expandafter\normalend
\fi}
@@ -15628,7 +9533,7 @@
{\def\startomgeving ##1 {}%
\let\stopomgeving=\relax
\startreadingfile
- \readlocfile{#1}{}{}%
+ \processfile{#1}% \readlocfile{#1}{}{}%
\stopreadingfile}
\newcounter\filelevel
@@ -15645,15 +9550,6 @@
\increment\filelevel\relax
\ExpandFirstAfter\addtocommalist{#1}\loadedfiles}
-%\def\doprevlevel%
-% {\ifnum\filelevel=1\relax
-% \let\next=\stoptekst
-% \else
-% \decrement\filelevel\relax
-% \let\next=\endinput
-% \fi
-% \next}
-
\def\doprevlevel%
{\ifnum\filelevel=1
\expandafter\stoptekst
@@ -15798,6 +9694,8 @@
\def\versie%
{\dosingleargument\doversie}
+% this will be inserts some day
+
\newbox\referentieinfobox
\newbox\registerinfobox
\newbox\floatinfobox
@@ -15816,7 +9714,7 @@
\strut
\expandafter\doboundtext\expandafter
{\extratestinfo}
- {8em}
+ {12em}
{..}%
\quad}}}%
\endgroup
@@ -16004,7 +9902,9 @@
\c!commandos=,
\c!letter=,
#2]%
- \setvalue{#1}%
+% \setvalue{\e!stel#1\e!in}[##1]%
+% {\dodoubleargument\getparameters[\??be##1]}%
+ \unexpanded\setvalue{#1}%
{\groupedcommand
{\getvalue{\??be#1\c!commandos}%
\dostartattributes{\??be#1}\c!letter\c!kleur}
@@ -16021,21 +9921,9 @@
\def\definieerstartstop%
{\dodoubleargument\dodefinieerstartstop}
-
-%I n=Verbergen
-%I c=\startverbergen
-%I
-%I Een deel van de tekst kan (tijdelijk) worden
-%I overgeslagen door deze te omhullen met de commando's:
-%I
-%I \startverbergen
-%I \stopverbergen
-% the buffer mechanism handles nesting, add some switch
-
-\setvalue{\e!start\e!verbergen}%
- {\dostartbuffer[buf-\nofpostponedblocks]
- [\e!start\e!verbergen][\e!stop\e!verbergen]}
+\def\stelstartstopin[#1]%
+ {\dodoubleargument\getparameters[\??be#1]}
% gejat van Knuth (zie \copyright, p356)
@@ -16132,6 +10020,7 @@
\c!rechterrand=\@@lyrand,
\c!kopoffset=\!!zeropoint,
\c!rugoffset=\!!zeropoint,
+ \c!tekstbreedte=, % dangerous here \tekstbreedte
\c!letter=,
\c!markering=\v!uit,
\c!plaats=\v!enkelzijdig,
@@ -16141,7 +10030,9 @@
\c!dx=\!!zeropoint,
\c!dy=\!!zeropoint,
\c!grid=\v!nee,
- \c!regels=]
+ \c!regels=,
+ \c!snijwit=,
+ \c!bodemwit=]
% instellingen hierop terugvallen, bijvoorbeeld de volgende:
@@ -16219,6 +10110,7 @@
\stelkolommenin
[\c!n=2,
+ \c!nboven=1,
\c!commando=,
\c!richting=\v!rechts,
\c!lijn=\v!uit,
@@ -16265,7 +10157,7 @@
\stelbovenin [\c!voor=\vss,\c!na=\vss]
\stelonderin [\c!voor=\vss,\c!na=\vss]
-\stelhoofdin
+\stelhoofdin % \get??tk#1#2#3 would save quite some 3K in fmt size
[\v!tekst]
[\c!strut=\v!ja,
\c!letter=,
@@ -16522,23 +10414,6 @@
\c!linkerbreedte=\getvalue{\??tk\v!tekst\v!rand\c!breedte},
\c!rechterbreedte=\getvalue{\??tk\v!tekst\v!rand\c!breedte}]
-\stelnummeringin % na instellen hoofdteksten !
- [\c!variant=\v!enkelzijdig,
- \c!plaats={\v!hoofd,\v!midden},
- \c!conversie=\v!cijfers,
- \c!links=,
- \c!rechts=,
- \c!wijze=\v!per\v!deel,
- \c!tekst=,
- \v!hoofdstuk\v!nummer=\v!nee, % v
- \v!deel\v!nummer=\v!ja, % v
- \c!nummerscheider=--,
- \c!tekstscheider=\tfskip,
- \c!status=\v!start,
- \c!commando=,
- \c!letter=\v!normaal,
- \c!kleur=]
-
\stelblankoin
[\v!standaard,
\v!groot]
@@ -16554,164 +10429,6 @@
\def\@@blankotussen{\blanko[\v!tussen]} % scheelt 5 tokens == >20 bytes
\def\@@blankona {\blanko[\v!na]} %
-\stelkoppenin
- [\c!variant=\v!normaal,
- \c!sectienummer=\v!ja,
- \c!scheider=.,
- \c!commando=]
-
-\definieersectieblok [\v!hoofdtekst] [\v!hoofdteksten] [\c!nummer=\v!ja]
-\definieersectieblok [\v!bijlage] [\v!bijlagen] [\c!nummer=\v!ja]
-\definieersectieblok [\v!inleiding] [\v!inleidingen] [\c!nummer=\v!nee]
-\definieersectieblok [\v!uitleiding] [\v!uitleidingen] [\c!nummer=\v!nee]
-
-\definieersectie[\v!sectionlevel-1] % deel
-\definieersectie[\v!sectionlevel-2] % hoofdstuk
-\definieersectie[\v!sectionlevel-3] % paragraaf
-\definieersectie[\v!sectionlevel-4] % subparagraaf
-\definieersectie[\v!sectionlevel-5] % subsubparagraaf
-\definieersectie[\v!sectionlevel-6] % subsubsubparagraaf
-\definieersectie[\v!sectionlevel-7] % subsubsubsubparagraaf
-
-% \c!eigennummer ook hier?
-
-\definieerkop
- [\v!deel]
- [\c!sectie=\v!sectionlevel-1]
-
-\definieerkop
- [\v!hoofdstuk]
- [\c!sectie=\v!sectionlevel-2]
-
-\definieerkop
- [\v!paragraaf]
- [\c!sectie=\v!sectionlevel-3]
-
-\definieerkop
- [\v!sub\v!paragraaf]
- [\c!sectie=\v!sectionlevel-4,
- \c!default=\v!paragraaf]
-
-\definieerkop
- [\v!sub\v!sub\v!paragraaf]
- [\c!sectie=\v!sectionlevel-5,
- %\c!default=\v!paragraaf]
- \c!default=\v!sub\v!paragraaf] % nieuw
-
-\definieerkop
- [\v!sub\v!sub\v!sub\v!paragraaf]
- [\c!sectie=\v!sectionlevel-6,
- %\c!default=\v!paragraaf]
- \c!default=\v!sub\v!sub\v!paragraaf] % nieuw
-
-\definieerkop
- [\v!sub\v!sub\v!sub\v!sub\v!paragraaf]
- [\c!sectie=\v!sectionlevel-7,
- %\c!default=\v!paragraaf]
- \c!default=\v!sub\v!sub\v!sub\v!paragraaf] % nieuw
-
-\definieerkop
- [\v!titel]
- [\c!koppeling=\v!hoofdstuk,
- \c!default=\v!hoofdstuk,
- \c!verhoognummer=\v!nee]
-
-\definieerkop
- [\v!onderwerp]
- [\c!koppeling=\v!paragraaf,
- \c!default=\v!paragraaf,
- \c!verhoognummer=\v!nee]
-
-\definieerkop
- [\v!sub\v!onderwerp]
- [\c!koppeling=\v!sub\v!paragraaf,
- \c!default=\v!sub\v!paragraaf,
- \c!verhoognummer=\v!nee]
-
-\definieerkop
- [\v!sub\v!sub\v!onderwerp]
- [\c!koppeling=\v!sub\v!sub\v!paragraaf,
- \c!default=\v!sub\v!sub\v!paragraaf,
- \c!verhoognummer=\v!nee]
-
-\definieerkop
- [\v!sub\v!sub\v!sub\v!onderwerp]
- [\c!koppeling=\v!sub\v!sub\v!sub\v!paragraaf,
- \c!default=\v!sub\v!sub\v!sub\v!paragraaf,
- \c!verhoognummer=\v!nee]
-
-\definieerkop
- [\v!sub\v!sub\v!sub\v!sub\v!onderwerp]
- [\c!koppeling=\v!sub\v!sub\v!sub\v!sub\v!paragraaf,
- \c!default=\v!sub\v!sub\v!sub\v!sub\v!paragraaf,
- \c!verhoognummer=\v!nee]
-
-\stelsectiein
- [\v!sectionlevel-2]
- [\v!bijlage\c!conversie=\v!Letter,
- \c!vorigenummer=\v!nee]
-
-\stelkopin
- [\v!deel]
- [\c!plaatskop=\v!nee]
-
-\stelkopin
- [\v!hoofdstuk]
- [\v!bijlage\c!label=\v!bijlage,
- \v!hoofdtekst\c!label=\v!hoofdstuk] % bijlageconversie=\Character
-
-\stelkopin
- [\v!paragraaf]
- [\v!bijlage\c!label=\v!paragraaf,
- \v!hoofdtekst\c!label=\v!paragraaf] % bijlageconversie=\Character
-
-\stelkopin
- [\v!sub\v!paragraaf]
- [\v!bijlage\c!label=\v!sub\v!paragraaf,
- \v!hoofdtekst\c!label=\v!sub\v!paragraaf] % bijlageconversie=\Character
-
-\stelkopin
- [\v!sub\v!sub\v!paragraaf]
- [\v!bijlage\c!label=\v!sub\v!sub\v!paragraaf,
- \v!hoofdtekst\c!label=\v!sub\v!sub\v!paragraaf] % bijlageconversie=\Character
-
-\stelkopin
- [\v!deel,\v!hoofdstuk]
- [\c!uitlijnen=,
- \c!doorgaan=\v!nee,
- \c!springvolgendein=\v!nee,
- \c!pagina=\v!rechts,
- \c!hoofd=,
- \c!letter=\tfc,
- \c!afstand=.75em,
- \c!voor={\blanko[2*\v!groot]},
- \c!na={\blanko[2*\v!groot]}]
-
-\stelkopin
- [\v!paragraaf]
- [\c!uitlijnen=,
- \c!letter=\tfa,
- \c!afstand=.75em,
- \c!springvolgendein=\v!nee,
- \c!voor={\blanko[2*\v!groot]},
- \c!na=\blanko]
-
-\stelkopin % nieuw
- [\v!sub\v!paragraaf]
- [\c!pagina=]
-
-\definieersamengesteldelijst
- [\v!inhoud]
- [\v!deel,
- \v!hoofdstuk,
- \v!paragraaf,
- \v!sub\v!paragraaf,
- \v!sub\v!sub\v!paragraaf,
- \v!sub\v!sub\v!sub\v!paragraaf,
- \v!sub\v!sub\v!sub\v!sub\v!paragraaf]
- [\c!niveau=\v!sub\v!sub\v!sub\v!sub\v!paragraaf,
- \c!criterium=\v!lokaal]
-
\stelblokkopjesin
[\c!plaats=\v!onder,
\c!voor=\blanko,
@@ -16769,53 +10486,6 @@
\stelinspringenin
[\v!geen]
-\stelopsommingenin % undocumented
- [\c!niveaus=6,
- \c!marge=\!!zeropoint,
- \c!springvolgendein=\v!ja,
- \c!breedte=1.5em,
- \c!factor=0,
- \c!afstand=.5em,
- \c!uitlijnen=\v!normaal,
- \c!inspringen=, % untouched if empty
- \c!kleur=,
- \c!letter=, % kan tzt weg
- \c!marletter=\c!type, % \c! ???
- \c!symletter=,
- \c!kopletter=,
- \c!markleur=,
- \c!symkleur=,
- \c!kopkleur=,
- \c!kopvoor=,
- \c!kopna=\blanko,
- \c!voor=\blanko,
- \c!tussen=\blanko,
- \c!na=\blanko,
- \c!afsluiter=.,
- \c!plaatsafsluiter=\v!ja,
- \c!binnen=,
- \c!n=2,
- \c!items=4,
- \c!symbool=\itemlevel]
-
-\steldoorspringenin
- [\c!letter=\v!normaal,
- \c!kopletter=\v!normaal,
- \c!kleur=,
- \c!kopkleur=,
- \c!breedte=\v!passend,
- \c!tekst=\unknown,
- \c!monster=,
- \c!voor=\blanko,
- \c!na=\blanko,
- \c!scheider={ :}]
-
-\stelnummerenin
- [\c!wijze=\v!per\v!hoofdstuk,
- \c!blokwijze=,
- \c!sectienummer=\v!ja,
- \c!status=\v!start]
-
\stelformulesin
[\c!wijze=\@@nrwijze,
\c!blokwijze=,
@@ -16871,6 +10541,12 @@
\c!prefix=,
\c!refereren=\v!aan]
+\stelparagraafnummerenin
+ [\c!status=\v!stop,
+ \c!letter=,
+ \c!kleur=,
+ \c!afstand=\ifregelnummersinmarge2em\else\!!zeropoint\fi]
+
\definieeropmaak
[\v!standaard]
[\c!breedte=\zetbreedte,
@@ -16896,50 +10572,6 @@
\c!tussen=\blanko,
\c!inspringen=\v!nee]
-\steldoordefinierenin
- [\c!plaats=\v!links,
- \c!kopletter=\v!vet,
- \c!letter=\v!normaal,
- \c!kleur=,
- \c!kopkleur=,
- \c!breedte=8em,
- \c!afstand=0pt,
- \c!hang=,
- \c!monster=,
- \c!uitlijnen=,
- \c!marge=\v!nee,
- \c!voor=\blanko,
- \c!tussen=\blanko,
- \c!na=\blanko,
- \c!springvolgendein=\v!ja,
- \c!commando=]
-
-\steldoornummerenin
- [\c!plaats=\v!boven,
- \c!kopletter=\v!vet,
- \c!kopkleur=,
- \c!letter=\v!normaal,
- \c!kleur=,
- \c!breedte=8em,
- \c!afstand=0pt,
- \c!hang=,
- \c!monster=,
- \c!uitlijnen=,
- \c!marge=\v!nee,
- \c!voor=\blanko,
- \c!tussen=\blanko,
- \c!na=\blanko,
- \c!springvolgendein=\v!ja,
- \c!tekst=,
- \c!niveaus=3, % to be upward compatible
- \c!conversie=, % to be upward compatible
- \c!wijze=\v!per\v!tekst,
- \c!sectienummer=\v!ja,
- \c!scheider=.,
- \c!afsluiter=,
- \c!nummer=,
- \c!commando=]
-
\stelkoppeltekenin
[\c!teken=\compoundhyphen]
@@ -16979,34 +10611,6 @@
[\v!grafiek]
[\v!grafieken]
-\definieersynoniemen
- [\v!afkorting]
- [\v!afkortingen]
- [\voluit]
-
-\stelsynoniemenin
- [\v!afkorting]
- [\c!tekstletter=\v!kapitaal,
- \c!synoniemletter=,
- \c!tekstkleur=,
- \c!synoniemkleur=,
- \c!plaats=\v!links,
- \c!breedte=5em,
- \c!status=\v!start]
-
-\definieersorteren
- [\v!logo]
- [\v!logos]
-
-\definieersynoniemen
- [\v!eenheid]
- [\v!eenheden]
- [\betekenis]
-
-\stelsynoniemenin
- [\v!eenheid]
- [\c!tekstletter=\dimension]
-
\stelmargeblokkenin
[\c!status=\v!start,
\c!plaats=\v!inmarge,
@@ -17033,56 +10637,14 @@
\c!achtergrond=,
\c!raster=\@@rsraster,
\c!kleur=,
- \c!kaderoffset=\getvalue{\??ma\v!pagina\c!offset},
+ \c!kaderoffset=\getvalue{\??ma\v!pagina\c!offset},
\c!achtergrondoffset=\getvalue{\??ma\v!pagina\c!offset},
- \c!offset=\!!zeropoint,
+ \c!offset=\!!zeropoint, % later set to \v!overlay, watch out !
\c!diepte=\!!zeropoint,
\c!scheider=\v!nee]
-
-\stelbufferin
- [\c!voor=,
- \c!na=]
-
-\stellijstin
- [\v!deel]
- [\c!breedte=0em,
- \c!voor={\blanko\pagina[\v!voorkeur]},
- \c!na=\blanko,
- \c!label=\v!ja,
- \c!scheider=:,
- \c!afstand=1em]
-
-\stellijstin
- [\v!hoofdstuk]
- [\c!breedte=2em,
- \c!voor={\blanko\pagina[\v!voorkeur]},
- \c!na=]
-
-\stellijstin
- [\v!paragraaf]
- [\c!breedte=3em]
-
-\stellijstin
- [\v!sub\v!paragraaf]
- [\c!breedte=4em]
-
-\stellijstin
- [\v!sub\v!sub\v!paragraaf]
- [\c!breedte=5em]
-
-\stellijstin
- [\v!sub\v!sub\v!sub\v!paragraaf]
- [\c!breedte=6em]
-
-\stellijstin
- [\v!sub\v!sub\v!sub\v!sub\v!paragraaf]
- [\c!breedte=7em]
\def\documentstyle%
{\showmessage{\m!systems}{3}{}
\stoptekst}
-\protect
-
-\endinput
-
+\protect \endinput
diff --git a/tex/context/base/core-01b.tex b/tex/context/base/main-002.tex
index 49ffc182f..169f5a0aa 100644
--- a/tex/context/base/core-01b.tex
+++ b/tex/context/base/main-002.tex
@@ -1,5 +1,5 @@
%D \module
-%D [ file=core-01b,
+%D [ file=main-002,
%D version=1997.03.31,
%D title=\CONTEXT\ Core Macros,
%D subtitle=1B (to be split),
@@ -11,7 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros (b)}
+%D This module is still to be split and documented.
+
+\writestatus{loading}{Context Core Macros (2)}
\unprotect
@@ -412,8 +414,7 @@
%I
%I Instelling vindt plaats met het commando:
%I
-%I \steltabin[monster=,breedte=,kopletter=,voor,
-%I na=]
+%I \steltabin[monster=,breedte=,kopletter=,voor,na=]
%I
%I Dit commando is een vereenvoudigde variant van het
%I commando \doordefinieren. In de regel kan volstaan
@@ -724,17 +725,6 @@
\def\startcitaat%
{\dosingleempty\dostartcitaat}
-% \def\dohandlequotation#1%
-% {\ifdim\lastkern=\quotationsignal
-% \unskip
-% \hskip\quotationskip
-% \fi
-% \strut % new, needed below
-% \getvalue{\??la\currentlanguage#1}%
-% \kern\quotationsignal}
-
-%D Better hyphenation (\prewordbreak look alike added):
-
\def\dohandlequotation#1%
{\ifdim\lastskip=\quotationsignal
\unskip\hskip\quotationskip
@@ -784,24 +774,6 @@
% zowieso beter het commando \tijd te reserveren voor de
% systeemtijd.
-% %I n=Tijden
-% %I c=\tijd,\tijdspan,\activiteit
-% %I
-% %I De volgende commando's kunnen worden gebruikt om
-% %I tijden en activiteiten in overzichten weer te geven:
-% %I
-% %I uu.mm
-% %I
-% %I \tijd{uur.min}
-% %I
-% %I uu.mm --- uu.mm
-% %I
-% %I \tijdspan{uur.min}{uur.min}
-% %I
-% %I uu.mm --- uu.mm activiteit
-% %I
-% %I \activiteit{uur.min}{uur.min} ... (\par)
-
\def\tijd#1%
{\setbox0=\hbox{00.00}%
\hbox to \wd0{\hfill#1}}
@@ -842,224 +814,6 @@
\definecomplexorsimpleempty\toevoegen
-%I n=Tekstlijn
-%I c=\tekstlijn,\starttekstlijn,\steltekstlijnenin
-%I
-%I Een stuk tekst kan worden omgeven door horizontale lijnen,
-%I waarin al dan niet een tekst is opgenomen.
-%I
-%I \tekstlijn[plaats]{tekst}
-%I
-%I Mogelijke plaatsen zijn boven en onder. De onderstaande twee
-%I commando's zijn equivalent:
-%I
-%I \tekstlijn
-%I \tekstlijn[onder]{}
-%I
-%I Daarnaast zijn beschikbaar:
-%I
-%I \starttekstlijn{tekst}
-%I \stoptekstlijn
-%I
-%I waarbij de plaats dus boven is.
-%P
-%I Een en ander kan worden ingesteld met het commando:
-%I
-%I \steltekstlijnenin[voor=,na=,tussen=,letter=,breedte=,
-%I plaats=]
-%I
-%I De breedte heeft betrekking op de lengte van de lijn voor
-%I de tekst. Mogelijke plaatsen zijn links en inmarge.
-
-% nog eens \definieertekstlijn
-
-\def\steltekstlijnenin%
- {\dodoubleargument\getparameters[\??tl]}
-
-\def\docomplextekstlijn#1%
- {\bgroup
- \setbox0=\hbox to \hsize
- {\dimen4=0.5ex\relax
- \dimen6=-0.5ex\relax
- \advance\dimen4 by .5\linewidth
- \advance\dimen6 by .5\linewidth
- \doifsomething{#1}
- {\doifelse{\@@tlplaats}{\v!inmarge}%
- {\llap{\doattributes\??tl\c!letter\c!kleur{#1}\hskip\linkermargeafstand}}
- {\vrule\!!height\dimen4\!!depth\dimen6\!!width\@@tlbreedte
- \hbox spread 1em{\hss\doattributes\??tl\c!letter\c!kleur{\strut#1}\hss}}}%
- \leaders\hrule\!!height\dimen4\!!depth\dimen6\hfill}
- \ht0=\ht\strutbox
- \dp0=\dp\strutbox
- \box0
- \egroup}
-
-\def\dotoptekstlijn#1%
- {\pagina[\v!voorkeur]
- \witruimte
- \@@tlvoor
- \docomplextekstlijn{#1}%
- \geenwitruimte
- \@@tltussen
- \endgraf}
-
-\def\dobottomtekstlijn#1%
- {\ifhmode
- \endgraf
- \fi
- \dimen0=\dp\strutbox
- \ifdim\prevdepth<\dp\strutbox
- \ifdim\prevdepth>\!!zeropoint
- \advance\dimen0 by -\prevdepth
- \fi
- \fi
- \advance\dimen0 by .5ex
- \vskip\dimen0
- \@@tltussen
- \doifelse{#1}{}
- {\hrule\!!depth\linewidth\!!height\!!zeropoint}
- {\docomplextekstlijn{#1}}%
- \@@tlna
- \pagina[\v!voorkeur]}
-
-\def\complextekstlijn[#1]#2%
- {\processaction
- [#1]
- [ \v!boven=>\dotoptekstlijn{#2},
- \v!onder=>\dobottomtekstlijn{#2},
- \s!default=>\dobottomtekstlijn{#2}]}
-
-\def\simpletekstlijn%
- {\dobottomtekstlijn{}}
-
-\definecomplexorsimple\tekstlijn
-
-\def\starttekstlijn#1%
- {\bgroup
- \dotoptekstlijn{#1}}
-
-\def\stoptekstlijn%
- {\dobottomtekstlijn{}%
- \egroup}
-
-%I n=Invullijnen
-%I c=\invullijnen,\stelinvullijnenin,\invultekst
-%I
-%I Ten behoeve van invullijsten is het volgende commando
-%I beschikbaar:
-%I
-%I \invullijnen[n=,breedte=]{tekst}
-%I
-%I Dit levert:
-%I
-%I tekst _____________________________________________
-%I _____________________________________________
-%I
-%I De instellingen kunnen desgewenst achterwege blijven:
-%I
-%I \invullijnen{tekst}
-%I \invullijnen{tekst}{optionele eindtekst}
-%I
-%I In dat geval worden de standaard-instellingen gebruikt.
-%P
-%I De standaardinstellingen vinden plaats met:
-%I
-%I \stelinvullijnenin[n=,breedte=,afstand=,letter=,voor=,
-%I na=,scheider=]
-%I
-%I De afstand heeft betrekking op de afstand tussen de
-%I scheider en de lijnen.
-%I
-%I Het volgende commando plaatst een tekst op een zelfde
-%I wijze als de invullijnen.
-%I
-%I \invultekst{tekst} tekst \par
-
-\def\stelinvullijnenin%
- {\dosingleargument\getparameters[\??il]}
-
-\def\dodocomplexinvullijnen[#1]#2#3#4%
- {\endgraf
- \@@ilvoor
- \begingroup
- \stelinvullijnenin[#1]%
- \noindent
- \doifelse{\@@ilbreedte}{\v!passend}
- {\setbox0=\hbox}
- {\setbox0=\hbox to \@@ilbreedte}
- {\doattributes
- \??il\c!letter\c!kleur
- {\strut#3\hfill
- \doifsomething{\@@ilscheider}
- {\hbox spread \@@ilafstand{\@@ilscheider\hss}}}}%
- \hangindent=\wd0\relax
- \parindent=\hangindent
- \box0\relax
- \stelwitruimtein[\v!groot]%
- \ignorespaces
- #2#4%
- \endgroup
- \endgraf
- \@@ilna}
-
-\def\complexinvullijnen[#1]%
- {\def\docomplexinvullijnen%
- {\dodocomplexinvullijnen[#1]{\thinrules[\c!n=\@@iln]}}%
- \dodoublegroupempty\docomplexinvullijnen}
-
-\definecomplexorsimpleempty\invullijnen
-
-\def\complexinvultekst[#1]#2#3\par%
- {\dodocomplexinvullijnen[#1]{\ignorespaces#3\endgraf}{#2}{}}
-
-\definecomplexorsimpleempty\invultekst
-
-%I n=Invulregels
-%I c=\invulregel,\stelinvulregelin,\invultekst
-%I
-%I Ten behoeve van invullijsten is het volgende commando
-%I beschikbaar:
-%I
-%I \invulregel[breedte=,afstand=]{tekst}
-%I
-%I tekst tekst tekst tekst tekst tekst tekst
-%I tekst tekst tekst tekst tekst tekst tekst __________
-%I
-%I De instellingen kunnen desgewenst achterwege blijven:
-%I
-%I \invulregel tekst
-%I
-%I In dat geval worden de standaard-instellingen gebruikt.
-%I
-%I De standaardinstellingen vinden plaats met:
-%I
-%I \stelinvulregelsin[n=,breedte=,afstand=,voor=,na=]
-%I
-%I De lengte van de lijn is gelijk aan breedte-afstand.
-
-\def\stelinvulregelsin%
- {\dosingleargument\getparameters[\??iv]}
-
-\def\complexinvulregel[#1]#2\par%
- {%\endgraf % interferes with \doordefinieren alikes
- \@@ivvoor
- \begingroup
- \stelinvulregelsin[#1]%
- \advance\rightskip by \@@ivbreedte
- \parfillskip\!!zeropoint
- #2\hfill
- \dimen0=\@@ivbreedte
- \advance\dimen0 by -\@@ivafstand
- \rlap
- {\hskip\@@ivafstand
- \vrule\!!width\dimen0\!!height\linewidth}%
- \par % !
- \endgroup
- \par % !
- \@@ilna}
-
-\definecomplexorsimpleempty\invulregel
-
%I n=Roosters
%I c=\rooster
%I
@@ -1311,51 +1065,6 @@
\def\kenmerkdatum%
{\currentdate[\v!kenmerk]}
-% \def\dokenmerk[#1]%
-% {\geenhoofdenvoetregels
-% \getparameters
-% [\??km]
-% [\c!bet=\unknown,
-% \c!dat=\unknown,
-% \c!ken=\unknown,
-% \c!van=,
-% \c!aan=,
-% \c!ref=,
-% #1]%
-% \bgroup % moet anders, hoort niet in 01b
-% \assigntranslation[nl=referentie,en=reference,du=Referenz,sp=referencia]\to\@@@kmref
-% \assigntranslation[nl=van,en=from,du=Von,sp=de]\to\@@@kmvan
-% \assigntranslation[nl=aan,en=to,du=An,sp=a]\to\@@@kmaan
-% \assigntranslation[nl=betreft,en=concerns,du=Betreff,sp=]\to\@@@kmbet
-% \assigntranslation[nl=datum,en=date,du=Datum,sp=fecha]\to\@@@kmdat
-% \assigntranslation[nl=kenmerk,en=mark,du=Kennzeichen,sp=]\to\@@@kmken
-% \doifelsenothing{\@@kmvan\@@kmaan}
-% {\def\@@dokmvanaan{}}
-% {\def\@@dokmvanaan{&\omit\cr}}%
-% \doifelsenothing{\@@kmvan}
-% {\def\@@dokmvan{}}
-% {\def\@@dokmvan{\@@@kmvan&\@@kmvan\cr}}%
-% \doifelsenothing{\@@kmaan}
-% {\def\@@dokmaan{}}
-% {\def\@@dokmaan{\@@@kmaan&\@@kmaan\cr}}%
-% \doifelsenothing{\@@kmref}
-% {\def\@@dokmref{}}
-% {\def\@@dokmref{&\omit\cr\@@@kmref&\@@kmref\cr}}%
-% \witruimte
-% \tabskip=\!!zeropoint
-% \noindent\halign
-% \bgroup
-% ##~&:~##\hfil\cr
-% \@@@kmbet&\@@kmbet\cr
-% \@@@kmdat&\@@kmdat\cr
-% \@@@kmken&\kap{\@@kmken}\cr
-% \@@dokmvanaan
-% \@@dokmvan
-% \@@dokmaan
-% \@@dokmref
-% \egroup
-% \egroup}
-
\def\dokenmerk[#1]%
{\geenhoofdenvoetregels
\bgroup
@@ -1371,15 +1080,15 @@
\assigntranslation[nl=datum, en=date, du=Datum, sp=fecha]\to\@@@kmdat
\assigntranslation[nl=kenmerk, en=mark, du=Kennzeichen,sp=]\to\@@@kmken
%
- \definetabulate[\s!dummy][|le|p|]
+ \definetabulate[\s!dummy][|l|p|]
\startdummy
- \NC\@@@kmbet\NC\@@kmbet\NC\NR
- \NC\@@@kmdat\NC\@@kmdat\NC\NR
- \NC\@@@kmken\NC\kap{\@@kmken}\NC\NR
+ \NC\@@@kmbet\EQ\@@kmbet\NC\NR
+ \NC\@@@kmdat\EQ\@@kmdat\NC\NR
+ \NC\@@@kmken\EQ\kap{\@@kmken}\NC\NR
\doifsomething{\@@kmvan\@@kmaan}{\NC\NC\NC\NR}%
- \doifsomething{\@@kmvan}{\NC\@@@kmvan\NC\@@kmvan\NC\NR}%
- \doifsomething{\@@kmaan}{\NC\@@@kmaan\NC\@@kmaan\NC\NR}%
- \doifsomething{\@@kmref}{\NC\NC\NC\NR\NC\@@@kmref\NC\@@kmref\NC\NR}%
+ \doifsomething{\@@kmvan}{\NC\@@@kmvan\EQ\@@kmvan\NC\NR}%
+ \doifsomething{\@@kmaan}{\NC\@@@kmaan\EQ\@@kmaan\NC\NR}%
+ \doifsomething{\@@kmref}{\NC\NC\NC\NR\NC\@@@kmref\EQ\@@kmref\NC\NR}%
\stopdummy
\egroup}
@@ -1439,41 +1148,9 @@
\c!tussen={\blanko[\v!middel]},
\c!na=\blanko]
-\steltekstlijnenin
- [\c!plaats=\v!links,
- \c!voor=\blanko,
- \c!na=\blanko,
- \c!tussen=,
- \c!breedte=2em,
- \c!letter=\v!vet,
- \c!kleur=]
-
-\stelinvullijnenin
- [\c!breedte=\v!passend,
- \c!afstand=1em,
- \c!voor=\blanko,
- \c!na=\blanko,
- \c!n=1,
- \c!scheider=,
- \c!letter=\v!normaal,
- \c!kleur=]
-
-\stelinvulregelsin
- [\c!breedte=3cm,
- \c!afstand=1em,
- \c!voor=\blanko,
- \c!na=\blanko]
-
\steltabin
[\c!plaats=\v!links]
-%\definieeralineas
-% [tabulatie]
-% [\c!n=3,
-% \c!voor=\blanko,
-% \c!na=\blanko,
-% \c!afstand=1em]
-
\stelpublicatiesin
[\c!nummeren=\v!ja,
\c!variant=\c!apa,
diff --git a/tex/context/base/core-01c.tex b/tex/context/base/main-003.tex
index a22e76427..989e6a792 100644
--- a/tex/context/base/core-01c.tex
+++ b/tex/context/base/main-003.tex
@@ -1,5 +1,5 @@
%D \module
-%D [ file=core-01c,
+%D [ file=main-003,
%D version=1997.03.31,
%D title=\CONTEXT\ Core Macros,
%D subtitle=1C (to be split),
@@ -11,7 +11,9 @@
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.
-\writestatus{loading}{Context Core Macros (c)}
+%D This module is still to be split and documented.
+
+\writestatus{loading}{Context Core Macros (3)}
\unprotect
@@ -272,67 +274,6 @@
\def\stelcombinatiesin%
{\dodoubleargument\getparameters[\??co]}
-% \long\def\dodostartcombinatie[#1*#2*#3]%
-% {\stelfractiesin
-% [\c!n=\v!passend,
-% \c!afstand=\@@coafstand]%
-% \global\horcombinatie=#1\relax
-% \global\totcombinatie=#2\relax
-% \multiply\totcombinatie by \horcombinatie
-% \long\def\docombinatie##1##2##3% % ##3 gobbles spaces.
-% {\vbox
-% {\setbox0=\vbox
-% {\hbox{##1}}%
-% \doifemptyelse{##2} % Dit moet per se
-% {\setbox2=\box\voidb@x} % \doifempty zijn!
-% {\setbox2=\vtop
-% {\hsize\wd0
-% \forgetall
-% \steluitlijnenin[\@@couitlijnen]% % \raggedcenter
-% \begstrut##2\endstrut}}%
-% \vbox
-% {\forgetall % \stelwitruimtein[\v!geen]%
-% \box0\relax
-% \ifvoid2\relax
-% \else
-% \@@cotussen
-% \nointerlineskip % recently added
-% \box2\relax
-% \fi}}%
-% \ifnum\totcombinatie>1\relax
-% \global\advance\totcombinatie by -1\relax
-% \global\advance\horcombinatie by -1\relax
-% \ifnum\horcombinatie=0\relax
-% \def\next%
-% {\cr
-% \noalign
-% {\forgetall %\stelwitruimtein[\v!geen]%
-% \nointerlineskip
-% \@@cona
-% \@@covoor
-% \vss
-% \nointerlineskip}%
-% \global\horcombinatie=#1\relax
-% \docombinatie{##3}}%
-% \else
-% \def\next%
-% {&&&\hskip\@@coafstand
-% &\docombinatie{##3}}%
-% \fi
-% \else
-% \def\next%
-% {\cr
-% \egroup
-% ##3}%
-% \fi
-% \next}%
-% \tabskip=\!!zeropoint
-% \doifelse{\@@cobreedte}{\v!passend}
-% {\halign}
-% {\halign to \@@cobreedte}%
-% \bgroup&\hfil##\hfil&\tabskip\!!zeropoint \!!plus 1fill##\cr
-% \docombinatie}
-
\long\def\dodostartcombinatie[#1*#2*#3]%
{\stelfractiesin
[\c!n=\v!passend,
@@ -348,13 +289,34 @@
\bgroup&\hfil##\hfil&\tabskip\!!zeropoint \!!plus 1fill##\cr
\docombinatie}
-\def\docombinatie%
- {\dowithnextbox
+% \def\docombinatie%
+% {\dowithnextbox
+% {\setbox0=\box\nextbox
+% \dowithnextbox
+% {\setbox2=\box\nextbox
+% \dodocombinatie}
+% \hbox}
+% \hbox}
+
+\def\docombinatie% we want to add struts but still ignore an empty box
+ {\dowithnextbox%
{\setbox0=\box\nextbox
\dowithnextbox
{\setbox2=\box\nextbox
\dodocombinatie}
- \hbox}
+ \vtop\bgroup
+ \def\next%
+ {\futurelet\nexttoken\nextnext}
+ \def\nextnext%
+ {\ifx\nexttoken\egroup \else % the next box is empty
+ \hsize\wd0
+ \steluitlijnenin[\@@couitlijnen]
+ \bgroup
+ \aftergroup\endstrut
+ \aftergroup\egroup
+ \begstrut
+ \fi}
+ \afterassignment\next\let\nexttoken=}
\hbox}
\def\dodocombinatie%
@@ -364,11 +326,12 @@
{\copy0}%
\ifdim\ht2>\!!zeropoint\relax % beter dan \wd2, nu \strut mogelijk
\@@cotussen
- \vtop
- {\nointerlineskip % recently added
- \hsize\wd0
- \steluitlijnenin[\@@couitlijnen]% % \raggedcenter
- \begstrut\unhbox2\endstrut}%
+ %\vtop
+ % {\nointerlineskip % recently added
+ % \hsize\wd0
+ % \steluitlijnenin[\@@couitlijnen]% % \raggedcenter
+ % \begstrut\unhbox2\endstrut}%
+ \box2
\fi}%
\ifnum\totcombinatie>1
\global\advance\totcombinatie by -1
@@ -413,15 +376,6 @@
{\egroup
\egroup}
-%\def\plaatsnaastelkaar%
-% {\bgroup
-% \dowithnextbox
-% {\dowithnextbox
-% {\valign{\vss########\vss\cr\box0\cr\box\nextbox\cr}%
-% \egroup}
-% \vbox}
-% \vbox}
-
\def\plaatsondernaastelkaar#1#2%
{\bgroup
\def\doplaatsondernaastelkaar%
diff --git a/tex/context/base/mult-com.tex b/tex/context/base/mult-com.tex
index e2664de00..3df62fa62 100644
--- a/tex/context/base/mult-com.tex
+++ b/tex/context/base/mult-com.tex
@@ -8,8 +8,8 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See licen-en.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See licen-en.pdf for
+%C details.
%D In this module we define the commands. A more than quick
%D glance at this list leans that it's incomplete. This is due
@@ -20,8 +20,8 @@
%D the words left of the \type{:} are in dutch. In the near
%D future english will be the core language.}
%D
-%D The German translations were provided by Tobias Burnus,
-%D and the Czech ones by Tom Hudec.
+%D The German translations were provided by Tobias Burnus,
+%D and the Czech ones by Tom Hudec.
\writestatus{loading}{Context Multilingual Macros / Commands}
@@ -82,7 +82,7 @@
stopcoding: stopcodering stopcoding
stopkodierung stopkodovani
definebodyfontenvironment: definieerkorpsomgeving definebodyfontenvironment
- definierefliesstextumgebung definujzakladnifont
+ definierefliesstextumgebung definebodyfontenvironment % TOM, was duplicate
setupbodyfontenvironment: stelkorpsomgevingin setupbodyfontenvironment
stellefliesstextumgebungein nastavprostredizakladnihofont
definebodyfont: definieerkorps definebodyfont
@@ -95,6 +95,8 @@
definierestil definujstyl
definefontstyle: definieerfontstijl definefontstyle
definiereschriftstil definujstylfontu
+ setupstrut: stelstrutin setupstrut
+ setupstrut setupstrut
setuptype: steltypein setuptype
stelletipein nastavtype
@@ -187,7 +189,7 @@
convertnumber: converteernummer convertnumber
konvertierezahl konvertujcislo
- setupcapitals: stelkapitalenin setupcapitals
+ setupcapitals: stelkapitalenin setupcapitals
stelleversalienein nastavverzalky
kap: kap kap
@@ -232,7 +234,7 @@
showbodyfont: toonkorps showbodyfont
zeigefliesstext ukazzakladnifont
showbodyfontenvironment: toonkorpsomgeving showbodyfontenvironment
- zeigefliesstextumgebung ukazpostredizakladnihofont
+ zeigefliesstextumgebung ukazpostredizakladnihofontu
headtext: koptekst headtext
ueberschrifttext texthlavicky
@@ -269,7 +271,9 @@
inframed: inlijnd inframed
imumriss zaramovani
mframed: wilijnd maframed
- maframed mazaramovani
+ maumrise maoramovani
+ inmframed: inwilijnd inmaframed
+ immaumrise mazaramovani
setupframed: stelomlijndin setupframed
stelleumrahmtein nastavoramovani
@@ -306,7 +310,6 @@
defineoverlay: definieeroverlay defineoverlay
definiereoverlay definujprekryv
-
background: achtergrond background
hintergrund pozadi
startbackground: startachtergrond startbackground
@@ -351,9 +354,6 @@
marginaltitel marginalninadpis
margewoord: margewoord marginword
marginalwort marginalnislovo
-
- % dit wordt:
-
margetekst: margetekst margintext
marginaltext marginalnitext
@@ -396,7 +396,7 @@
korrigierezwischenraum korekcebilehomista
fixedspaces: vastespaties fixedspaces
festesspatium tvrdemezery
- fixedspace: vastespatie fixedspace
+ fixedspace: vastespatie fixedspace
festesspatium tvrdamezera
nospace: geenspatie nospace
keinspatium zadnamezera
@@ -439,12 +439,14 @@
startzeilen startradky
stopregels: stopregels stoplines
stopzeilen stopradky
+ stelparagraafnummerenin: stelparagraafnummerenin setupparagraphnumbering
+ stelleabsatznummerierungein nastavcislovaniodstavcu
stelregelnummerenin: stelregelnummerenin setuplinenumbering
- stellezeilennummerierungein nastavcislovaniradku
+ stellezeilennumerierungein nastavcislovaniradku
startregelnummeren: startregelnummeren startlinenumbering
- startzeilennummerierung startcislovaniradku
+ startzeilennumerierung startcislovaniradku
stopregelnummeren: stopregelnummeren stoplinenumbering
- stopzeilennummerierung stopcislovaniradku
+ stopzeilennumerierung stopcislovaniradku
startregel: startregel startline
startzeile startradek
stopregel: stopregel stopline
@@ -654,7 +656,6 @@
stelarrangerenin: stelarrangerenin setuparranging
stelleanordnenein nastavusporadani
-
versie: versie version
version verze
@@ -672,8 +673,8 @@
stelleinteraktionsmenueein nastavinterakcnimenu
definieerinteractiemenu: definieerinteractiemenu defineinteractionmenu
definiereinteraktionsmenue definujinterakcnimenu
-% startinteractiemenu: startinteractiemenu startinteractionmenu
-% startinteraktionsmenue startinterakcnimenu
+% startinteractiemenu: startinteractiemenu startinteractionmenu
+% startinteraktionsmenue startinterakcnimenu
blokkeerinteractiemenu: blokkeerinteractiemenu disableinteractionmenu
inaktiviereinteraktionsmenue zablokujinterakcnimenu
interactiebuttons: interactiebuttons interactionbuttons
@@ -771,7 +772,7 @@
bepaallijstkenmerken: bepaallijstkenmerken determinelistcharacteristics
bestimmelistencharakeristika stanovcharakteristickuseznamu
- lijstlengte: lijstlengte listlength
+ lijstlengte: lijstlengte listlength
listenlaenge delkaseznamu
lijstbreedte: lijstbreedte listwidth
listenbreite sirkaseznamu
@@ -781,7 +782,7 @@
geenlijst: geenlijst nolist
keineliste zadnyseznam
-% zal vervallen
+% zal vervallen
definieerreferentielijst: definieerreferentielijst definereferencelist
definierereferenzliste definujseznamodkazu
@@ -947,7 +948,7 @@
% marking: markeer marking
% beschriftung oznacujici
remark: toelichting remark
- bemerkung poznamka
+ bemerkung remark % other word than poznamka/note, a commenting note
colorbar: kleurenbalk colorbar
farbbalken barevnalista
@@ -978,18 +979,20 @@
referenz odkaz
definereference: definieerreferentie definereference
definierereferenz definujodkaz
+ definereferenceformat: definieerreferentieformaat definereferenceformat
+ definierereferenzformat definujformatodkazu
useJSscripts: gebruikJSscripts useJSscripts
verwendeJSscript uzijJSscripts
uit: uit from
- von z
+ von from % z
in: in in
- in v
+ in in % v
op: op at
- bei v
+ bei at % v
over: over about
- euber o
+ ueber about % o
naar: naar goto
zu jdina
atpage: oppagina atpage
@@ -997,23 +1000,28 @@
somewhere: ergens somewhere
irgendwo nekde
ref: ref ref
- ref odkaz
+ ref odk % short
naarbox: naarbox gotobox
zurbox jdinabox
naarpagina: naarpagina gotopage
zurseite jdinastranu
-% zurseite % - old but forgotten
-% startformule: startformule startformula
-% startformel startrovnice
-% stopformule: stopformule stopformula
-% stopformel stoprovnice
+% startformule: startformule startformula
+% startformel startrovnice
+% stopformule: stopformule stopformula
+% stopformel stoprovnice
plaatsformule: plaatsformule placeformula
platziereformel umistirovnici
plaatssubformule: plaatssubformule placesubformula
platziereunterformel umistipodrovnici
stelformulesin: stelformulesin setupformulae
stelleformelnein nastavrovnice
+ formulenummer: formulenummer formulanumber
+ formelnummer cislorovnice
+
+ subformulenummer: subformulenummer subformulanumber
+ unterformelnummer cislopodrovnice
+
% startgegeven: startgegeven startfact
% startgegeben startfakt
% stopgegeven: stopgegeven stopfact
@@ -1022,9 +1030,9 @@
% startlegende startlegenda
% stoplegenda: stoplegenda stoplegend
% stoplegende stoplegenda
- leg: leg leg
+ leg: leg leg
leg leg
- geg: geg fact
+ geg: geg fact
geg fakt
mathematics: wiskunde mathematics
@@ -1124,6 +1132,9 @@
stopopmaak: stopopmaak stopmakeup
stopumbruch stopuprava
+ useexternalsoundtrack: gebruikexterngeluidsfragment useexternalsoundtrack
+ verwendeexternestonstueck uzijexternizvuk
+
gebruikexternefile: gebruikexternefile useexternalfile
verwendeexternedatei uzijexternisoubor
gebruikexternefiles: gebruikexternefiles useexternalfiles
@@ -1134,11 +1145,11 @@
kenmerkdatum: kenmerkdatum referraldate
verweisdatum odkaznadatum
- hoog: hoog high
+ high: hoog high
hoch vysoky
- laho: laho lohi
+ lohi: laho lohi
hoti nivy
- laag: laag low
+ low: laag low
tief nizky
% startuitstellen: startuitstellen startpostponing
@@ -1212,8 +1223,8 @@
setupsystem: stelsysteemin setupsystem
stellesystemein nastavsystem
- usepath: gebruikgebied usepath
- benutzepfad uzijcestu
+ usepath: gebruikgebied usedirectory
+ benutzeverzeichnis uzijcestu % TOBIAS
definieeralineas: definieeralineas defineparagraphs
definiereabsaetze definujodstavce
@@ -1253,27 +1264,61 @@
tooltip: suggestie tooltip
tooltip bublinkovanapoveda
fillinfield: invulveld fillinfield
- ausfuellfeld vyplnovepole % or vyplnenepole ?
+ ausfuellfeld vyplnovepole
definefieldstack: definieerveldstapel definefieldstack
definierefeldstapel definujzasobnikpoli
fieldstack: veldstapel fieldstack
feldstapel zasobnikpoli
- setupclipping: stelclipin setupclipping
- stelleausschnittein setupclipping % TOM
- clip: clip clip
- ausschnitt clip % TOM
+ setupclipping: stelclipin setupclipping
+ stelleausschnittein nastavorez
+ clip: clip clip
+ ausschnitt orez
- placelegend: plaatslegenda placelegend
- platzierelegende placelegend % TOM
+ placelegend: plaatslegenda placelegend
+ platzierelegende umistilegendu
setuplegend: stellegendain setuplegend
- stellelegendeein setuplegend % TOM
-
- setuppagecomment: stelpaginacommentaarin setuppagecomment
- setuppagecomment setuppagecomment % TOBIAS % TOM
+ stellelegendeein nastavlegendu
+
+ setuppagecomment: stelpaginacommentaarin setuppagecomment
+ stelleseitenkommentarein nastavkomentarstrany
+
+ setupstrut: stelstrutin setupstrut
+ setupstrut setupstrut
+
+ definerule: definieerlijn definerule
+ definerule definerule
+ placerule: plaatslijn placerule
+ placerule placerule
+ setuprule: stellijnin setuprule
+ setuprule setuprule
+
+ definetextvariable: definieertekstvariabele definetextvariable
+ definetextvariable definetextvariable
+ setuptextvariable: steltekstvariabelein setuptextvariable
+ setuptextvariable setuptextvariable
+ settextvariable: kentekstvariabeletoe settextvariable
+ settextvariable settextvariable
+ placetextvariable: plaatstekstvariabele placetextvariable
+ placetextvariable placetextvariable
+ textvariable: tekstvariabele textvariable
+ textvariable textvariable
+
+ definetextposition: definieertekstpositie definetextposition
+ definetextposition definetextposition
+ setuptextposition: steltekstpositiein setuptextposition
+ setuptextposition setuptextposition
+ positiontext: positioneertekst positiontext
+ positiontext positiontext
+ definerawfont: definerawfont definerawfont
+ definerawfont definerawfont
+ switchtorawfont: switchtorawfont switchtorawfont
+ switchtorawfont switchtorawfont
\stopcommands
+% ^ ^ ^ nadenken over \settextvariable vs \setuptextvariable in nl
+
%D \stopcompressdefinitions
%D There are a lot of variables that users can use in setups
diff --git a/tex/context/base/mult-con.tex b/tex/context/base/mult-con.tex
index 03b370db8..765011727 100644
--- a/tex/context/base/mult-con.tex
+++ b/tex/context/base/mult-con.tex
@@ -75,7 +75,7 @@
\startvariables dutch english german czech
- oppagina: oppagina atpage aufseite nastrane
+ oppagina: oppagina atpage aufseite nastrance
hierboven: hierboven hencefore vorher vyse
hieronder: hieronder hereafter nachher nize
@@ -89,6 +89,8 @@
%D \startcompressdefinitions
+% to be added: sub subsub subsubsub subsubsubsub
+
\startvariables dutch english german
czech
@@ -107,8 +109,8 @@
titul
margetitel: margetitel margintitle marginaltitel
- margetitel % TOM
-
+ titulmarginalie
+
inhoud: inhoud content inhalt
obsah
inhouden: inhouden contents inhalte
@@ -275,6 +277,8 @@
predel
afstand: afstand distance abstand
vzdalenost
+ alinea: alinea paragraph absatz
+ odstavec
assenstelsel: assenstelsel axis achsen
osa
auteur: auteur author autor
@@ -291,6 +295,8 @@
prekazka
blokwijze: blokwijze blockway blockauf
dobloku
+ bodemwit: bodemwit bottomspace bottomspace
+ bottomspace
boven: boven top oben
vrsek
bovenafstand: bovenafstand topdistance obenabstand
@@ -315,6 +321,10 @@
kontrastnibarva
conversie: conversie conversion konversion
konverze
+ kopconversie: kopconversie headconversion headconversion
+ konverzehlavicky % TOBIAS
+ koplabel: koplabel headlabel headlabel
+ popisekhlavicky % TOBIAS
criterium: criterium criterium kriterium
kriterium
datum: datum date datum
@@ -330,7 +340,7 @@
doorgaan: doorgaan continue fortsetzen
pokracovat
dubbelzijdig: dubbelzijdig doublesided doppelseitig
- dvoustranny
+ oboustranne
dummy: dummy dummy dummy
dummy
eenheid: eenheid unit einheit
@@ -344,7 +354,7 @@
factor: factor factor faktor
faktor
converteerfile: converteerfile convertfile konvertieredatei
- converteerfile % TOM
+ konverzesouboru
file: file file datei
soubor
formaat: formaat size groesse
@@ -357,11 +367,12 @@
adresar
grid: grid grid gritter
mrizka
- groot: groot big gross velky
+ groot: groot big gross
+ velky
haal: haal get hole
ziskat
hang: hang hang haengend
- viset
+ zaveseni
herhaal: herhaal repeat wiederholen
opakovat
hfactor: hfactor hfactor hfaktor
@@ -409,7 +420,11 @@
kantlijn: kantlijn marginedge marginalkante
textovahrana
kantlijntekst: kantlijntekst marginedgetext marginalkantetext
- textmarginalnihookraje
+ textmarginalnihookraje
+ karakteruitlijnen: karakteruitlijnen aligncharacter aligncharacter
+ aligncharacter % TOBIAS / TOM
+ uitlijnkarakter: uitlijnkarakter alignmentcharacter alignmentcharacter
+ alignmentcharacter % TOBIAS / TOM
klein: klein small klein
male
kleur: kleur color farbe
@@ -419,19 +434,19 @@
kolomafstand: kolomafstand columndistance spaltenabstand
vzdalenostsloupcu
kopkleur: kopkleur headcolor kopffarbe
- barvahlavy
+ barvahlavicky
kopletter: kopletter headstyle kopfstil
- stylhlavy
+ stylhlavicky
kopna: kopna afterhead nachkopf
- pohlave
+ pohlavicce
kopoffset: kopoffset veroffset kopfoffset
- offsethlavy
+ offsethlavicky
koppeling: koppeling coupling verknuepfung
propojeni
koppelwijze: koppelwijze couplingway verkopplungsart
zpusobpropojeni
kopvoor: kopvoor beforehead vorkopf
- predhlavou
+ predhlavickou
kopwit: kopwit topspace kopfspatium
svrchnimezera
korps: korps bodyfont fliesstext
@@ -477,13 +492,13 @@
logos: logos logos logos
loga
lokaal: lokaal local lokal
- lokalni
+ lokalne
marge: marge margin marginalie
marginalie
margeafstand: margeafstand margindistance marginalabstand
vzdalenostokraje
margetekst: margetekst margintext marginaltext
- margetekst % TOM: must be unique
+ textmarginalie
markering: markering marking beschriftung
znaceni
markleur: markleur marcolor beschrfarbe
@@ -549,21 +564,21 @@
onevenmarge: onevenmarge oddmargin ungeraderand
lichyokraj
op: op at bei
- op % TOM: not 'na', since that's already taken by aan:
+ u % not 'na', since that's already taken by 'aan'
optie: optie option option
volba
pagina: pagina page seite
- strana
+ stranka
paginacommando: paginacommando pagecommand seitenbefehl
strankovyprikaz
paginakleur: paginakleur pagecolor seitenfarbe
- barvastrany
+ barvastranky
paginaletter: paginaletter pagestyle seitenstil
- stylstrany
+ stylstranky
paginanummer: paginanummer pagenumber seitennummer
- cislostrany
+ cislostranky
paginaovergangen: paginaovergangen pageboundaries seitenbegrenzung
- hranicestrany
+ hranicestranky
palet: palet palet palette
paleta
papier: papier paper papier
@@ -573,9 +588,9 @@
plaatsafsluiter: plaatsafsluiter placestopper setzetrenner
predelmista
plaatsen: plaatsen place platziere
- plaatsen % TOM: must be unique, 'to place' or 'place it'
+ umistit
plaatskop: plaatskop placehead setzekopf
- hlavamista
+ umistihlavicku
prefix: prefix prefix prefix
prefix
preset: preset preset voreinstellung
@@ -633,7 +648,7 @@
rugwit: rugwit backspace rumpfspatium
zpetnamezera
richting: richting direction richtung
- richting % TOM
+ smer
schaal: schaal scale format
meritko
scheider: scheider separator seperator
@@ -646,6 +661,8 @@
oddil
sectienummer: sectienummer sectionnumber abschnittsnummer
cislooddilu
+ snijwit: snijwit cutspace cutspace
+ cutspace
soort: soort family familie
rodina
spatie: spatie space spatium
@@ -689,6 +706,8 @@
znak
tekst: tekst text text
text
+ tekstbreedte: tekstbreedte textwidth textbreite
+ sirkatextu
tekstcommando: tekstcommando textcommand textbefehl
textovyprikaz
tekstformaat: tekstformaat textsize textgroesse
@@ -710,7 +729,7 @@
tussen: tussen inbetween zwischen
mezi
type: type type typ
- type
+ typ
uitlijnen: uitlijnen align ausrichtung
zarovnani
urlspatie: urlspatie urlspace urlspatium
@@ -748,11 +767,11 @@
vorigenummer: vorigenummer previousnumber vorigenummer
predchozicislo
wachttijd: wachttijd delay wartezeit
- wachttijd % TOM
+ prodleva
wijze: wijze way art
zpusob
willekeur: willekeur random zufaellig
- willekeur % TOM
+ nahodne
wit: wit white weiss
bily
xfactor: xfactor xfactor xfaktor
@@ -776,9 +795,9 @@
ystap: ystap ystep yschritt
ykrok
zelfdepagina: zelfdepagina samepage selbeseite
- stejnastrana
+ stejnastranka
zij: zij side objektabstand
- zij % TOM: was strana must be unique, see pagina:
+ strana
veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrundfarbe
barvapozadipole
@@ -793,10 +812,10 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
zavriakci
openpaginaactie: openpaginaactie openpageaction openpageaction
- openpageaction % TOBIAS % TOM
+ akceotevrenistranky % TOBIAS
sluitpaginaactie: sluitpaginaactie closepageaction closepageaction
- closepageaction % TOBIAS % TOM
-
+ akcezavrenistranky % TOBIAS
+
klikin: klikin clickin klickin
klikuvnitr
klikuit: klikuit clickout klickaus
@@ -815,21 +834,21 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
pocitat
klik: klik click klick
- klik % TOM
+ klik
vcommando: vcommando vcommand vbefehl
- vcommando % TOM
+ vprikaz
icommando: icommando icommand ibefehl
- icommando % TOM
+ iprikaz
ccommando: ccommando ccommand cbefehl
- ccommando % TOM
+ cprikaz
\stopconstants
%D \stopcompressdefinitions
%D The keywords of values are very language specific and
-%D therefore variables for the systems. This list shows soem
+%D therefore variables for the systems. This list shows some
%D overlap with the previous one.
%D \startcompressdefinitions
@@ -838,7 +857,8 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
czech
aan: aan on an
- na
+ zap % opposite of off
+
aanelkaar: aanelkaar serried kleinerabstand
semknuto
aansluitend: aansluitend joinedup keinabstand
@@ -853,8 +873,8 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
akce
afsluiter: afsluiter stopper trenner
predel
- alinea: alinea paragraph absaetze
- odstavce % TOBIAS % TOM -> singular
+ alinea: alinea paragraph absatz
+ odstavec
alles: alles all alles
vse
altijd: altijd always immer
@@ -872,7 +892,7 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
boven: boven top oben
vrsek
breed: breed wide breit
- siroky
+ siroce
breedte: breedte width breite
sirka
buffer: buffer buffer puffer
@@ -898,7 +918,7 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
definitief: definitief final endfassung
finalni
diepte: diepte depth tiefe
- hloubka
+ podlehloubky % ? hloubka
dubbelzijdig: dubbelzijdig doublesided doppelseitig
dvoustranny
eerste: eerste first erste
@@ -906,7 +926,7 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
elk: elk each jede
kazdy
enkelzijdig: enkelzijdig singlesided einzelseitig
- jednostranny
+ jednostranne
ergens: ergens somewhere irgendwo
nekde
nergens: nergens nowhere nirgens
@@ -918,7 +938,7 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
file: file file datei
soubor
flexibel: flexibel flexible flexibel
- prizpusobivy
+ prizpusobive
forceer: forceer force zwinge
sila
gebruikt: gebruikt used verwende
@@ -934,13 +954,13 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
gespiegeld: gespiegeld mirrored gespiegelt
zrcadleno
globaal: globaal global global
- globalni
+ globalne
grid: grid grid gritter
mrizka
groot: groot big gross
velky
grotevoorkeur: grotevoorkeur bigpreference grosszuegig
- velkaprednost
+ vysokapriorita
grijs: grijs gray grau
seda
halveregel: halveregel halfline halbezeile
@@ -962,7 +982,7 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
hoogte: hoogte height hoehe
vyska
horizontaal: horizontaal horizontal horizontal
- horizontalni
+ horizontalne
huidige: huidige current aktuell
aktualni
italic: italic italic italic
@@ -973,6 +993,8 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
naokraji
inrechter: inrechter inright imrechten
vpravo
+ interactie: interactie interaction interaktion
+ interakce
intekst: intekst intext imtext
dotextu
intro: intro intro intro
@@ -1014,11 +1036,11 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
kleinvetitalic: kleinvetitalic smallbolditalic kleinfettitalic
maletucnekurzivni
kleur: kleur color farbe
- barva
+ barevne
kolommen: kolommen columns spalten
sloupce
kop: kop head kopf
- hlava
+ hlavicka
laag: laag low tief
nizko
laatste: laatste last letzte
@@ -1026,7 +1048,7 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
label: label label label
popisek
lang: lang tall lang
- vysoky
+ vysoko
leeg: leeg empty leer
prazdne
Letter: Letter Character Buchstabe
@@ -1041,18 +1063,20 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
nasirku
lijn: lijn rule linie
linka
+ lijst: lijst list liste
+ seznam
linkermarge: linkermarge leftmargin linkerrand
levyokraj
linkerpagina: linkerpagina leftpage linkerseite
- levastrana
+ levastranka
linkerrand: linkerrand leftedge linkekante
levahrana
links: links left links
vlevo
lokaal: lokaal local lokal
- lokalni
+ lokalne
nieuw: nieuw new neu
- nieuw % TOM
+ novy
MAAND: MAAND MONTH MONAT
MESIC
maand: maand month monat
@@ -1068,13 +1092,13 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
middel: middel medium mittel
stredni
midden: midden middle mittig
- stredni
+ nastred
na: na after nach
po
naam: naam name name
jmeno
naast: naast opposite gegenueber
- opacny
+ naproti % ? opacna
nee: nee no nein
ne
negatief: negatief negative negativ
@@ -1098,7 +1122,7 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
opelkaar: opelkaar packed gepackt
zhustene
vanelkaar: vanelkaar unpacked ungepackt
- vanelkaar % TOM
+ rozbalene
opmaak: opmaak markup umbruch
zlom
opmarge: opmarge atmargin amrand
@@ -1106,17 +1130,15 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
overlay: overlay overlay overlay
prekryv
pagina: pagina page seite
- strana
+ stranka
paginanummer: paginanummer pagenumber seitennummer
- cislostrany
+ cislostranky
papier: papier paper papier
papir
scherm: scherm display bildschirm
obrazovka
passend: passend fit passend
- prizpusobivy
- per: per by pro
- skrz
+ prizpusobive
postscript: postscript postscript postscript
postscript
preview: preview preview vorschau
@@ -1136,13 +1158,15 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
rechtermarge: rechtermarge rightmargin rechterrand
pravyokraj
rechterpagina: rechterpagina rightpage rechterseite
- pravastrana
+ pravastranka
rechterrand: rechterrand rightedge rechterkante
pravahrana
rechts: rechts right rechts
vpravo
regel: regel line zeile
radek
+ register: register register register
+ rejstrik
relatief: relatief relative relativ
relativni
reset: reset reset zuruecksetzten
@@ -1156,11 +1180,11 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
Grieks: Grieks Greek Griechisch
Recky
rond: rond round rund
- kolo
+ zaobleny
roteer: roteer rotate drehe
otoc
rek: rek stretch strecken
- rek % TOM
+ natahnout
ruim: ruim broad breit
siroky
schuin: schuin slanted geneigt
@@ -1202,7 +1226,7 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
type: type type tippen
type
uit: uit off aus
- pryc
+ vyp % opposite of on
url: url url url
url
URL: URL URL URL
@@ -1230,11 +1254,11 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
voor: voor before vor
pred
voorgrond: voorgrond foreground vordergrund
- voorgrond % TOM
+ popredi
voorkeur: voorkeur preference einstellung
nastaveni
voorlopig: voorlopig temporary temporaer
- docasny
+ docasne
vooruit: vooruit forward vorwaerts
vpred
vorige: vorige previous vorig
@@ -1263,33 +1287,33 @@ veldachtergrondkleur: veldachtergrondkleur fieldbackgroundcolor feldhintergrund
smallcaps: smallcaps smallcaps smallcaps
maleverzalky
WOORD: WOORD WORD WORT
- WOORD % TOM
+ SLOVO
eerstepagina: eerstepagina firstpage ersteseite
- prvnistrana
+ prvnistranka
vorigepagina: vorigepagina previouspage vorigeseite
- predchozistrana
+ predchozistranka
volgendepagina: volgendepagina nextpage folgendeseite
- dalsistrana
+ dalsistranka
laatstepagina: laatstepagina lastpage letzteseite
- poslednistrana
+ poslednistranka
eerstesubpagina: eerstesubpagina firstsubpage ersteunterseite
- prvnipodstrana
+ prvnipodstranka
vorigesubpagina: vorigesubpagina previoussubpage vorigeunterseite
- predchozipodstrana
+ predchozipodstranka
volgendesubpagina: volgendesubpagina nextsubpage folgendeunterseite
- dalsipodstrana
+ dalsipodstranka
laatstesubpagina: laatstesubpagina lastsubpage letzteunterseite
- poslaednipodstrana
+ poslaednipodstranka
volgendeevenpagina: volgendeevenpagina nextevenpage naechstegeradeseite
- volgendeevenpagina % TOM
+ dalsisudastranka
volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungeradeseite
- volgendeonevenpagina % TOM
+ dalsilichastranka
vorigeevenpagina: vorigeevenpagina previousevenpage vorigegeradeseite
- vorigeevenpagina % TOM
+ predchozisudastranka
vorigeonevenpagina: vorigeonevenpagina previousoddpage vorigeungeradeseite
- vorigeonevenpagina % TOM
+ predchozilichastranka
alleenleesbaar: alleenleesbaar readonly nurlesbar
pouzeprocteni
@@ -1307,7 +1331,24 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
tisknutelne
bookmark: bookmark bookmark bookmark
- bookmark
+ zalozka
+
+\stopvariables
+
+%D \stopcompressdefinitions
+
+%D Maybe it's better to make the next few variables into
+%D elements as well.
+
+%D \startcompressdefinitions
+
+\startvariables dutch english german
+ czech
+
+ conversie: conversie conversion konversion
+ konverze
+ per: per by pro
+ skrz
\stopvariables
@@ -1324,6 +1365,8 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
dy: dy
nx: nx
ny: ny
+ nr: nr
+ nc: nc
sx: sx
sy: sy
n: n
@@ -1403,6 +1446,8 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
oddil
register: register register register
rejstrik
+ interactie: interactie interaction interaktion
+ interakce
synoniem: synoniem synonym synonym
synonymum
synoniemen: synoniemen synonyms synonyme
@@ -1413,12 +1458,12 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
tridit
naam: naam name name
jmeno
- blok: blok block block
- blok
- blokken: blokken blocks bloecke
- bloky
- alinea: alinea paragraph absaetze
- odstavce % TOBIAS % TOM -> singular
+ blok: blok float gleitobjekt
+ plvouciobjekt
+ blokken: blokken floats gleitobjekte
+ plvouciobjekty
+ alinea: alinea paragraph absatz
+ odstavec
framedtext: kadertekst framedtext umrahmtertext
oramovanytext
@@ -1452,7 +1497,7 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
huidigelokale: huidigelokale currentlocal aktuelllokal
aktualnelokalni
in: in - ein
- v % TOM needed?
+ - % v, not really needed
instellingen: instellingen setups einstellungen
nastaveni
interactiemenu: interactiemenu interactionmenu interaktionsmenue
@@ -1468,11 +1513,11 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
lijstmet: lijstmet listof auflistenvon
seznam
lokale: lokale local lokal
- lokalni
+ lokalne
opmaak: opmaak makeup umbruch
zlom
plaats: plaats place platziere
- misto
+ umisti % better than 'misto'
reserveer: reserveer reserve reservieren
rezervovat
start: start start start
@@ -1516,10 +1561,10 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
legenda
helptext: helptekst helptext hilfetext
- helptekst % TOM
+ textnapovedy
pagecomment: paginacommentaar pagecomment pagecomment
- pagecomment % TOBIAS % TOM
+ komentarstranky % TOBIAS
\stopelements
@@ -1537,7 +1582,7 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
FirstPage: EerstePagina FirstPage ErsteSeite
PrvniStrana
PreviousPage: VorigePagina PreviousPage VorigeSeite
- PredchoziStrana
+ JdiNaStranku
NextPage: VolgendePagina NextPage FolgendeSeite
DalsiStrana
LastPage: LaatstePagina LastPage LetzteSeite
@@ -1574,6 +1619,15 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
ResumeMovie: HervatFilm ResumeMovie FortsetzenFilm
PokracovatVeFilmu
+ StartSound: StartGeluid StartSound StartSound
+ StartZvuk % TOBIAS
+ StopSound: StopFilm StopSound StopSound
+ StopZvuk % TOBIAS
+ PauseSound: PauzeerFilm PauseSound PauseSound
+ PauzaZvuk % TOBIAS
+ ResumeSound: HervatSound ResumeSound ResumeSound
+ PokracovatZvuk % TOBIAS
+
SaveForm: BewaarFormulier SaveForm SpeicheFormular
UlozitFormular
LoadForm: LaadFormulier LoadForm LadeFormular
@@ -1597,17 +1651,17 @@ volgendeonevenpagina: volgendeonevenpagina nextoddpage naechsteungerades
czech
New: Nieuw New Neu
- Nieuw % TOM
+ Novy
Balloon: Ballon Balloon Ballon
- Ballon % TOM
+ Bublinka
Addition: Toevoeging Addition Zusatz
- Toevoeging % TOM
+ Pridavek % Dodatek
Help: Help Help Hilfe
- Help % TOM
+ Napoveda
Paragraph: Paragraaf Paragraph Absatz
- Paragraaf % TOM
+ Odstavec
Key: Sleutel Key Schluessel
- Sleutel % TOM
+ Klic
\stopvariables
diff --git a/tex/context/base/mult-ini.tex b/tex/context/base/mult-ini.tex
index ffdd61f85..16e67b67f 100644
--- a/tex/context/base/mult-ini.tex
+++ b/tex/context/base/mult-ini.tex
@@ -436,7 +436,7 @@
\fi}
%D \macros
-%D {dosetvalue,dosetevalue,docopyvalue,doresetvalue} % dogetvalue
+%D {dosetvalue,dosetevalue,dosetgvalue,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
@@ -547,6 +547,16 @@
\@EA\edef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
\fi}
+\def\dosetgvalue#1#2#3%
+ {\let\c!internal!\c!internal!n
+ \@EA\ifx\csname\k!prefix!#2\endcsname\relax
+ \let\c!internal!\c!internal!y
+ \@EA\gdef\csname#1#2\endcsname{#3}%
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\gdef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
+ \fi}
+
\def\docopyvalue#1#2#3%
{\let\c!internal!\c!internal!n
\@EA\ifx\csname\k!prefix!#3\endcsname\relax
@@ -585,6 +595,16 @@
\@EA\edef\csname#1#2\endcsname{#3}%
\fi}
+\def\dosetgvalue#1#2#3%
+ {\let\c!internal!\c!internal!n
+ \ifcsname\k!prefix!#2\endcsname
+ \let\c!internal!\c!internal!y
+ \@EA\gdef\csname#1\csname\k!prefix!#2\endcsname\endcsname{#3}%
+ \else
+ \let\c!internal!\c!internal!y
+ \@EA\gdef\csname#1#2\endcsname{#3}%
+ \fi}
+
\def\docopyvalue#1#2#3%
{\let\c!internal!\c!internal!n
\ifcsname\k!prefix!#3\endcsname
@@ -1125,7 +1145,6 @@
%D \macros
%D {startelements}
-%D {}
%D
%D Due to the object oriented nature of \CONTEXT, we also need
%D to define the elements that are used to build commands:
diff --git a/tex/context/base/mult-sys.tex b/tex/context/base/mult-sys.tex
index 4203fda89..599d063c1 100644
--- a/tex/context/base/mult-sys.tex
+++ b/tex/context/base/mult-sys.tex
@@ -343,15 +343,16 @@
\definesystemvariable {ef} % ExternFiguur
\definesystemvariable {ep} % ExternfiguurPreset
\definesystemvariable {ex} % ExterneFiguren
+\definesystemvariable {ht} % HiddenText
\definesystemvariable {fd} % FielD
-\definesystemvariable {fg} % FiGuurmaten
\definesystemvariable {ff} % FontFile
+\definesystemvariable {fg} % FiGuurmaten
\definesystemvariable {fi} % FIle
\definesystemvariable {fl} % Floats
\definesystemvariable {fm} % ForMules
-\definesystemvariable {ft} % FonTs
\definesystemvariable {fp} % FilegroeP
\definesystemvariable {fs} % FileSynonym
+\definesystemvariable {ft} % FonTs
\definesystemvariable {ia} % Interactie
\definesystemvariable {ib} % InteractieBalk
\definesystemvariable {id} % Index
@@ -376,8 +377,8 @@
\definesystemvariable {kt} % KonTakten
\definesystemvariable {kw} % KontaktWaarde
\definesystemvariable {la} % LAnguage
-\definesystemvariable {lg} % taal (LanGuage)
\definesystemvariable {ld} % LegenDa
+\definesystemvariable {lg} % taal (LanGuage)
\definesystemvariable {li} % LIjst
\definesystemvariable {ln} % LijNen
\definesystemvariable {lo} % LOgos
@@ -400,6 +401,7 @@
\definesystemvariable {pc} % PageComment
\definesystemvariable {pf} % ProFiel
\definesystemvariable {pg} % KoppelPagina
+\definesystemvariable {ph} % ParagrapH
\definesystemvariable {pl} % PLaats
\definesystemvariable {pn} % PaginaNummer
\definesystemvariable {pp} % PaPier
@@ -416,6 +418,7 @@
\definesystemvariable {sa} % ScAle
\definesystemvariable {sb} % SectieBlok
\definesystemvariable {sc} % SCherm
+\definesystemvariable {sd} % SounD
\definesystemvariable {se} % SEctie
\definesystemvariable {si} % SplIt
\definesystemvariable {sk} % SectieKop
diff --git a/tex/context/base/ppchtex.tex b/tex/context/base/ppchtex.tex
index 4d7de633e..8e3bb50e9 100644
--- a/tex/context/base/ppchtex.tex
+++ b/tex/context/base/ppchtex.tex
@@ -485,7 +485,7 @@
\endpspicture
\or
\resetchemicalcoordinates
- \setbox2=\hbox{\getMPdrawing}%
+ \setbox2=\hbox{\MPshiftdrawingtrue\getMPdrawing}%
\wd2=\!!zeropoint\ht2=\!!zeropoint\dp2=\!!zeropoint
\put {\box2} at 0 0
\endpicture
@@ -524,7 +524,7 @@
\put {\box\chemicalsymbols} at 0 0 % elders
\ifMPdrawingdone
\resetchemicalcoordinates
- \setbox2=\hbox{\getMPdrawing}%
+ \setbox2=\hbox{\MPshiftdrawingtrue\getMPdrawing}%
\wd2=\!!zeropoint\ht2=\!!zeropoint\dp2=\!!zeropoint
\put {\box2} at 0 0 %
\fi
diff --git a/tex/context/base/s-abr-01.tex b/tex/context/base/s-abr-01.tex
index d11fd3633..870dee7a7 100644
--- a/tex/context/base/s-abr-01.tex
+++ b/tex/context/base/s-abr-01.tex
@@ -129,6 +129,8 @@
\logo [WDT] {wdt}
\logo [WWW] {www}
\logo [XML] {xml}
+\logo [XSL] {xsl}
+\logo [XSLT] {xslt}
\logo [XDVI] {Xdvi}
\logo [XINDY] {Xindy}
\logo [YandY] {y\&y}
diff --git a/tex/context/base/s-chi-00.tex b/tex/context/base/s-chi-00.tex
new file mode 100644
index 000000000..36c372c00
--- /dev/null
+++ b/tex/context/base/s-chi-00.tex
@@ -0,0 +1,47 @@
+%D \module
+%D [ file=s-chi-01,
+%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 / 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.
+
+\mainlanguage[cn]
+
+\setupbodyfont[chi]
+
+\unprotect
+
+\stelsectiein [\v!sectionlevel-1] [\c!kopconversie=\s!chinese]
+\stelsectiein [\v!sectionlevel-2] [\c!kopconversie=\s!chinese]
+\stelsectiein [\v!sectionlevel-3] [\c!kopconversie=\s!chinese]
+
+\stelkopin [\v!hoofdstuk] [\c!afstand=1.25em]
+\stelkopin [\v!paragraaf] [\c!afstand=1.25em]
+\stelkopin [\v!sub\v!paragraaf] [\c!afstand=1.00em]
+
+\stellijstin [\v!hoofdstuk] [\c!koplabel=\v!ja,\c!kopconversie=\v!ja,\c!breedte=5em]
+\stellijstin [\v!paragraaf] [\c!koplabel=\v!ja,\c!kopconversie=\v!ja,\c!breedte=5em]
+
+\stelmarkeringin [\v!hoofdstuk\v!nummer] [\c!koplabel=\v!ja,\c!kopconversie=\v!ja]
+\stelmarkeringin [\v!paragraaf\v!nummer] [\c!koplabel=\v!ja,\c!kopconversie=\v!ja]
+
+\setuplabeltext[cn][\v!sub\v!paragraaf={\symbol[S]\kern.25em}]
+\setuplabeltext[cn][\v!sub\v!sub\v!paragraaf={\symbol[S]\kern.25em}]
+\setuplabeltext[cn][\v!sub\v!sub\v!sub\v!paragraaf={\symbol[S]\kern.25em}]
+\setuplabeltext[cn][\v!sub\v!sub\v!sub\v!sub\v!paragraaf={\symbol[S]\kern.25em}]
+
+% nog taalonafhankelijk maken -> \e!tabel enz
+
+\definereferenceformat [intable] [\c!label=\v!tabel]
+\definereferenceformat [infigure] [\c!label=\v!figuur]
+\definereferenceformat [inchapter] [\c!label=\v!hoofdstuk]
+\definereferenceformat [insection] [\c!label=\v!paragraaf]
+
+\protect \endinput
diff --git a/tex/context/base/s-faq-01.tex b/tex/context/base/s-faq-01.tex
index 41618a375..f3197842d 100644
--- a/tex/context/base/s-faq-01.tex
+++ b/tex/context/base/s-faq-01.tex
@@ -75,6 +75,7 @@
\setupregister
[index]
[coupling=yes,
+ unknownreference=none,
interaction=text]
\coupleregister
@@ -120,7 +121,8 @@
\def\CurrentIndexOfFAQ%
{\bgroup
\setupinteraction[color=]%
- \menubox[bottom]{\let\index\coupledindex\IndexOfFAQ}%
+ \menubox[bottom]%
+ {\hskip-.5em\def\index{\hskip.5em\coupledindex}\IndexOfFAQ}%
\egroup}
\setupinteractionmenu
@@ -192,15 +194,13 @@
\pagereference[faqs]
\useblocks[question]}
-\def\MyFrame%
- {\startreusableMPgraphic{Frame:\overlaywidth:\overlayheight}
- path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
- pickup pencircle scaled 2pt ;
- fill p withcolor \MPcolor{\overlaycolor} ;
- draw p withcolor \MPcolor{\overlaylinecolor} ;
- \stopreusableMPgraphic
- \reuseMPgraphic{Frame:\overlaywidth:\overlayheight}}
+\startuniqueMPgraphic{Frame}
+ path p ; p := unitsquare xscaled \overlaywidth yscaled \overlayheight ;
+ pickup pencircle scaled 2pt ;
+ fill p withcolor \MPcolor{\overlaycolor} ;
+ draw p withcolor \MPcolor{\overlaylinecolor} ;
+\stopuniqueMPgraphic
-\defineoverlay[MyFrame][\MyFrame]
+\defineoverlay[MyFrame][\uniqueMPgraphic{Frame}]
\endinput
diff --git a/tex/context/base/s-map-01.tex b/tex/context/base/s-map-01.tex
index 13923377c..4f1f06dd6 100644
--- a/tex/context/base/s-map-01.tex
+++ b/tex/context/base/s-map-01.tex
@@ -542,11 +542,12 @@
\c!tussen=]
%D Gezien het brede karakter van de \MAPS\ gebruiken we andere
-%D waarden voor links geraffeld uitlijnen.
+%D waarden voor links geraffeld uitlijnen. The low level macro
+%D used here is subjected to changes!
\def\raggedleft%
{\setraggedness\leftraggedness
- \setraggedskips{1fill}{0em}{.3333em}{.5em}{1fil}{\parindent}}
+ \setraggedskips{1}{1fill}{0em}{.3333em}{.5em}{1fil}{\parindent}}
%D Standaard gebruikt \CONTEXT\ kleur bij pretty verbatim
%D printing. In the \MAPS\ gebruiken we echter fonts:
diff --git a/tex/context/base/s-pre-00.tex b/tex/context/base/s-pre-00.tex
index b04a80e6f..583d2a0ec 100644
--- a/tex/context/base/s-pre-00.tex
+++ b/tex/context/base/s-pre-00.tex
@@ -51,7 +51,7 @@
\def\presentationstep%
{\dopresentationstep0}
-\def\dopresentationstep#1%
+\def\dopresentationstep#1% not ok yet
{\global\setbox\presentationstack=\vbox
{\ifnum\presentationcounter=0
\global\presentationheight=\!!zeropoint
@@ -62,6 +62,7 @@
\scratchdimen=\textheight
\fi
\advance\scratchdimen by -\presentationheight
+ \edef\presentationstepheight{\the\scratchdimen}
\global\presentationheight=\pagetotal
\forgetall
\offinterlineskip
@@ -80,7 +81,7 @@
[\presentationshade]
\def\presentationshade%
{\presentationshield
- [\c!breedte=\tekstbreedte,\c!hoogte=\scratchdimen]{}}
+ [\c!breedte=\tekstbreedte,\c!hoogte=\presentationstepheight]{}}
\definefield[\presentationtag][check][presentation][\presentationtag][\presentationtag]
\fitfield[\presentationtag]}}
@@ -150,7 +151,9 @@
%D
%D There is also:
%D
+%D \starttypen
%D \autopresentationsteptrue
+%D \stoptypen
%D
%D One can enable this feature as \type {step} mode.
@@ -158,7 +161,8 @@
\appendtoks \ifautopresentationstep\presentationstep\fi \to \everypar
-\doifmode{step}{\enablepresentationstep}
+\doifmode{step} {\enablepresentationstep}
+\doifmode{autostep}{\autopresentationsteptrue\enablepresentationstep}
%D When in \type {comment} mode, embedded page comments are
%D processed and put below the page. The default space of
diff --git a/tex/context/base/s-pre-05.tex b/tex/context/base/s-pre-05.tex
index ec4c6e372..dac9efc9c 100644
--- a/tex/context/base/s-pre-05.tex
+++ b/tex/context/base/s-pre-05.tex
@@ -81,16 +81,22 @@
background=HashFrameB,
frame=off,
offset=10pt,
- % align=middle, % this is a nice alternative
+ style=smallbold,
width=\rightedgewidth,
+ maxwidth=.8\rightedgewidth,
interaction=all,
- textcommand=\TopicLine,
before=,
after=]
\vfill
\button{Close}[CloseDocument]
\stopinteractionmenu
+\setupwhitespace
+ [big]
+
+\setupblank
+ [big]
+
%D \macros
%D {TitlePage}
%D
@@ -163,12 +169,7 @@
continue=no,
style=\tfa]
-\def\TopicLine#1%
- {\limitatetext{#1}{80pt}{...}}
-
\startMPinclusions
- input mp-tool ;
-
def random_hash_frame (expr width, height, offset, linewidth ) =
def delta = ((uniformdeviate .5offset) + .25offset) enddef ;
diff --git a/tex/context/base/spec-dvi.tex b/tex/context/base/spec-dvi.tex
index 4266b36c4..ad80d2ee1 100644
--- a/tex/context/base/spec-dvi.tex
+++ b/tex/context/base/spec-dvi.tex
@@ -59,6 +59,46 @@
\unvbox0\setbox0=\lastbox\unhbox0
\egroup}
+%D \macros
+%D {dosetposition,
+%D dosetpositionwhd}
+%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 \starttypen
+%D \pospxy {identifier}{page}{x}{y}
+%D \pospxywhd{identifier}{page}{x}{y}{w}{h}{d}
+%D \stoptypen
+%D
+%D The postprocessor should, of course, provide the \type
+%D {page}, \type {x}, and \type {y} values.
+
+\definespecial\dosetposition#1%
+ {\special{pos:pxy "#1"}}
+
+\definespecial\dosetpositionwhd#1#2#3#4%
+ {\special{pos:pxywhd "#1" #2 #3 #4}}
+
+%D The next special tells the position postprocessor what
+%D page dimensions were used.
+
+\let\flushDVIpositionpapersize\relax
+
+\definespecial\dosetpositionpapersize#1#2%
+ {\xdef\flushDVIpositionpapersize%
+ {\special{pos:papersize #1 #2}%
+ \global\noexpand\let\noexpand\flushDVIpositionpapersize\relax}}
+
+\prependtoks \flushDVIpositionpapersize \to \everyshipout
+
\stopspecials
\protect
diff --git a/tex/context/base/spec-fdf.tex b/tex/context/base/spec-fdf.tex
index e1482d397..dd440d9aa 100644
--- a/tex/context/base/spec-fdf.tex
+++ b/tex/context/base/spec-fdf.tex
@@ -316,31 +316,36 @@
%D fast convert the command asked for. This is how the \PDF\
%D code looks like.
-\def\PDFmoviecode%
+\def\PDFmoviecode#1#2#3%
{/Movie
- /T (movie \ifx\argumentA\empty\currentmovie\else\argumentA\fi)
- /Operation\space}
+ /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\PDFexecutestart {\PDFmoviecode /Play}
-\def\PDFexecutestop {\PDFmoviecode /Stop}
-\def\PDFexecutepause {\PDFmoviecode /Pause}
-\def\PDFexecuteresume {\PDFmoviecode /Resume}
+\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\PDFexecutespausesound {\PDFmoviecode1\currentsound2}
+\def\PDFexecuteresumesound {\PDFmoviecode1\currentsound3}
\def\PDFformcode#1%
{\doFDFiffieldset{#1}{/Field [\doFDFgetfieldset{#1}]}}
\chardef\PDFsubmitformat=1 % 0=FDF 1=HTML
-\def\PDFexecuteimport {/Named /N /AcroForm:ImportFDF}
-\def\PDFexecuteexport {/Named /N /AcroForm:ExportFDF}
-\def\PDFexecutereset {/ResetForm \PDFformcode\argumentA}
-\def\PDFexecutesubmit {/SubmitForm \PDFformcode\argumentB
- %/Flags \ifnum\PDFsubmitformat=1 12\fi
- %/Flags \ifnum\PDFsubmitformat=1 4\fi
- /F (\argumentA)}
+\def\PDFexecuteimportform {/Named /N /AcroForm:ImportFDF}
+\def\PDFexecuteexportform {/Named /N /AcroForm:ExportFDF}
+\def\PDFexecuteresetform {/ResetForm \PDFformcode\argumentA}
+\def\PDFexecutesubmitform {/SubmitForm \PDFformcode\argumentB
+ %/Flags \ifnum\PDFsubmitformat=1 12\fi
+ %/Flags \ifnum\PDFsubmitformat=1 4\fi
+ /F (\argumentA)}
-\def\PDFexecutehide {/Hide /T (\argumentA) /H true}
-\def\PDFexecuteshow {/Hide /T (\argumentA) /H false}
+\def\PDFexecutehide {/Hide /T (\argumentA) /H true}
+\def\PDFexecuteshow {/Hide /T (\argumentA) /H false}
\def\PDFexecutefirst {/Named /N /FirstPage}
\def\PDFexecuteprevious {/Named /N /PrevPage}
@@ -478,9 +483,11 @@
%D link}, but here is another one: the {\em movie} annotation.
%D The driver module must implement \type {setcurrentmovie}.
+\let\currentmovie\s!unknown
+
\def\doPDFinsertmov#1#2#3#4#5#6#7#8#9%
{\bgroup
- \setcurrentmovie{#1}%
+ \xdef\currentmovie{#2}% label
\ScaledPointsToBigPoints{#7}\width
\ScaledPointsToBigPoints{#8}\height
\let\pdf@@options\empty
@@ -493,7 +500,23 @@
{/Subtype /Movie
/T (movie \currentmovie)
/Movie << /F (#1) /Aspect [\width\space\height] \pdf@@options >>
- /A << \pdf@@actions>>}
+ /A << \pdf@@actions>>}%
+ \egroup}
+
+%D \macros
+%D {doPDFinsertsoundtrack}
+%D
+%D In \PDF\ sounds can be embedded like movies.
+
+\let\currentsound\s!unknown
+
+\def\doPDFinsertsoundtrack#1#2#3%
+ {\bgroup
+ \xdef\currentsound{#2}%
+ \doPDFannotation width 0 height 0 data
+ {/Subtype /Movie
+ /T (sound \currentsound)
+ /Movie <</F (#1)>>}%
\egroup}
%D \macros
@@ -716,7 +739,7 @@
\currentreferencearguments
\doPSsanitizeJScode\JScode\to\JScode
\xdef\sanitizedJScode{\sanitizedJScode\space\JScode}}
- {\invalidreference{##1}}}
+ {\illegalreference{##1}}}
{\unknownreference{##1}}}%
\@EA\processcommalist\@EA[#2]\setFDFaction % one level expansion
\ifx\sanitizedJScode\empty \else
@@ -799,7 +822,7 @@
{\FDFcollection\space\PDFobjectreference}%
\fi}
-\prependtoks \flushFDFnames \to \everylastshipout
+\prependtoks \flushFDFnames \to \everylastshipout % test \everybye
%D \macros
%D {defineFDFfonts,
@@ -1069,12 +1092,13 @@
\newif\ifFDFvalues
-\def\doFDFpresetpushcheckfield#1#2#3#4#5#6#7%
+\def\doFDFpresetpushcheckfield#1#2#3#4#5#6#7#8%
{\bgroup
+ \ifcase#8\relax\FDFvaluesfalse\else\FDFvaluestrue\fi
\setFDFswitches[#5]%
\setFDFactions[#7]%
\ifcase\currentFDFmode
- \doFDFappearance{On}{#6}%
+ \doFDFappearance{On}{#6}{#8}%
\doFDFdefault{#6}{#4}%
\doPDFannotationobject class FDF name #1 width #2 height #3 data
{/Subtype /Widget /T (#1) /FT /Btn
@@ -1096,7 +1120,7 @@
\FDFactions}%
\registerFDFobject{#1}%
\or
- \doFDFappearance{On}{#6}%
+ \doFDFappearance{On}{#6}{#8}%
\doFDFdefault{#6}{#4}%
\doPDFgetobjectreference{FDF}{\currentFDFparent}\PDFobjectreference
\global\objectreferencingtrue
@@ -1108,7 +1132,7 @@
\FDFappearance\space
\FDFactions}%
\or
- \doFDFappearance{On}{#6}%
+ \doFDFappearance{On}{#6}{#8}%
\doFDFdefault{#6}{#4}%
\doPDFgetobjectreference{FDF}{\currentFDFparent}\PDFobjectreference
\global\objectreferencingtrue
@@ -1121,12 +1145,10 @@
\egroup}
\def\doFDFpresetpushfield#1#2#3#4#5#6#7%
- {\FDFvaluesfalse
- \doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{PushButton,#5}{#6}{#7}}
+ {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{PushButton,#5}{#6}{#7}{0}}
\def\doFDFpresetcheckfield#1#2#3#4#5#6#7%
- {\FDFvaluestrue
- \doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{#5}{#6}{#7}}
+ {\doFDFpresetpushcheckfield{#1}{#2}{#3}{#4}{#5}{#6}{#7}{1}}
\def\doFDFpresetradiofield#1#2#3#4#5#6#7%
{\bgroup
@@ -1134,7 +1156,7 @@
\setFDFswitches[#4]%
\setFDFactions[#7]%
\ifcase\currentFDFmode
- \doFDFappearance{#1}{#6}%
+ \doFDFappearance{#1}{#6}{1}%
\doPDFgetobjectreference{FDF}{#5}\PDFobjectreference
\doPDFannotationobject class FDF name #1 width #2 height #3 data
{/Subtype /Widget
@@ -1153,7 +1175,7 @@
\FDFactions}%
\registerFDFobject{#1}%
\or
- \doFDFappearance{#1}{#6}%
+ \doFDFappearance{#1}{#6}{1}%
\doPDFgetobjectreference{FDF}{\currentFDFparent}\PDFobjectreference
\global\objectreferencingtrue
\doPDFannotationobject class FDF name kids:#1 width #2 height #3 data
@@ -1163,7 +1185,7 @@
\FDFappearance\space
\FDFactions}%
\or
- \doFDFappearance{#1}{#6}%
+ \doFDFappearance{#1}{#6}{1}%
\doPDFgetobjectreference{FDF}{\currentFDFparent}\PDFobjectreference
\global\objectreferencingtrue
\doPDFannotationobject class FDF name kids:#1 width #2 height #3 data
@@ -1188,7 +1210,8 @@
\egroup}
%D At the cost of some more references, we can save bytes,
-%D by sharing appearance dictionaries. Surprise:
+%D by sharing appearance dictionaries. This code needs more
+%D documentation. Surprise:
\def\dodoFDFappearance#1#2%
{\ifx#2\empty\else
@@ -1218,9 +1241,14 @@
\fi
\fi}
-\def\doFDFappearance#1#2%
- {\dogetcommacommandelement1\from#2,\to\yes
- \dogetcommacommandelement2\from#2,\to\no
+\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
@@ -1448,7 +1476,7 @@
\long\def\sanitizePDFdocencoding#1\to#2%
{\enablePDFcrlf
\enablePDFdocencoding
-\honorunexpanded
+ %\honorunexpanded % otherwise problems with "e etc in de
\edef#2{#1}}
\bgroup
diff --git a/tex/context/base/spec-ini.tex b/tex/context/base/spec-ini.tex
index 8117cb8fc..f1a37104e 100644
--- a/tex/context/base/spec-ini.tex
+++ b/tex/context/base/spec-ini.tex
@@ -1,5 +1,3 @@
-% \dogetfiguresize will be a special !
-
%D \module
%D [ file=spec-ini,
%D version=1996.01.25,
@@ -17,7 +15,7 @@
%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 implementinmg specials as
+%D tried to overcome this problem by implementing specials as
%D a sort of drivers themselves.
\writestatus{loading}{Context Special Macros / Initialization}
@@ -84,6 +82,32 @@
21: -- kod vlozen
\stopmessages
+%D \TEX\ produces files in the \DVI\ format. This format is
+%D well defined and stable. In this format one||byte commands
+%D are used which can optionally be followed by length
+%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 \starttypen
+%D \special{Hello here I am.}
+%D \stoptypen
+%D
+%D results in \DVI||codes:
+%D
+%D \starttypen
+%D xxx1 16 Hello here I am.
+%D \stoptypen
+%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 {everyresetspecials}
%D
@@ -580,6 +604,61 @@
%D {dostartgraymode,dostopgraymode,
%D dostartrgbcolormode,dostartcmykcolormode,dostartgraycolormode,dostopcolormode}
%D
+%D Switching to and from color can be done in two ways:
+%D
+%D \startopsomming[opelkaar,n]
+%D \som insert driver specific commands
+%D \som pass instructions to the output device
+%D \stopopsomming
+%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 \startopsomming[opelkaar,n]
+%D \som let \TEX\ do the job
+%D \som let the driver handle things
+%D \stopopsomming
+%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 \kap{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 \kap{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 \kap{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
@@ -603,13 +682,23 @@
\installspecial [\dostartgraycolormode] [or] [1]
\installspecial [\dostopcolormode] [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 {doinsertfile}
%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
+%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 \starttypen
%D \doinsertfile {type,method} {file,label}
%D {xscale} {yscale} {x} {y} {w} {h}
@@ -618,17 +707,33 @@
%D
%D The scale is given percents, the other values are base
%D points.
-%D
-%D The special is implemented as \type{or}. Because
-%D \DVIPSONE\ understands them all, a chain of alternatives
-%D would generate multiple occurrences of the same
-%D illustration.
-%D
+%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 [\doinsertfile] [or] [9]
+%D No start||stop construction is needed here, because there in
+%D no further interference of \TEX. All dimensions are output
+%D as scaled points and scales as a number, where 100 equal
+%D 100\%.
+
+%D \macros
+%D {doinsertsoundtrack}
+%D
+%D Sounds are (for the moment) just files with
+%D associated options.
+%D
+%D \starttypen
+%D \doinsertsoundtrack {file} {label} {options}
+%D \stoptypen
+
+\installspecial [\doinsertsoundtrack] [or] [3]
+
%D \macros
%D {dogetnofinsertpages}
%D
@@ -637,13 +742,15 @@
%D to the total number of pages.
%D
%D \starttyping
-%D \dogetnofinsertpages\nofinsertpages
+%D \dogetnofinsertpages{filename}
%D \stoptyping
%D
-%D The number is available after the insert is placed,
+%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
@@ -863,6 +970,41 @@
%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 \startopsomming[opelkaar,n]
+%D \som let \TEX\ highlight the text
+%D \som let the driver show us where to click
+%D \stopopsomming
+%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
@@ -893,10 +1035,14 @@
\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
%D Rather special is the option to include and execute
%D JavaScript code. This is a typical \PDF\ option.
%D
@@ -917,6 +1063,12 @@
%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
@@ -940,6 +1092,10 @@
\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
@@ -1177,7 +1333,7 @@
%D \macros
%D {doinsertcomment}
%D
-%D Not so much out ot need, but to be complete, we also
+%D Not so much out of need, but to be complete, we also
%D implement text annotations, so called comment:
%D
%D \starttypen
@@ -1187,6 +1343,26 @@
\installspecial[\doinsertcomment] [and] [7]
+%D \macros
+%D {dosetposition, dosetpositionwhd, 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 \starttypen
+%D \dosetposition {identifier}
+%D \dosetpositionwhd {identifier} {width} {height} {depth}
+%D \dosetpositionpapersize {width} {height}
+%D \stoptypen
+%D
+%D This is one of the few specials where when using \PDFTEX\
+%D the driver directly deals with the utility file.
+
+\installspecial [\dosetposition] [or] [1]
+\installspecial [\dosetpositionwhd] [or] [4]
+\installspecial [\dosetpositionpapersize] [or] [2]
+
%D So far for the installation. For quite some time the
%D \CONTEXT\ way of specifying the output format has been:
%D
diff --git a/tex/context/base/spec-pdf.tex b/tex/context/base/spec-pdf.tex
index 21080bac7..377821506 100644
--- a/tex/context/base/spec-pdf.tex
+++ b/tex/context/base/spec-pdf.tex
@@ -184,14 +184,17 @@
%D \POSTSCRIPT\ drivers. We just link the movie annotation
%D handled to the file inclusion system.
-\let\currentmovie\s!unknown
-
-\def\setcurrentmovie{\xdef\currentmovie}
-
\definefileinsertion{yy}{mov}{\doPDFinsertmov}
\definefileinsertion{tr}{mov}{\doPDFinsertmov}
%D \macros
+%D {doinsertsoundtrack}
+%D
+%D Sounds look much like movies:
+
+\definespecial\doinsertsoundtrack{\doPDFinsertsoundtrack}
+
+%D \macros
%D {dostartobject,dostopobject,
%D doinsertobject}
%D
diff --git a/tex/context/base/spec-tpd.tex b/tex/context/base/spec-tpd.tex
index 77a097cc7..3b6065ec9 100644
--- a/tex/context/base/spec-tpd.tex
+++ b/tex/context/base/spec-tpd.tex
@@ -61,6 +61,12 @@
\pdfimageresolution=300
+%D Another downward compatible hack:
+
+\ifx\pdflastximagepages\undefined
+ \newcount\pdflastximagepages \pdflastximagepages=1
+\fi
+
% %D Why are the Acrobat viewers so buggy? To prevent font cache
% %D mismatches, we say:
%
@@ -110,7 +116,7 @@
\appendtoks \let\defaultspecial\normalspecial \to \everyresetspecials
-\let\PDFcode=\pdfliteral
+\let\PDFcode\pdfliteral
%D \macros
%D {dosetuppaper}
@@ -151,8 +157,11 @@
%D The number of pages in (for instance an \PDF) insert
%D file, can be asked for using:
-\definespecial\dogetnofinsertpages#1% global !
- {\global\let#1\PDFimagenofpages}
+\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
@@ -214,7 +223,7 @@
\doifnumberelse{\commalistelement}
{\ifcase\commalistelement\else
\edef\pdfimagepagenumber{page \commalistelement}%
- \message{(pdf image page \pdfimagepagenumber)}%
+ \message{(pdf image \pdfimagepagenumber)}%
\fi}
{}}
@@ -228,7 +237,7 @@
\pdfimagepagenumber
{#1}%
\xdef\PDFimagereference{\the\pdflastximage}%
- \xdef\PDFimagenofpages{\the\pdflastximagepages}%
+ \xdef\nofinsertpages{\the\pdflastximagepages}%
\pdfrefximage\pdflastximage}
{\framed[\c!breedte=#7sp,\c!hoogte=#8sp]{#1}}%
\egroup}
@@ -253,12 +262,14 @@
%D similar to figure inclusion. The next macro calls the
%D general \PDF\ one.
-\newcounter\currentmovie
+\definefileinsertion{tpd}{mov}{\doPDFinsertmov}
-\def\setcurrentmovie#1%
- {\doglobal\increment\currentmovie}
+%D \macros
+%D {doinsertsoundtrack}
+%D
+%D We use numbers instead of labels to keep track of sounds.
-\definefileinsertion{tpd}{mov}{\doPDFinsertmov}
+\definespecial\doinsertsoundtrack{\doPDFinsertsoundtrack}
%D \macros
%D {measureTPDfiguresizetrue}
@@ -305,7 +316,7 @@
\global\setbox\foundexternalfigure=\vbox
{\immediate\pdfximage \pdfimageattributes \pdfimagepagenumber{#2}%
\xdef\PDFimagereference{\the\pdflastximage}%
- \xdef\PDFimagenofpages{\the\pdflastximagepages}%
+ \xdef\nofinsertpages{\the\pdflastximagepages}%
\pdfrefximage\pdflastximage}%
#6=\wd\foundexternalfigure
#7=\ht\foundexternalfigure
@@ -717,6 +728,34 @@
\definespecial\doregistercalculationset{\doFDFregistercalculationset}
%D \macros
+%D {dosetposition, dosetpositionwdh}
+%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.
+
+\def\doTPDsetposition#1#2#3%
+ {\bgroup
+ \edef\doTPDsetposition%
+ {\writeutilitycommand
+ {#1%
+ {#2}%
+ {\noexpand\realfolio}%
+ {\noexpand\number\pdflastxpos}%
+ {\noexpand\number\pdflastypos}%
+ #3}}%
+ \pdfsavepos
+ \doTPDsetposition
+ \egroup}
+
+\definespecial\dosetposition#1%
+ {\doTPDsetposition{\pospxy}{#1}{}}
+
+\definespecial\dosetpositionwhd#1#2#3#4%
+ {\doTPDsetposition{\pospxywhd}{#1}{{#2}{#3}{#4}}}
+
+%D \macros
%D {doPDFdestination}
%D
%D Finally we implement some low level macros to deal with
@@ -764,7 +803,8 @@
\xdef\lastPDFaction{<<#3>>}%
\or
\ifsharePDFactions
- \immediate\pdfobj{<<#3>>}\xdef\lastPDFaction{\the\pdflastobj\space0 R}%
+ \immediate\pdfobj{<<#3>>}%
+ \xdef\lastPDFaction{\the\pdflastobj\space0 R}%
\else
\xdef\lastPDFaction{<<#3>>}%
\fi
@@ -827,16 +867,14 @@
{\pdfcatalog}
\def\doPDFpageattribute#1%
- {\expanded{\global\pdfpageattr{\the\pdfpageattr#1}}}
+ {\expanded{\global\pdfpageattr{#1\the\pdfpageattr}}}
\def\doPDFpagesattribute#1%
- {\expanded{\global\pdfpagesattr{\the\pdfpagesattr#1}}}
+ {\expanded{\global\pdfpagesattr{#1\the\pdfpagesattr}}}
\def\doPDFresetattributes%
{\global\pdfpageattr{}}
-% \global\pdfpagesattr{}}
-
\appendtoks\doPDFresetattributes\to\everyaftershipout
%D \macros
diff --git a/tex/context/base/supp-box.tex b/tex/context/base/supp-box.tex
index 3e85c3940..abc14fc67 100644
--- a/tex/context/base/supp-box.tex
+++ b/tex/context/base/supp-box.tex
@@ -8,8 +8,8 @@
%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
%D This module implements some box manipulation macros. Some
%D are quite simple, some are more advanced and when understood
@@ -63,33 +63,29 @@
%D and smashed alternatives. The later ones reduce all
%D dimensions to zero.
-\def\hsmash#1%
- {\bgroup
- \setbox0=\normalhbox{#1}%
- \hsmashbox0%
- \box0
- \egroup}
-
-\def\vsmash#1%
- {\bgroup
- \setbox0=\normalvbox{#1}%
- \vsmashbox0%
- \box0
- \egroup}
+% 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\box\nextbox\egroup}\normalhbox}
+% \def\vsmash {\bgroup\dowithnextbox{\vsmashbox\nextbox\box\nextbox\egroup}\normalvbox}
+% \def\hsmashed{\bgroup\dowithnextbox{\smashbox \nextbox\box\nextbox\egroup}\normalhbox}
+% \def\vsmashed{\bgroup\dowithnextbox{\smashbox \nextbox\box\nextbox\egroup}\normalvbox}
+%
+% The best:
-\def\hsmashed#1%
- {\bgroup
- \setbox0=\normalhbox{#1}%
- \smashbox0%
- \box0
- \egroup}
+\def\dosomesmash#1%
+ {\bgroup\dowithnextbox{#1\nextbox\box\nextbox\egroup}}
-\def\vsmashed#1%
- {\bgroup
- \setbox0=\normalvbox{#1}%
- \smashbox0%
- \box0
- \egroup}
+\def\hsmash {\dosomesmash\hsmashbox\normalhbox}
+\def\vsmash {\dosomesmash\vsmashbox\normalvbox}
+\def\hsmashed{\dosomesmash\smashbox \normalhbox}
+\def\vsmashed{\dosomesmash\smashbox \normalvbox}
%D \macros
%D {getboxheight}
@@ -118,16 +114,16 @@
{#1=\ht#3%
\advance#1 by \dp#3\relax}
-%D \macros
+%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 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 \starttypen
%D \doiftextelse {data} {then branch} {else branch}
-%D \doiftext {data} {then branch}
+%D \doiftext {data} {then branch}
%D \stoptypen
\def\doiftextelse#1#2#3%
@@ -228,8 +224,8 @@
%D \setbox\nextbox#2}
%D \stoptypen
%D
-%D This alternative also accepts \type{\box0} and alike, but
-%D we don't really need this functionality now.
+%D This alternative also accepts \type{\box0} and alike, but
+%D we don't really need this functionality now.
%D \macros
%D {beginofshapebox,
@@ -316,7 +312,7 @@
%D
%D \startbuffer
%D \beginofshapebox
-%D \flushshapebox
+%D \flushshapebox
%D \endofshapebox
%D
%D \reshapebox
@@ -443,9 +439,9 @@
\else
% make \prevdepth legal
% \par before the next \vskip gives far worse results
- \ifdim\parskip>\!!zeropoint\vskip\parskip\else\par\fi
+ \ifdim\parskip>\!!zeropoint\vskip\parskip\else\par\fi
% and take a look
- \ifdim\prevdepth=-1000pt
+ \ifdim\prevdepth=-1000pt
\prevdepth=\!!zeropoint
\fi
\ifdim\prevdepth<\!!zeropoint\relax
@@ -460,25 +456,25 @@
% give the previous line a normal depth
\donetrue
\vbox{\forgetall\strut}\nobreak\kern-\lineheight % geen \vskip
- \vskip-\dp\strutbox
+ \vskip-\dp\strutbox
\fi\fi\fi
\unvcopy\newshapebox\relax
% \prevdepth=0pt and \dp\newshapebox depend on last line
\kern-\dp\newshapebox\relax
% now \prevdepth=0pt
\ifdone
- \kern\dp\strutbox
- \prevdepth\dp\strutbox
+ \kern\dp\strutbox
+ \prevdepth\dp\strutbox
\fi
\fi}
-%D In real inner situations we can use:
+%D In real inner situations we can use:
%D
%D \starttypen
%D \flushinnershapebox
%D \stoptypen
%D
-%D This one is used in \type{\framed}.
+%D This one is used in \type{\framed}.
\def\innerflushshapebox%
{\ifdim\ht\newshapebox=\!!zeropoint\relax
@@ -487,16 +483,16 @@
\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 For absolute control, one can use \type{\doreshapebox}
+%D directly. This macro takes four arguments, that take care
%D of:
-%D
+%D
%D \startopsomming[n,opelkaar]
%D \som \type{\shapebox}
%D \som \type{\shapepenalty}
%D \som \type{\shapekern}
%D \som \type{\shapeskip}
-%D \stopopsomming
+%D \stopopsomming
%D \macros
%D {hyphenatedword,
@@ -630,7 +626,7 @@
%D \stoptypen
%D
%D When no width is given, the whole text comes available. The
-%D sentinel is optional. This is about the third version.
+%D sentinel is optional. This is about the third version.
\ifx\fakecompoundhyphen\undefined \let\fakecompoundhyphen\relax \fi
@@ -642,6 +638,8 @@
{\doifelsenothing{#1}
{\unhbox\nextbox}
{\fakecompoundhyphen
+ \widowpenalty=0
+ \clubpenalty=0
\scratchdimen=#1\relax
\ifdim\wd\nextbox>\scratchdimen
\setbox\scratchbox=\hbox{ #2}%
@@ -745,28 +743,31 @@
%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 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 When needed, spacing can be suppressed by \type
%D {\nothingbetweenisolatedwords}.
\newif\ifisolatedwords
\def\betweenisolatedwords%
- {\hskip\currentspaceskip}
+ {\hskip\currentspaceskip}
-\def\setbetweenisolatedwords#1%
- {\gdef\localbetweenisolatedwords{#1}}
+%D In order to prevent problems with nested isolated words, we
+%D do process them, but only split at the outermost level.
-\def\processisolatedwords#1#2%
- {\bgroup
+\def\processisolatedwords#1#2% todo: vbox ipv hbox ivm afbreken!
+ {\bgroup % todo: doloop
\fakecompoundhyphen
\mindermeldingen
\forgetall
- \global\let\localbetweenisolatedwords\betweenisolatedwords
- \setbox0=\hbox
- {\ignorespaces#1%
+ \widowpenalty=0
+ \clubpenalty=0
+ \def\processisolatedwords##1##2{##2{##1}}% we split only once
+ \global\let\localbetweenisolatedwords\betweenisolatedwords
+ \setbox0=\hbox % we default to spaces, but from inside out
+ {\ignorespaces#1% \localbetweenisolatedwords can be overruled
\xdef\isolatedlastskip{\the\lastskip}}%
\setbox2=\vbox
{%\hyphenpenalty10000 % this one fails in \url breaking,
@@ -775,8 +776,8 @@
\hsize\!!zeropoint
\unhcopy0}% == #1
\ifdim\ht0=\ht2
- \isolatedwordsfalse
- #2{\unhcopy0}% == #2{#1}
+ \isolatedwordsfalse
+ #2{\unhcopy0}% == #2{#1}
\else
\isolatedwordstrue
\setbox0=\hbox
@@ -794,9 +795,22 @@
\hbox{#2{\hbox{\unhbox4}}}}}%
\ifdim\ht2>\!!zeropoint \localbetweenisolatedwords \repeat
\unskip}%
- \unhbox0\unskip\hskip\isolatedlastskip
+ \unhbox0\unskip
+ \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}
@@ -914,13 +928,13 @@
\hbox}
%D For those who don't want to deal with \type {\hsize}
-%D and \type {\vsize}, we have:
-%D
+%D and \type {\vsize}, we have:
+%D
%D \starttypen
-%D \centerednextbox width 2bp height 2bp
+%D \centerednextbox width 2bp height 2bp
%D {\framed[width=100bp,height=100bp]{}}
%D \stoptypen
-%D
+%D
%D Do you see what we call this one \type {next}?
\def\centerednextbox#1#%
@@ -932,17 +946,17 @@
\egroup}
\hbox}
-%D \macros
+%D \macros
%D {centerbox}
%D
-%D Centering on the available space is done by:
+%D Centering on the available space is done by:
%D
%D \starttypen
%D \centeredbox <optional specs> {content}
%D \stoptypen
%D
-%D When omitted, the current \type {\hsize} and \type
-%D {\vsize} are used. Local dimensions are supported.
+%D When omitted, the current \type {\hsize} and \type
+%D {\vsize} are used. Local dimensions are supported.
\def\centerbox#1#% optional height +/-dimen width +/-dimen
{\bgroup
@@ -970,13 +984,13 @@
%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 Men kan het proces van breken enigzins beinvloeden met de
%D volgende twee switches:
-\newif\ifalignrigidcolumns
-\newif\ifstretchrigidcolumns
+\newif\ifalignrigidcolumns
+\newif\ifstretchrigidcolumns
-%D De eerste switch bepaald het uitlijnen, de tweede rekt de
+%D De eerste switch bepaald het uitlijnen, de tweede rekt de
%D individuele kolommen op naar \type{\vsize}.
\def\setrigidcolumnhsize#1#2#3%
@@ -1000,7 +1014,8 @@
\setbox\rigidcolumnbox=\vbox
{\unvbox\rigidcolumnbox
\unpenalty\removelastskip}% get rid of \blank's
- \splittopskip=\openstrutheight
+ %\splittopskip=\openstrutheight
+ \splittopskip=\!!zeropoint
%\scratchdimen=\ht\rigidcolumnbox % sensitive for overflow
%\divide\scratchdimen by \rigidcolumns % therefore we need the hack:
\scratchdimen=1pt
@@ -1079,9 +1094,9 @@
\box0
\egroup}
-% % to be done: start halfway a line combined with one line
+% % 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=\vbox
@@ -1114,7 +1129,7 @@
\def\makehboxofhboxes%
{\setbox0=\hbox{}%
- \loop % \doloop { .. \exitloop .. }
+ \loop % \doloop { .. \exitloop .. }
\setbox2=\lastbox
\ifhbox2
\setbox0=\hbox{\box2\unhbox0}%
@@ -1127,11 +1142,11 @@
\unhbox0
\fi}
-%D \macros
+%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.
+%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
@@ -1140,11 +1155,13 @@
\def\unhhbox#1\with#2%
{\bgroup
+ \widowpenalty=0
+ \clubpenalty=0
\mindermeldingen
\forgetall
- \setbox\unhhedbox=\vbox{\hskip\hhboxindent\strut\unhbox#1}% => \hsize
+ \setbox\unhhedbox=\vbox{\hskip\hhboxindent\strut\unhbox#1}% => \hsize
\doloop
- {\setbox\hhbox=\vsplit\unhhedbox to \lineheight
+ {\setbox\hhbox=\vsplit\unhhedbox to \lineheight
\ifvoid\unhhedbox
\setbox\hhbox=\hbox{\strut\hboxofvbox\hhbox}%
\fi
@@ -1159,7 +1176,7 @@
\ifvoid\unhhedbox
\exitloop
\else
- \hskip\!!zeropoint \!!plus \!!zeropoint
+ \hskip\!!zeropoint \!!plus \!!zeropoint
\fi}%
\egroup}
@@ -1177,26 +1194,26 @@
%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 headers.
+%D
%D \startbuffer
%D \setbox0=\hbox{\input tufte \relax}
%D \setbox2=\hbox{\input knuth \relax}
%D \unhhbox0\with{\ruledhbox{\box\hhbox}}
-%D \hskip1em plus 1em minus 1em
-%D \hhboxindent=\lasthhboxwidth
+%D \hskip1em plus 1em minus 1em
+%D \hhboxindent=\lasthhboxwidth
%D \advance\hhboxindent by \lastskip
%D \unhhbox2\with{\ruledhbox{\box\hhbox}}
%D \stopbuffer
-%D
+%D
%D \haalbuffer
-%D
+%D
%D This piece of text was typeset by saying:
-%D
+%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
+%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}
@@ -1248,15 +1265,15 @@
%D Where the last call of course does not show up in this
%D document, but definitely generates a confusing message.
-%D \macros
+%D \macros
%D {processboxes}
%D
-%D The next macro gobble boxes and is for instance used for
+%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%
+\def\processboxes#1%
{\bgroup
\def\doprocessbox{#1}% #1 can be redefined halfway
\setbox\processbox=\box\voidb@x
@@ -1277,15 +1294,15 @@
\def\dodogetprocessbox%
{\dowithnextbox
- {\ifhmode\unskip\fi\doprocessbox % takes \nextbox makes \processbox
+ {\ifhmode\unskip\fi\doprocessbox % takes \nextbox makes \processbox
\afterassignment\dogetprocessbox\let\next=}
\hbox\bgroup}
-%D \macros
+%D \macros
%D {startoverlay}
-%D
+%D
%D We can overlay boxes by saying:
-%D
+%D
%D \startbuffer
%D \startoverlay
%D {\omlijnd{hans}}
@@ -1293,15 +1310,15 @@
%D {\omlijnd[hoogte=2cm]{oeps}}
%D \stopoverlay
%D \stopbuffer
-%D
+%D
%D \typebuffer
%D
-%D shows up as:
+%D shows up as:
%D
%D \leavevmode\haalbuffer
% \def\dooverlaybox%
-% {\ifhmode\unskip\fi
+% {\ifhmode\unskip\fi
% \ifdim\ht\nextbox>\ht\processbox
% \setbox\processbox=\vbox to \ht\nextbox
% {\vss\box\processbox\vss}%
@@ -1310,16 +1327,16 @@
% {\vss\box\nextbox\vss}%
% \fi
% \scratchdimen=\wd
-% \ifdim\wd\nextbox>\wd\processbox
+% \ifdim\wd\nextbox>\wd\processbox
% \nextbox
% \else
% \processbox
-% \fi
+% \fi
% \setbox\processbox=\hbox to \scratchdimen
% {\hbox to \scratchdimen{\hss\box\processbox\hss}%
% \hskip-\scratchdimen
% \hbox to \scratchdimen{\hss\box\nextbox\hss}}}
-%
+%
% \def\startoverlay%
% {\bgroup
% \let\stopoverlay\egroup
@@ -1358,31 +1375,31 @@
\let\stopoverlay\egroup
\processboxes\dooverlaybox}
-% %D \macros
+% %D \macros
% %D {starthspread}
-% %D
-% %D In a similar way we can build a horizontal box, spread
+% %D
+% %D In a similar way we can build a horizontal box, spread
% %D over the available width.
-% %D
+% %D
% %D \startbuffer
% %D \starthspread
% %D {hans}
% %D {ton}
% %D {oeps}
% %D \stophspread
-% %D
+% %D
% %D \stopbuffer
-% %D
+% %D
% %D \typebuffer
% %D
-% %D shows up as:
+% %D shows up as:
% %D
% %D \leavevmode\haalbuffer
-%
+%
% \def\dohspread%
% {\box\nextbox
% \def\dohspread{\hfil\box\nextbox}}
-%
+%
% \def\starthspread%
% {\hbox to \hsize \bgroup
% \let\stophspread\egroup
@@ -1390,15 +1407,15 @@
%D \macros
%D {fakebox}
-%D
-%D The next macro is a rather silly one, but saves space.
+%D
+%D The next macro is a rather silly one, but saves space.
%D
%D \starttypen
-%D \hbox{\fakebox0}
+%D \hbox{\fakebox0}
%D \stoptypen
%D
-%D returns an empty box with the dimensions of the box
-%D specified, here being zero.
+%D returns an empty box with the dimensions of the box
+%D specified, here being zero.
\def\dofakebox%
{\setbox\scratchbox=\null
@@ -1412,7 +1429,7 @@
{\bgroup
\afterassignment\dofakebox\scratchcounter}
-%D \macros
+%D \macros
%D {lbox,rbox,cbox,tbox,bbox}
%D
%D Here are some convenient alternative box types:
@@ -1422,11 +1439,11 @@
%D \cbox{text ...}
%D \rbox{text ...}
%D \stoptypen
-%D
-%D Are similar to \type {\vbox}, 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.
+%D
+%D Are similar to \type {\vbox}, 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{\lrcbox\raggedleft}
\def\cbox{\lrcbox\raggedcenter}
@@ -1437,10 +1454,10 @@
\let\\=\endgraf
\forgetall#1\let\next=}
-%D The alternatives \type {\tbox} and \type {\bbox} can be used
+%D The alternatives \type {\tbox} and \type {\bbox} can be used
%D to properly allign boxes, like in:
-%D
-%D \startbuffer
+%D
+%D \startbuffer
%D \starttabel[|||]
%D \HL
%D \VL \tbox{\externfiguur[koe][hoogte=3cm,kader=aan]} \VL top aligned \VL\SR
@@ -1449,20 +1466,20 @@
%D \HL
%D \stoptabel
%D \stopbuffer
-%D
+%D
%D \typebuffer
-%D
-%D The positioning depends on the strut settings:
-%D
+%D
+%D The positioning depends on the strut settings:
+%D
%D \haalbuffer
\def\tbox{\tbbox\ht\dp}
\def\bbox{\tbbox\dp\ht}
-\def\tbbox#1#2%
+\def\tbbox#1#2%
{\hbox\bgroup
- \dowithnextbox
- {\scratchdimen=\ht\nextbox
+ \dowithnextbox
+ {\scratchdimen=\ht\nextbox
\advance\scratchdimen\dp\nextbox
\advance\scratchdimen-#1\strutbox
#1\nextbox=#1\strutbox
@@ -1478,15 +1495,15 @@
%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 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 \starttypen
%D \boxofsize \vbox 10cm 3cm -5cm {the text to be typeset}
%D \stoptypen
%D
-%D This example demonstrates that one can use positive and
+%D This example demonstrates that one can use positive and
%D negative values. Dimension registers are also accepted.
\newdimen\sizeofbox
@@ -1525,7 +1542,7 @@
\unhbox\nextbox}
\hbox}
-\def\fittoptobaselinegrid% weg hier
+\def\fittoptobaselinegrid% weg hier
{\dowithnextbox
{\bgroup
\par
@@ -1545,7 +1562,7 @@
\egroup}
\vbox}
-%D Some more undocumented macros (used in m-chart).
+%D Some more undocumented macros (used in m-chart).
\newif\iftraceboxplacement % \traceboxplacementtrue
@@ -1624,12 +1641,12 @@
\def\middlebox#1%
{\hbox{\setbox0=\placedbox{#1}\boxoffset=-.5\wd0\rightbox{\box0}}}
-%D \macros
+%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.
+%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}
@@ -1672,17 +1689,17 @@
%D
%D \typebuffer
%D \haalbuffer
-%
+%
% \def\dodonormbox#1#2#3#4#5#6#7%
% {\doifnumberelse{#1}
-% {\dimen0=#1}{\setbox0=#3{#1}\dimen0=#50}%
+% {\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
+% #7\nextbox
% \counttoken a\in#2\to\!!counta\dorecurse{\!!counta}{#6}#6}}
-%
+%
% \def\donormbox[#1][#2]%
% {\bgroup
% \doifinstringelse{v}{#2}
@@ -1698,7 +1715,7 @@
% \fi
% \egroup}%
% \next}
-%
+%
% \def\normbox%
% {\dodoubleempty\donormbox}
diff --git a/tex/context/base/supp-eps.tex b/tex/context/base/supp-eps.tex
index 24e9da14c..ad16fd760 100644
--- a/tex/context/base/supp-eps.tex
+++ b/tex/context/base/supp-eps.tex
@@ -74,13 +74,12 @@
\doprocessfile\scratchread{#1}\doprocessEPSline
\egroup
\ifnum\EPSfound>0
- \dimen0=1bp\relax
- #2=\EPSllx\dimen0
- #4=\EPSurx\dimen0
- \advance#4 by -\EPSllx\dimen0
- #3=\EPSlly\dimen0
- #5=\EPSury\dimen0
- \advance#5 by -\EPSlly\dimen0
+ #2=\EPSllx bp % Using \EPSllx bp instead of
+ #4=\EPSurx bp % \dimen0=1bp and \EPSllx\dimen0
+ #3=\EPSlly bp % is more accurate (.005pt).
+ #5=\EPSury bp
+ \scratchdimen=\EPSllx bp \advance#4 -\scratchdimen
+ \scratchdimen=\EPSlly bp \advance#5 -\scratchdimen
\else
#2=\!!zeropoint
#3=\!!zeropoint
diff --git a/tex/context/base/supp-fil.tex b/tex/context/base/supp-fil.tex
index 94fb6ed8c..59e21a663 100644
--- a/tex/context/base/supp-fil.tex
+++ b/tex/context/base/supp-fil.tex
@@ -342,7 +342,7 @@
\doopenin{#1}{\pathplusfile{#2}{#3}}}
%D \macros
-%D {doiffileelse,doiflocfileelse}
+%D {doiffileelse,doiflocfileelse,doifjobfileelse}
%D
%D The next alternative only looks if a file is present. No
%D loading is done. This one obeys the standard \TEX\
@@ -353,7 +353,7 @@
%D \stoptypen
%D
%D We use \type{\next} here, because we want to close the
-%D file first. We also provide the local alternative:
+%D file first. We also provide the alternatives:
%D
%D \starttypen
%D \doiflocfileelse {filename} {before loading} {not found}
diff --git a/tex/context/base/supp-fun.tex b/tex/context/base/supp-fun.tex
index 769ec848f..bfddf5cd4 100644
--- a/tex/context/base/supp-fun.tex
+++ b/tex/context/base/supp-fun.tex
@@ -29,7 +29,7 @@
\fi
%D \macros
-%D {DroppedCaps}
+%D {DroppedCaps, DroppedString, DroppedIndent, DroppedLines}
%D
%D \startbuffer
%D \DroppedCaps
@@ -116,33 +116,82 @@
%D fact that the offsets depend on the design of the glyphs
%D used.
-\def\DroppedCaps#1#2#3#4#5#6#7%
- {\par
- \vskip#6\baselineskip
- \penalty-200
- \vskip-#6\baselineskip
- \setbox0=\hbox
- {\definefont[temp][#2 at #3]%
- \temp#1{#7}\hskip#4}%
- \setbox0=\hbox
- {\lower#5\box0}%
- \ht0=\ht\strutbox
- \dp0=\dp\strutbox
- \hangindent\wd0
- \hangafter-#6%
- \noindent
- \hskip-\wd0
- \vbox{\forgetall\box0}%
- \nobreak}
+\let\DroppedIndent\zeropoint \def\DroppedLines{0}
+
+\def\DroppedString%
+ {ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+
+\def\DroppedCaps#1#2#3#4#5#6#7%
+ {\ExpandBothAfter\doifinstringelse{#7}{\DroppedString} %
+ {\ifvmode % this one is \EveryPar save, precede by \par if needed
+ \vskip#6\baselineskip
+ \penalty-200
+ \vskip-#6\baselineskip
+ \fi
+ \ifhmode
+ \hskip-\parindent
+ \fi
+ \setbox0=\hbox
+ {\definefont[temp][#2 at #3]\temp#1{#7}\hskip#4}%
+ \ifdim\dp0>\dp\strutbox % one of those Q's , will be option
+ \setbox2=\hbox{\raise\dp0\hbox{\lower\dp\strutbox\copy0}}%
+ \ht2=\ht0 \dp0=\dp\strutbox \setbox0=\box2
+ \fi
+ \setbox0=\hbox
+ {\lower#5\box0}%
+ \ht0=\ht\strutbox
+ \dp0=\dp\strutbox
+ \edef\DroppedIndent{\the\wd0}%
+ \edef\DroppedLines {\number#6}%
+ \hangindent\DroppedIndent
+ \hangafter-\DroppedLines
+ \noindent
+ \hskip-\DroppedIndent
+ \vbox{\forgetall\box0}%
+ \nobreak
+ \ignorespaces} % Could be a one character word !
+ {\edef\DroppedIndent{0pt}%
+ \edef\DroppedLines {\number\maxdimen}%
+ #7}}
+
%D Before we go to the next topic, we summarize this command:
%D
%D \starttypen
%D \DroppedCaps
-%D {command} {font}
-%D {height} {hoffset} {voffset} {lines}
+%D {command} {font}
+%D {height} {hoffset} {voffset} {lines}
%D \stoptypen
+%D \macros
+%D {LineDroppedCaps, NiceDroppedCaps}
+%D
+%D To save definitions, we also provide:
+%D
+%D \starttypen
+%D \LineDroppedCaps {command} {font} {hoffset} {lines}
+%D \NiceDroppedCaps {command} {font} {hoffset} {lines}
+%D \stoptypen
+%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 by -1
+ \scratchdimen=\scratchcounter\baselineskip
+ \advance\scratchdimen by #1%
+ \NormalizeFontHeight\DummyFont{W}{\scratchdimen}{#3}%
+ \DroppedCaps{#2}{#3}{\TheNormalizedFontSize}{#4}
+ {\scratchcounter\baselineskip}{#5}}
+
+\def\LineDroppedCaps% command font offset lines
+ {\DoLineDroppedCaps{\ht\strutbox}}
+
+\def\NiceDroppedCaps% command font offset lines
+ {\DoLineDroppedCaps{.5\baselineskip}}
+
%D \macros
%D {TreatFirstLine}
%D
@@ -358,7 +407,8 @@
%D \typebuffer[b]
%D \macros
-%D {NormalizeFontHeight, NormalizeFontWidth}
+%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
@@ -388,12 +438,17 @@
\divide\dimen4 by \dimen2
\divide\dimen0 by 1000
\dimen0=\number\dimen4\dimen0
+ \xdef\TheNormalizedFontSize{\the\dimen0}%
\definefont[temp][#5 at \the\dimen0]%
\temp
\expandafter
\egroup
\expandafter\font\expandafter#2\expandafter=\fontname\font\relax}
+%D Afterwards, we have access to the calculated size by:
+
+\let\TheNormalizedFontSize\!!zeropoint
+
%D Consider for instance:
%D
%D \startbuffer
diff --git a/tex/context/base/supp-lan.tex b/tex/context/base/supp-lan.tex
index 94918583a..dc0ab5660 100644
--- a/tex/context/base/supp-lan.tex
+++ b/tex/context/base/supp-lan.tex
@@ -40,18 +40,18 @@
%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
%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
-%D \type{spoelwater||terugwinunit} instead of
-%D \type{spoelwater-terugwinunit}. By using a one character
-%D command like \type{|}, delimited by the same character
-%D \type{|}, we get ourselves both a decent visualization (in
-%D \TEXEDIT\ and colored verbatim we color these commands
-%D yellow) and an efficient way of combining words.
-%D
+%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
@@ -113,7 +113,7 @@
%D \test {well|_|known}
%D \stoptest
%D
-%D to strees the compoundness of hyphenated words.
+%D to stress the compoundness of hyphenated words.
%D
%D Of course we also have to take care of the special case:
%D
@@ -377,7 +377,8 @@
\scratchcounter=\the\uccode`~
\uccode`~=`#1\relax
\uppercase{\def\next{~}}%
- \expandafter\unexpanded\expandafter\def\next{#2}%
+ %\expandafter\unexpanded\expandafter\def\next{#2}%
+ \expandafter\def\next{#2}% unexpanded goes wrong in pdfdoc
\uccode`~=\scratchcounter}
%D The next alternative also supports character numbers:
@@ -388,7 +389,8 @@
{\catcode #1=\@@active \uccode`~= #1\relax}
{\catcode`#1=\@@active \uccode`~=`#1\relax}%
\uppercase{\def\next{~}}%
- \expandafter\unexpanded\expandafter\def\next{#2}%
+ %\expandafter\unexpanded\expandafter\def\next{#2}%
+ \expandafter\def\next{#2}% unexpanded goes wrong in pdfdoc
\uccode`~=\scratchcounter}
%D Although adapting character codes and making characters
@@ -620,6 +622,88 @@
%D load macropackages afterwards that make use of \type{<} in
%D \type{\ifnum} or \type{\ifdim} statements.
+%D And then came the Polish users, and who can deny them? Like
+%D the German \TEX\ users demand an active \type {"}, the
+%D Polish cannot do without the \type {/}. The next alternative
+%D is a bit slower but far the most robust alternative. As a
+%D bonus it also offers \type {|^|} and even \type {|||} which
+%D both result in a breakable|^|bar.
+%D
+%D The trick we use here is to convert the argument to a
+%D string and compare this string to string'd tokens.
+
+\def\activedotextmodediscretionary#1%
+ {\bgroup
+ \let\nextnextnext\egroup
+ \def\handlecompoundcharacter##1% new, needed for polish
+ {\getvalue{\@nc@\string##1}}% where / is active
+ \def\next##1#1%
+ {\def\next{\activedododotextmodediscretionary#1{##1}}%
+ \futurelet\nextnext\next}%
+ \next}
+
+\def\activedododotextmodediscretionary#1#2%
+ {\convertargument#2\to\discretionarytoken
+ \def\textmodediscretionary{\getvalue{textmodediscretionary\string#1}}%
+ \ifx#1\nextnext % takec care of ||| and +++ and ......
+ \prewordbreak\discretionary{\hbox{$#1$}}{}{\hbox{$#1$}}%
+ \allowbreak\postwordbreak
+ \def\nextnextnext{\afterassignment\egroup\let\next=}%
+ \else\ifx\discretionarytoken\empty
+ \checkafterdiscretionary
+ \bgroup
+ \checkbeforediscretionary
+ \prewordbreak\hbox{\textmodediscretionary\nextnext}\allowbreak\postwordbreak
+ \egroup
+ \else\convertargument=\to\next\ifx\next\discretionarytoken
+ \prewordbreak\textmodediscretionary
+ \else\convertargument~\to\next\ifx\next\discretionarytoken
+ \prewordbreak\discretionary{-}{}{\thinspace}\postwordbreak
+ \else\convertargument_\to\next\ifx\next\discretionarytoken
+ \prewordbreak\discretionary{\textmodediscretionary}
+ {\textmodediscretionary}{\textmodediscretionary}\prewordbreak
+ \else\convertargument(\to\next\ifx\next\discretionarytoken
+ \ifdim\lastskip>\!!zeropoint\relax
+ (\prewordbreak
+ \else
+ \prewordbreak\discretionary{}{(-}{(}\prewordbreak
+ \fi
+ \else\convertargument)\to\next\ifx\next\discretionarytoken
+ \ifx\nextnext\blankspace
+ \prewordbreak)\relax
+ \else\ifx\nextnext\space
+ \prewordbreak)\relax
+ \else
+ \prewordbreak\discretionary{-)}{}{)}\prewordbreak
+ \fi\fi
+ \else\convertargument'\to\next\ifx\next\discretionarytoken
+ \prewordbreak\discretionary{-}{}{'}\postwordbreak
+ \else\convertargument<\to\next\ifx\next\discretionarytoken
+ \beginofsubsentence\prewordbreak\beginofsubsentencespacing
+ \else\convertargument>\to\next\ifx\next\discretionarytoken
+ \endofsubsentencespacing\prewordbreak\endofsubsentence
+ \else\convertargument^\to\next\ifx\next\discretionarytoken
+ \prewordbreak\discretionary{\hbox{$|$}}{}{\hbox{$|$}}%
+ \allowbreak\postwordbreak
+ \else
+ \checkafterdiscretionary
+ \bgroup
+ \checkbeforediscretionary
+ \prewordbreak
+ \discretionary{\hbox{#2}}{}{\hbox{#2}}%
+ \allowbreak\postwordbreak
+ \egroup
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \nextnextnext}
+
+%D Since we don't have to bother about active characters any
+%D longer, we end up with a pretty simple activating macro:
+
+\def\enableactivediscretionaries%
+ {\let\dotextmodediscretionary=\activedotextmodediscretionary}
+
+%D Done somewhere else: \type {\enableactivediscretionaries}.
+
%D \macros
%D {installcompoundcharacter}
%D
@@ -697,10 +781,9 @@
%\let\next\relax % forget "{ee} -> ee
\def\next{\handlecompoundcharacterone#1}% % ignore "{ee} -> "ee
\else\ifx\next\egroup
- \let\next\relax
+ \def\next{\getvalue{\@nc@\string#1}}%
\else\ifx\next\blankspace
- %\let\next\relax
- \def\next{\getvalue{\@nc@\string#1}}% better
+ \def\next{\getvalue{\@nc@\string#1}}%
\else
\def\next{\dodohandlecompoundcharacter#1}%
\fi\fi\fi
diff --git a/tex/context/base/supp-mis.tex b/tex/context/base/supp-mis.tex
index c8071bf55..5fe26ba9a 100644
--- a/tex/context/base/supp-mis.tex
+++ b/tex/context/base/supp-mis.tex
@@ -141,6 +141,8 @@
\ifnocontextobject \eightbitcharacterstrue \do \newif\ifeightbitcharacters \fi
\ifnocontextobject \MPdrawingdonetrue \do \newif\ifMPdrawingdone \fi
+\ifnocontextobject \ifzeropt \do \let\ifzeropt\ifcase \fi
+
%D \macros
%D {@@...}
%D
@@ -158,6 +160,16 @@
\ifnocontextobject \@@active \do \chardef\@@active = 13 \fi
\ifnocontextobject \@@comment \do \chardef\@@comment = 14 \fi
+%D \macros
+%D {@EA,expanded}
+%D
+%D Also needed:
+
+\let\@EA=\expandafter
+
+\def\expanded#1%
+ {\edef\@@expanded{\noexpand#1}\@@expanded}
+
%D \macros
%D {everyline,EveryLine,EveryPar}
%D
diff --git a/tex/context/base/supp-mpe.tex b/tex/context/base/supp-mpe.tex
new file mode 100644
index 000000000..92d2e860d
--- /dev/null
+++ b/tex/context/base/supp-mpe.tex
@@ -0,0 +1,342 @@
+%D \module
+%D [ file=supp-mpe,
+%D version=1999.07.10,
+%D title=\CONTEXT\ Support Macros,
+%D subtitle=METAPOST Special Extensions,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+%D This module is still experimental and deals with some
+%D extensions to \METAPOST. When using \POSTSCRIPT\ output,
+%D these extensions can be supplied by means of proper
+%D preamble definitions, but when producing \PDF\ we have to
+%D set up the appropriate datastructures ourselves. It acts as
+%D a plug in into \type {supp-pdf}. As soon as we need more
+%D extensions, we will generalize these macro.
+
+\writestatus{loading}{MetaPost Special Extensions}
+
+%D We implement extensions by using the \METAPOST\ special
+%D mechanism. Opposite to \TEX's specials, the \METAPOST\ ones
+%D are flushed before or after the graphic data, but thereby
+%D are no longer connected to a position.
+%D
+%D We implement specials by overloading the \type {fill}
+%D operator. By counting the fills, we can let the converter
+%D treat the appropriate fill in a special way. The
+%D specification of the speciality can have two forms,
+%D determined by the setting of a boolean variable:
+%D
+%D \starttypen
+%D _inline_shading_ := false ; % comment like code (default)
+%D _inline_shading_ := true ; % command like code
+%D \stoptypen
+%D
+%D When the specification is embedded as comment, it looks
+%D like:
+%D
+%D \starttypen
+%D %%MetaPostSpecial <size> <data> <number> <identifier>
+%D \stoptypen
+%D
+%D The in||line alternative is more tuned for \POSTSCRIPT,
+%D since it permits us to define a macro \type {special}.
+%D
+%D \starttypen
+%D inline : <data> <number> <identifier> <size> special
+%D \stoptypen
+%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 \starttypen
+%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 \stoptypen
+%D
+%D The implementation below, saves the data on the stack in
+%D a way similar to the macros in \type {supp-pdf.tex}, and
+%D just overload a few already defined handlers. That way,
+%D the existing macros are still generic. \voetnoot {Actually,
+%D the macros here are just as generic.}
+%D
+%D Currently the only extension concerns shading, which is
+%D accomplished by handling yet another value of \type
+%D {\finiMPpath}. The recource disctionary is stored and
+%D later picked up by the general \CONTEXT\ figure inclusion
+%D macros.
+
+\unprotect
+
+\newcount\currentPDFshade % global count
+\newcount\currentMPshade % local count
+\newcount\currentMPfill % local count
+\chardef\inlineMPspecials=0 % only needed for stack resetting
+\let\currentMPshades\empty
+
+\def\dohandleMPspecialcomment#1
+ {\setMPargument{#1}%
+ \advance\scratchcounter by -1
+ \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=1
+ \let\handleMPsequence=\dohandleMPsequence
+ \expandafter\handleMPsequence
+ \else
+ \chardef\inlineMPspecials=0
+ \expandafter\dohandleMPspecialcomment
+ \fi}
+
+\def\startMPresources%
+ {\global\let\currentMPshades\empty
+ \global\currentMPfill=0
+ \global\currentMPshade=0
+ \ifx\currentPDFresources\empty\else
+ \message{unused resources before shade \the\currentPDFshade}%
+ \fi
+ \global\let\currentPDFresources\empty}
+
+\def\stopMPresources%
+ {\ifx\currentMPshades\empty
+ \global\let\currentPDFresources\empty
+ \else
+ \xdef\currentPDFresources%
+ {/Shading << \currentMPshades >>}%
+ \fi}
+
+\def\startMPshading#1%
+ {\edef\currentMPspecial{\gMPs{#1}}}
+
+\def\stopMPshading%
+ {\global\advance\currentPDFshade by 1
+ \global\advance\currentMPshade by 1
+ \setevalue{mps:Sh:\currentMPspecial}% non global !!
+ {\the\currentPDFshade}%
+ \xdef\currentMPshades%
+ {\currentMPshades/Sh\the\currentPDFshade\space\the\pdflastobj\space0 R }}
+
+\def\processMPpath%
+ {\global\advance\currentMPfill by 1
+ \ifnum\finiMPpath=2 \ifx\currentMPshades\empty \else
+ \doifdefined{mps:Sh:\the\currentMPfill}
+ {\chardef\finiMPpath=4 \PDFcode{q /Pattern cs}}%
+ \fi \fi
+ \flushMPpath
+ \closeMPpath
+ \PDFcode
+ {\ifcase\finiMPpath
+ W n\or S\or f\or B\or W n /Sh\getvalue{mps:Sh:\the\currentMPfill} sh Q%
+ \fi}%
+ \let\handleMPsequence=\dohandleMPsequence
+ \resetMPstack
+ \nofMPsegments=0
+ \handleMPsequence}
+
+\def\handleMPspecialcommand%
+ {\ifcase\inlineMPspecials\or
+ \advance\nofMParguments by -1 % pop the size
+ \fi
+ \doifundefinedelse{\MPspecial}
+ {\message{[unknown \MPspecial]}}
+ {\getvalue{\MPspecial}}%
+ \ifcase\inlineMPspecials
+ \doresetMPstack % 0
+ \else
+ \resetMPstack % 1
+ \fi}
+
+\def\MPspecial%
+ {MP special \gMPs\nofMParguments}
+
+\def\defineMPspecial#1#2%
+ {\setvalue{MP special #1}{#2}}
+
+%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 \haalbuffer
+%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 \haalbuffer
+%D
+%D These backgrounds can for instance be applied to \type
+%D {\framed}:
+%D
+%D \startbuffer
+%D \setupframed[breedte=3cm,hoogte=2cm,kader=uit]
+%D \startcombinatie[3*1]
+%D {\framed[achtergrond=demo 1]{\bfd \white Demo 1}} {}
+%D {\framed[achtergrond=demo 2]{\bfd \white Demo 2}} {}
+%D {\framed[achtergrond=demo 3]{\bfd \white Demo 3}} {}
+%D \stopcombinatie
+%D \stopbuffer
+%D
+%D \typebuffer
+%D
+%D \startregelcorrectie
+%D \haalbuffer
+%D \stopregelcorrectie
+%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[achtergrond=Shade-#1,breedte=2cm,hoogte=2cm,kader=uit]{}}
+%D
+%D \startregelcorrectie
+%D \startcombinatie[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 \stopcombinatie
+%D \stopregelcorrectie
+%D
+%D \blanko
+%D
+%D \startregelcorrectie
+%D \startcombinatie[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 \stopcombinatie
+%D \stopregelcorrectie
+%D
+%D \blanko
+%D
+%D \startregelcorrectie
+%D \startcombinatie[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 \stopcombinatie
+%D \stopregelcorrectie
+%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 \starttabulatie[|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 \stoptabulatie
+
+\defineMPspecial{2}
+ {\startMPshading{14}% type 2
+ \immediate\pdfobj
+ {<</FunctionType 2
+ /Domain [\gMPs1 \gMPs2]
+ /C0 [\gMPs4 \gMPs5 \gMPs6]
+ /C1 [\gMPs9 \gMPs{10} \gMPs{11}]
+ /N \gMPs3>>}%
+ \immediate\pdfobj
+ {<</ShadingType 2
+ /ColorSpace /DeviceRGB
+ /Function \the\pdflastobj\space 0 R
+ /Coords [\gMPs7 \gMPs8 \gMPs{12} \gMPs{13}]
+ /Extend [true true]>>}%
+ \stopMPshading}
+
+\defineMPspecial{3}
+ {\startMPshading{16}% type 3
+ \immediate\pdfobj
+ {<</FunctionType 2
+ /Domain [\gMPs1 \gMPs2]
+ /C0 [\gMPs4 \gMPs5 \gMPs6]
+ /C1 [\gMPs{10} \gMPs{11} \gMPs{12}]
+ /N \gMPs3>>}%
+ \immediate\pdfobj
+ {<</ShadingType 3
+ /ColorSpace /DeviceRGB
+ /Function \the\pdflastobj\space 0 R
+ /Coords [\gMPs7 \gMPs8 \gMPs9 \gMPs{13} \gMPs{14} \gMPs{15}]
+ /Extend [true true]>>}%
+ \stopMPshading}
+
+\protect \endinput
diff --git a/tex/context/base/supp-mps.tex b/tex/context/base/supp-mps.tex
index 51ea39dea..20885bebc 100644
--- a/tex/context/base/supp-mps.tex
+++ b/tex/context/base/supp-mps.tex
@@ -70,7 +70,7 @@
%D \macros
%D {startMPrun}
%D
-%D If we just wat to run \METAPOST\ code, that is, not to
+%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
@@ -195,7 +195,7 @@
%D \MPinclusions{input mp-mine}
%D \stoptypen
%D
-%D The token register type {\MPinitializations} is expanded
+%D The token register \type {\MPinitializations} is expanded
%D before all other inclusions.
\newtoks \MPinitializations
@@ -346,7 +346,8 @@
\let\stopwritingMPgraphic=\relax
\let\flushMPgraphics =\relax
-%D By default each graphic gets its own slot (number):
+%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 by 1 }
\def\deallocateMPslot#1{}
@@ -417,8 +418,17 @@
{\setbox\MPgraphicbox=\hbox
{\ifinsertMPgraphics\insertMPfile{#1}{#2}\fi}}
+% \def\placeMPgraphic%
+% {\box\MPgraphicbox}
+
\def\placeMPgraphic%
- {\box\MPgraphicbox}
+ {\ifMPshiftdrawing
+ \dimen0=\MPllx bp
+ \dimen2=\MPlly bp
+ \hbox{\hskip\dimen0\raise\dimen2\box\MPgraphicbox}%
+ \else
+ \box\MPgraphicbox
+ \fi}
%D \macros
%D {startreusableMPgraphic, reuseMPgraphic, useMPbox}
@@ -649,7 +659,7 @@
%D inclusion macros. A decent plain \TEX\ alternative is:
%D
%D \starttypen
-%D \def\includeMPgraphics#1%
+%D \def\includeMPgraphic#1%
%D {\hbox\bgroup
%D \includeMPfonts{#1}%
%D \dogetEPSboundingbox{#1}{\dimen2}{\dimen4}{\dimen6}{\dimen8}%
@@ -672,7 +682,7 @@
%D scaling. For \LATEX\ users the next one wil do:
%D
%D \starttypen
-%D \def\includeMPgraphics#1#%
+%D \def\includeMPgraphic#1#%
%D {\hbox\bgroup
%D \def\includeMPgraphics##1%
%D {\includeMPfonts{##1}%
@@ -1074,7 +1084,7 @@
\let\MPdrawingdata\empty
\newif\ifMPdrawingdone \MPdrawingdonefalse
-\newif\ifMPshiftdrawing \MPshiftdrawingtrue
+\newif\ifMPshiftdrawing \MPshiftdrawingfalse
\def\resetMPdrawing%
{\global\let\MPdrawingdata\empty
@@ -1087,22 +1097,28 @@
\def\popMPdrawing%
{\popmacro\MPdrawingdata}
+% \def\getMPdrawing%
+% {\ifMPdrawingdone
+% \bgroup
+% \setbox0=\hbox
+% {\expandafter\startMPgraphic\MPdrawingdata\stopMPgraphic
+% \loadcurrentMPgraphic\empty
+% \placeMPgraphic}%
+% \ifMPshiftdrawing
+% \dimen0=\MPllx bp
+% \dimen2=\MPlly bp
+% \hbox{\hskip\dimen0\raise\dimen2\box0}%
+% \else
+% \box0
+% \fi
+% \egroup
+% \fi}
+
\def\getMPdrawing%
{\ifMPdrawingdone
- \bgroup
- \setbox0=\hbox
- {\expandafter\startMPgraphic\MPdrawingdata\stopMPgraphic
- \loadcurrentMPgraphic\empty
-%\deallocateMPslot\currentMPgraphic
- \placeMPgraphic}%
- \ifMPshiftdrawing
- \dimen0=\MPllx bp
- \dimen2=\MPlly bp
- \hbox{\hskip\dimen0\raise\dimen2\box0}%
- \else
- \box0
- \fi
- \egroup
+ \expandafter\startMPgraphic\MPdrawingdata\stopMPgraphic
+ \loadcurrentMPgraphic\empty
+ \placeMPgraphic
\fi}
\long\def\startMPdrawing#1\stopMPdrawing%
@@ -1188,6 +1204,47 @@
\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 \recycleMPslotsfalse
+
+\def\allocateMPslot#1%
+ {\ifrunMPgraphics
+ \ifcase\pdfoutput \recycleMPslotsfalse \fi
+ \else
+ \recycleMPslotsfalse
+ \fi
+ \ifrecycleMPslots
+ \doloop
+ {\doifundefined{\recurselevel MP}
+ {\global\letvalue{\recurselevel MP}=\empty
+ \global#1=\recurselevel\exitloop}}%
+ %\message{[MP slot + \number#1]%
+ \else
+ \global\advance#1 by 1
+ \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:
+
+\def\MPdatafile%
+ {mp-\the\currentMPgraphic.tmp}
+
\protect
\endinput
diff --git a/tex/context/base/supp-pdf.tex b/tex/context/base/supp-pdf.tex
index 972a4b02a..83205eb13 100644
--- a/tex/context/base/supp-pdf.tex
+++ b/tex/context/base/supp-pdf.tex
@@ -1,6 +1,6 @@
%D \module
%D [ file=supp-pdf,
-%D version=1998.10.15,
+%D version=2000.04.28,
%D title=\CONTEXT\ Support Macros,
%D subtitle=\METAPOST\ to \PDF\ conversion,
%D author=Hans Hagen,
@@ -36,7 +36,7 @@
\ifx\pdfliteral\undefined
\def\PDFcode#1{\message{[ignored pdfliteral: #1]}}
\else
- \let\PDFcode=\pdfliteral
+ \let\PDFcode\pdfliteral
\fi
%D \macros
@@ -356,7 +356,7 @@
%D
%D \starttypen
%D \gMPa {number}
-%D \sMPa {number}
+%D \gMPs {number}
%D \stoptypen
%D
%D When scanning a path specification, we also save the
@@ -404,10 +404,10 @@
{\do#1}}
\def\gMPa#1%
- {\csname\@@MP0#1\endcsname}
+ {\csname\@@MP0\number#1\endcsname}
\def\gMPs#1%
- {\csname\@@MP\the\nofMPsegments#1\endcsname}
+ {\csname\@@MP\the\nofMPsegments\number#1\endcsname}
\def\setMPkeyword#1
{\expandafter\def\csname\@@MP\the\nofMPsegments0\endcsname{#1}%
@@ -577,6 +577,7 @@
\PDFcode{\gMPa1 M}%
\resetMPstack
\else\ifx\somestring\PSfshow
+ \PDFcode{n}%
\handleMPfshow
\resetMPstack
\else\ifx\somestring\PSsetlinecap
@@ -661,6 +662,7 @@
\dimen0=\MPxscale\dimen0
\xdef\MPwidth{\the\dimen0}%
\advance\dimen2 by #5bp
+ \xdef\MPyshift{\the\dimen2}% unscaled
\dimen2=\MPyscale\dimen2
\xdef\MPheight{\the\dimen2}%
\chardef\currentMPboundingbox=#1\relax
@@ -714,12 +716,13 @@
%D take care of \type{(split arguments)}.
\def\handleMPfshow%
- {\setbox0=\hbox
+ {\bgroup
+ \setbox\scratchbox=\hbox
{\obeyMPspecials
- \edef\size{\gMPa{\the\nofMParguments}}%
+ \edef\size{\gMPa\nofMParguments}%
\ifx\size\PSnfont % round font size (to pt)
\advance\nofMParguments by -1
- \expandafter\scratchdimen\gMPa{\the\nofMParguments}pt
+ \expandafter\scratchdimen\gMPa\nofMParguments pt
\ifdim\scratchdimen<1pt
\def\size{1pt}%
\else
@@ -731,7 +734,7 @@
\edef\size{\size bp}%
\fi
\advance\nofMParguments by -1
- \font\temp=\gMPa{\the\nofMParguments} at \size
+ \font\temp=\gMPa\nofMParguments\space at \size
\advance\nofMParguments by -1
\temp
\ifnum\nofMParguments=1
@@ -739,27 +742,41 @@
\gMPa1%
\else
\scratchcounter=1
- \def\do(##1{\if##1 \char32\else##1\fi}%
- \gMPa{\the\scratchcounter}\space
- \def\do{}%
+ \def\dodo##1%
+ {\edef\!!stringa{##1}\ifx\!!stringa\space\char32\else##1\fi}%
+ \def\do(##1{\dodo{##1}}%
+ \gMPa\scratchcounter\space
+ \let\do\relax
\loop
\advance\scratchcounter by 1
\ifnum\scratchcounter<\nofMParguments
- \gMPa{\the\scratchcounter}\space
+ [\gMPa\scratchcounter]\space
\repeat
- \def\do##1){\if##1 \char32\else##1\fi}%
- \gMPa{\the\scratchcounter}%
+ \def\do##1){\dodo{##1}}%
+ \gMPa\scratchcounter
\fi
\unskip}%
- \dimen0=\lastMPmoveY bp
- \advance\dimen0 by \ht0
- \ScaledPointsToBigPoints{\number\dimen0}\lastMPmoveY
- \PDFcode{n q 1 0 0 1 \lastMPmoveX\space\lastMPmoveY\space cm}%
- \dimen0=\ht0
- \advance\dimen0 by \dp0
- \box0
- \vskip-\dimen0
- \PDFcode{Q}}
+ %
+ % this fails in latest pdftex's
+ %
+ % \dimen0=\lastMPmoveY bp
+ % \advance\dimen0 by \ht0
+ % \ScaledPointsToBigPoints{\number\dimen0}\lastMPmoveY
+ % \PDFcode{n q 1 0 0 1 \lastMPmoveX\space\lastMPmoveY\space cm}%
+ % \dimen0=\ht0
+ % \advance\dimen0 by \dp0
+ % \box0
+ % \vskip-\dimen0
+ % \PDFcode{Q}%
+ % \egroup}
+ %
+ \setbox\scratchbox=\hbox
+ {\hskip\lastMPmoveX bp\raise\lastMPmoveY bp\box\scratchbox}%
+ \ht\scratchbox\!!zeropoint
+ \dp\scratchbox\!!zeropoint
+ \wd\scratchbox\!!zeropoint
+ \box\scratchbox
+ \egroup}
%D Most operators are just converted and keep their
%D arguments. Dashes however need a bit different treatment,
@@ -776,10 +793,10 @@
\scratchcounter=1
\loop
\ifnum\scratchcounter<\nofMParguments
- \edef\somestring{\somestring\space\gMPa{\the\scratchcounter}}%
+ \edef\somestring{\somestring\space\gMPa\scratchcounter}%
\advance\scratchcounter by 1
\repeat
- \edef\somestring{\somestring]\gMPa{\the\scratchcounter} d}%
+ \edef\somestring{\somestring]\gMPa\scratchcounter\space d}%
\PDFcode{\somestring}%
\egroup}
@@ -1342,6 +1359,14 @@
\let\currentPDFresources\empty
+\def\convertMPtoPDF#1#2#3%
+ {\bgroup
+ \setbox\scratchbox=\vbox\bgroup
+ \forgetall
+ \offinterlineskip
+ \startMPresources
+ \doprocessMPtoPDFfile{#1}{#2}{#3}} % {#1}{0#2}{0#3} would be saver
+
\def\processMPtoPDFfile% file xscale yscale
{\bgroup
\let\finishMPgraphic=\egroup
@@ -1360,43 +1385,49 @@
\input#1\relax
\deleteMPgraphic{#1}}
-\def\convertMPtoPDF#1#2#3%
- {\bgroup
- \setbox0=\vbox\bgroup
- \forgetall
- \offinterlineskip
- \PDFcode{q}%
- \startMPresources
- \doprocessMPtoPDFfile{#1}{#2}{#3}}
-
-\def\finishMPgraphic%
+\def\finishMPgraphic%
{\stopMPresources
- \PDFcode{Q}%
\egroup
- \wd0=\MPwidth
\ifx\pdftexversion\undefined\else\ifnum\pdftexversion<14 % for the moment
\chardef\makeMPintoPDFobject=0
\fi\fi
- \ifcase\makeMPintoPDFobject\or
- \setbox0=
- \or\ifx\currentPDFresources\empty\else
- \chardef\makeMPintoPDFobject=1 \setbox0=
+ \ifcase\makeMPintoPDFobject\or\or\ifx\currentPDFresources\empty\else
+ \chardef\makeMPintoPDFobject=1
\fi\fi
- \vbox to \MPheight
+ \setbox\scratchbox=\vbox
{\forgetall
- \vfill
- \PDFcode{q \MPxscale\space 0 0 \MPyscale\space
- \MPxoffset\space \MPyoffset\space cm}%
- \box0
- \PDFcode{Q}}%
- \ifcase\makeMPintoPDFobject\or
- \immediate\pdfxform attr{\currentPDFresources}0%
+ \hbox
+ {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space \MPxoffset\space \MPyoffset\space cm}%
+ \lower\MPyshift\box\scratchbox % unscaled shift
+ \PDFcode{Q}}}%
+ \ht\scratchbox\MPheight
+ \wd\scratchbox\MPwidth
+ \dp\scratchbox\!!zeropoint
+ \ifcase\makeMPintoPDFobject
+ \box\scratchbox
+ \or
+ \immediate\pdfxform attr{\currentPDFresources}\scratchbox
\xdef\lastPDFMPobject{\the\pdflastxform}%
\pdfrefxform\lastPDFMPobject
\global\let\currentPDFresources\empty
+ \else
+ \box\scratchbox
\fi
\egroup}
+% \setbox\scratchbox=\vbox
+% {\forgetall
+% \dimen0=\MPllx bp
+% \dimen2=\MPlly bp
+% \setbox\scratchbox=\hbox{\hskip-\dimen0\raise-\dimen2\box\scratchbox}%
+% \ht\scratchbox=\!!zeropoint
+% \dp\scratchbox=\!!zeropoint
+% \wd\scratchbox=\!!zeropoint
+% \hbox
+% {\PDFcode{q \MPxscale\space 0 0 \MPyscale\space 0 0 cm}%
+% \lower\MPheight\box\scratchbox
+% \PDFcode{Q}}}%
+
%D \macros
%D {deleteMPgraphic,
%D startMPresources,
diff --git a/tex/context/base/symb-ini.tex b/tex/context/base/symb-ini.tex
index b58a496d2..16a05c096 100644
--- a/tex/context/base/symb-ini.tex
+++ b/tex/context/base/symb-ini.tex
@@ -89,8 +89,8 @@
{\doifdefinedelse{\??ss#1}{\getvalue{\??ss#1}}{#1}}%
\fi}
-\unexpanded\def\symbol%
- {\dodoubleempty\dosymbol}
+\unexpanded\def\symbol% % This one always gobbles spaces,
+ {\dodoubleempty\dosymbol} % so never change it again!
%D \macros
%D {definefiguresymbol}
@@ -274,6 +274,13 @@
\definesymbol [\v!achteruit] [{\symbol[\v!vorigepagina]}]
\definesymbol [\v!vooruit] [{\symbol[\v!volgendepagina]}]
+%D The next two symbols (\symbol[P] and \symbol[S]) are
+%D variations in their math counterparts. The following ones
+%D {\em do} scale.
+
+\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
diff --git a/tex/context/base/syst-ext.tex b/tex/context/base/syst-ext.tex
index 1c8ad40e0..229883caf 100644
--- a/tex/context/base/syst-ext.tex
+++ b/tex/context/base/syst-ext.tex
@@ -224,7 +224,7 @@
%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 onthe previous
+%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
@@ -235,12 +235,12 @@
%D Signals old dimensions and can be used in skips, kerns and
%D tests like \type{\ifdim}.
-\newdimen\currentsignal
+\newdimen\maximumsignal % step is about 0.00025pt
\def\newsignal#1%
{\ifx#1\undefined
- \advance\currentsignal by 0.00025pt
- \edef#1{\the\currentsignal}%
+ \advance\maximumsignal by 2sp % to be save in rounding
+ \edef#1{\the\maximumsignal}%
\fi}
%D \macros
@@ -248,7 +248,7 @@
%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 possible one should use:
%D
%D \starttypen
%D \newskimen\tempskimen
@@ -334,6 +334,19 @@
\let\ifconditional = \ifcase
%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 \starttypen
+%D \ifzeropt \somedimen ... \else ... \fi
+%D \stoptypen
+
+\let\ifzeropt\ifcase
+
+%D \macros
%D {dorecurse,recurselevel,recursedepth,
%D dostepwiserecurse,
%D for}
@@ -765,6 +778,25 @@
%D argument are completely redundant.
%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 \starttypen
+%D \doifmeaningelse {\next} {\something} {true} {false}
+%D \stoptypen
+%D
+%D Watch the one level expansion of the second argument.
+
+\def\doifmeaningelse#1#2#3#4%
+ {\edef\!!stringa{\meaning#1}%
+ \def\!!stringb{#2}\edef\!!stringb{\meaning\!!stringb}%
+ \ifx\!!stringa\!!stringb#3\else#4\fi}
+
+%D \macros
%D {ExpandFirstAfter,ExpandSecondAfter,ExpandBothAfter}
%D
%D These three commands support expansion of arguments before
@@ -1496,45 +1528,65 @@
%D
%D But here we prefer:
-\def\appendtoks%
- {\bgroup
- \let\bgroup\relax
- \futurelet\scratchtoken\doappendtoks}
-
-\def\doappendtoks%
- {\ifx\scratchtoken\normalbgroup
- \egroup\expandafter\dodoappendtoks
- \else
- \egroup\expandafter\dododoappendtoks
- \fi}
+% haha, far to complex
+%
+% \def\appendtoks%
+% {\bgroup
+% \let\bgroup\relax
+% \futurelet\scratchtoken\doappendtoks}
+%
+% \def\doappendtoks%
+% {\ifx\scratchtoken\normalbgroup
+% \egroup\expandafter\dodoappendtoks
+% \else
+% \egroup\expandafter\dododoappendtoks
+% \fi}
+%
+% \def\dodoappendtoks#1%
+% {\dododoappendtoks{{#1}}}
+%
+% \def\dododoappendtoks#1\to#2%
+% {\scratchtoks={#1}%
+% \edef\scratchtoken{\noexpand#2={\the#2\the\scratchtoks}}%
+% \scratchtoken
+% \dodoglobal#2=#2}
+%
+% \def\prependtoks%
+% {\bgroup
+% \let\bgroup\relax
+% \futurelet\scratchtoken\doprependtoks}
+%
+% \def\doprependtoks%
+% {\ifx\scratchtoken\normalbgroup
+% \egroup\expandafter\dodoprependtoks
+% \else
+% \egroup\expandafter\dododoprependtoks
+% \fi}
+%
+% \def\dodoprependtoks#1%
+% {\dododoprependtoks{{#1}}}
+%
+% \def\dododoprependtoks#1\to#2%
+% {\scratchtoks={#1}%
+% \edef\scratchtoken{\noexpand#2={\the\scratchtoks\the#2}}%
+% \scratchtoken
+% \dodoglobal#2=#2}
-\def\dodoappendtoks#1%
- {\dododoappendtoks{{#1}}}
+\def\appendtoks%
+ {\doappendtoks\relax}
-\def\dododoappendtoks#1\to#2%
- {\scratchtoks={#1}%
- \edef\scratchtoken{\noexpand#2={\the#2\the\scratchtoks}}%
+\long\def\doappendtoks#1\to#2%
+ {\@EA\scratchtoks\@EA{\gobbleoneargument#1}%
+ \long\edef\scratchtoken{\noexpand#2={\the#2\the\scratchtoks}}%
\scratchtoken
\dodoglobal#2=#2}
\def\prependtoks%
- {\bgroup
- \let\bgroup\relax
- \futurelet\scratchtoken\doprependtoks}
+ {\doprependtoks\relax}
-\def\doprependtoks%
- {\ifx\scratchtoken\normalbgroup
- \egroup\expandafter\dodoprependtoks
- \else
- \egroup\expandafter\dododoprependtoks
- \fi}
-
-\def\dodoprependtoks#1%
- {\dododoprependtoks{{#1}}}
-
-\def\dododoprependtoks#1\to#2%
+\long\def\doprependtoks#1\to#2%
{\scratchtoks={#1}%
- \edef\scratchtoken{\noexpand#2={\the\scratchtoks\the#2}}%
+ \long\edef\scratchtoken{\noexpand#2={\the\scratchtoks\the#2}}%
\scratchtoken
\dodoglobal#2=#2}
@@ -1745,6 +1797,12 @@
\aftersplitstring#3\at,,\to#3\relax
\beforesplitstring#3\at,,\to#3}
+\def\removefromcommalist#1#2%
+ {\doremovefromcommalist{ }{#1}{#2}%
+ \doremovefromcommalist{}{#1}{#2}%
+ \dofrontstrip#2%
+ \dodoglobal\edef#2{#2}}
+
\def\dodofrontstrip[#1#2]#3%
{\ifx#1\space
\def#3{#2}%
@@ -1759,12 +1817,6 @@
\@EA\dodofrontstrip\@EA[#1]#1%
\fi}
-\def\removefromcommalist#1#2%
- {\doremovefromcommalist{ }{#1}{#2}%
- \doremovefromcommalist{}{#1}{#2}%
- \dofrontstrip#2%
- \dodoglobal\edef#2{#2}}
-
%D \macros
%D {replaceincommalist}
%D
@@ -2318,37 +2370,82 @@
%D global character.
%D \macros
-%D {processconcanatedlist}
+%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 \starttypen
-%D \processconcanatedlist[list][separator]\command
+%D \processseparatedlist[list][separator]\command
%D \stoptypen
%D
%D One can think of things like:
%D
%D \starttypen
-%D \processconcanatedlist[alfa+beta+gamma][+]\message
+%D \processseparatedlist[alfa+beta+gamma][+]\message
%D \stoptypen
-\def\processconcanatedlist[#1][#2]#3%
- {\def\doprocessconcanatedlist##1##2#2%
+%D First we show the simple alternative:
+%D
+%D \starttypen
+%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 \stoptypen
+%D
+%D However, we want to handle all situations, like:
+%D
+%D \starttypen
+%D \processseparatedlist[{aap noot}] [ ]{\def\xxx} \show\xxx
+%D \processseparatedlist[{aap} {noot}][ ]{\def\xxx} \show\xxx
+%D \processseparatedlist[aap {noot}] [ ]{\def\xxx} \show\xxx
+%D \processseparatedlist[aap noot] [ ]{\def\xxx} \show\xxx
+%D \stoptypen
+%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\next=\relax
+ \let\dodoprocessseparatedlist\relax
\else\if]##2%
- \let\next=\relax
+ \let\dodoprocessseparatedlist\relax
\else\ifx\blankspace##2%
- #3{##1}%
- \let\next=\doprocessconcanatedlist
+ #4{##1}%
\else
- #3{##1##2}%
- \let\next=\doprocessconcanatedlist
+ #4{##1##2}%
\fi\fi\fi
- \next}%
- \doprocessconcanatedlist#1#2]#2}
+ \dodoprocessseparatedlist}%
+ \@EA\dodoprocessseparatedlist\gobbleoneargument#1#3]#3}
+
+\def\processseparatedlist[%
+ {\doprocessseparatedlist\relax}
+
+% %D \macros
+% %D {dohonorgroupedargument}
+% %D
+% %D The previous macro uses yet another auxiliary macro to
+% %D handle the special case.
+%
+% \def\dohonorgroupedargument#1[%
+% {\doifnextcharelse\bgroup{\dodohonorgroupedargument#1}{#1[}}
+%
+% \def\dodohonorgroupedargument#1#2%
+% {#1[{{#2}}}
%D \macros
%D {processassignlist}
@@ -2949,6 +3046,20 @@
\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}
+%D
+%D The next assignments are all valid:
+%D
+%D \starttypen
+%D \setdimensionwithunit\scratchdimen{10} {cm}
+%D \setdimensionwithunit\scratchdimen{10cm}{cm}
+%D \setdimensionwithunit\scratchdimen{10cm}{}
+%D \stoptypen
+
+\def\setdimensionwithunit#1#2#3% number unit dimension / nice trick
+ {\afterassignment\gobblefourarguments#1=#2#3pt\relax\relax\relax\relax\relax}
+
\protect
\endinput
diff --git a/tex/context/base/syst-gen.tex b/tex/context/base/syst-gen.tex
index 83879d0fa..2d42c944d 100644
--- a/tex/context/base/syst-gen.tex
+++ b/tex/context/base/syst-gen.tex
@@ -108,6 +108,14 @@
%D \writestatus{laden}{Context Systeem Macro's (a)}
%D \stoptypen
+%D The next few macros are needed in case this module is
+%D used outside \CONTEXT.
+
+\ifx\beginTEX\undefined
+ \long\def\beginETEX#1\endETEX{}
+ \let\beginTEX\relax \let\endTEX\relax
+\fi
+
%D \macros
%D [beschermen]
%D {protect,unprotect}
@@ -264,6 +272,7 @@
\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
@@ -397,7 +406,10 @@
%D \stoptypen
%D
%D However complicated it may look, I'm still glad I stumbled
-%D into this construction.
+%D into this construction. Saving and restoring \type {\:} is
+%D needed when we use \PPCHTEX\ in \LATEX.
+
+\let\next\:
\def\:{\let\blankspace= } \:
@@ -405,6 +417,8 @@
\expandafter\def\: {\futurelet\nexttoken\inspectnextcharacter}
+\let\:\next
+
%D \macros
%D {setvalue,setgvalue,setevalue,setxvalue,
%D letvalue,
@@ -452,6 +466,17 @@
{\expandafter\let\csname#1\endcsname\empty}
%D \macros
+%D {showvalue,showargument}
+%D
+%D A handy macro for testing purposes only, is the following:
+
+\def\showvalue#1%
+ {\expandafter\show\csname#1\endcsname}
+
+\def\showargument#1%
+ {\convertargument#1\to\ascii\show\ascii}
+
+%D \macros
%D {donottest,unexpanded}
%D
%D When expansion of a macro gives problems, we can precede it
@@ -1303,42 +1328,65 @@
\def\doprocesscommaitem%
{\futurelet\nexttoken\dodoprocesscommaitem}
-\def\doprocesscommalistA#1#2]#3%
- {\global\advance\commalevel 1
- \long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
- {#3{##1}\doprocesscommaitem}%
- \doprocesscommaitem{#1}#2,]\relax
- \global\advance\commalevel -1 }
-
-\def\doprocesscommalistB#1]#2%
- {\global\advance\commalevel 1
- \long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
- {#2{##1}\doprocesscommaitem}%
- \doprocesscommaitem#1,]\relax
- \global\advance\commalevel -1 }
-
%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 \starttypen
+%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 \stoptypen
+%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]%
- \let\nextcommaitem\gobbletwoarguments
- \else\ifx\nexttoken\bgroup
- \let\nextcommaitem\doprocesscommalistA
+ \expandafter\gobblethreearguments
\else
- \let\nextcommaitem\doprocesscommalistB
- \fi\fi
- \nextcommaitem}
+ \expandafter\doprocesscommalist
+ \fi
+ \relax} % this one preserved the next {}
-\def\processcommalist[%
- {\futurelet\nexttoken\docheckcommaitem}
+\def\doprocesscommalist#1]#2%
+ {\global\advance\commalevel 1
+ \long\expandafter\def\csname\s!next\the\commalevel\endcsname##1,%
+ {#2{##1}\doprocesscommaitem}%
+ \@EA\dodoprocesscommaitem\gobbleoneargument#1,]\relax
+ \global\advance\commalevel -1 }
%D One way of quitting a commalist halfway is:
-% \def\quitcommalist%
-% {\@EA\let\csname\s!next\the\commalevel\endcsname\gobbleoneargument}
-
\def\quitcommalist%
{\bgroup\let\doprocesscommaitem\doquitcommalist}
@@ -1860,7 +1908,7 @@
%D
%D The macro accepts \type{123}, \type{abc}, \type{{}},
%D \type{\getal} and \type{\the\count...}. This macro is a
-%D reather dirty one.
+%D rather dirty one.
\long\def\doifnumberelse#1#2#3%
{\bgroup\donefalse
@@ -2028,7 +2076,7 @@
% \fi}
%D \macros
-%D {dosetvalue,dosetevalue,docopyvalue,doresetvalue,
+%D {dosetvalue,dosetevalue,dosetgvalue,docopyvalue,doresetvalue,
%D dogetvalue}
%D
%D When we are going to do assignments, we have to take
@@ -2038,6 +2086,7 @@
%D \starttypen
%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 \stoptypen
@@ -2051,6 +2100,9 @@
\def\dosetevalue#1#2% #3
{\@EA\edef\csname#1#2\endcsname} % {#3}}
+\def\dosetevalue#1#2% #3
+ {\@EA\gdef\csname#1#2\endcsname} % {#3}}
+
\def\doresetvalue#1#2%
{\@EA\def\csname#1#2\endcsname{}}
@@ -2129,7 +2181,7 @@
{\dosetvalue{#1}{#2}{#3}}}
%D \macros
-%D {getparameters,geteparameters} % ,forgetparameters}
+%D {getparameters,geteparameters,getgparameters} % ,forgetparameters}
%D
%D Using the assignment commands directly is not our
%D ideal of user friendly interfacing, so we take some further
@@ -2210,6 +2262,9 @@
\def\geteparameters%
{\dogetparameters\dosetevalue}
+\def\getgparameters%
+ {\dogetparameters\dosetgvalue}
+
% \def\forgetparameters%
% {\dogetparameters\doresetvalue}
diff --git a/tex/context/base/syst-tex.tex b/tex/context/base/syst-tex.tex
index de41c84f5..5d0bc72c6 100644
--- a/tex/context/base/syst-tex.tex
+++ b/tex/context/base/syst-tex.tex
@@ -130,7 +130,7 @@
\fi
%D When applicable, we also load the \ETEX\ source and
-%D defintion files.
+%D definition files.
\bgroup \obeylines
diff --git a/tex/context/base/verb-ini.tex b/tex/context/base/verb-ini.tex
index e9ac25290..5cc8f7676 100644
--- a/tex/context/base/verb-ini.tex
+++ b/tex/context/base/verb-ini.tex
@@ -446,6 +446,7 @@
\edef\endofverbatimcommand{\csname\verbatimname\endcsname}%
\edef\endofverbatimcommand{\meaning\endofverbatimcommand}%
\verbatimfont \spaceskip=.5em \xspaceskip=\spaceskip
+ \global\linepartrue % needed for paragraph numbering
\setupcopyverbatim
\initializeverbatimline
\copyverbatimline}
@@ -664,11 +665,11 @@
\iflinepar\else\EveryPar{}\fi
\leavevmode
\xdef\dokeepverbatimlinedata%
- {\parindent=\the\parindent
+ {\parindent =\the\parindent
\hangindent=\the\hangindent
- \hangafter=\the\hangafter
- \leftskip =\the\leftskip
- \rightskip=\the\rightskip}%
+ \hangafter =\the\hangafter
+ \leftskip =\the\leftskip
+ \rightskip =\the\rightskip}%
\egroup
\dokeepverbatimlinedata
\doopenupverbatimline
@@ -827,7 +828,7 @@
\obeypages
\obeycharacters
\ignoreeofs
- \openin\verbatiminput=#1
+ \openin\verbatiminput=#1\relax
\skipfirstverbatimlinefalse
\initializeverbatimline
\def\readline%
@@ -1709,6 +1710,7 @@
\expandafter\convertargument\csname\verbatimname\endcsname
\to\endofverbatimcommand
\verbatimfont \spaceskip=.5em \xspaceskip=\spaceskip
+ \global\linepartrue % needed for paragraph numbering
\setupcopyverbatim
\initializeverbatimline
\copyverbatimline}
diff --git a/tex/context/config/cont-cz.ini b/tex/context/config/cont-cz.ini
new file mode 100644
index 000000000..2317e4266
--- /dev/null
+++ b/tex/context/config/cont-cz.ini
@@ -0,0 +1,2 @@
+\input cont-cz.tex
+\endinput \ No newline at end of file
diff --git a/tex/context/config/cont-de.ini b/tex/context/config/cont-de.ini
new file mode 100644
index 000000000..f4ec36007
--- /dev/null
+++ b/tex/context/config/cont-de.ini
@@ -0,0 +1,2 @@
+\input cont-de.tex
+\endinput \ No newline at end of file
diff --git a/tex/context/config/cont-en.ini b/tex/context/config/cont-en.ini
new file mode 100644
index 000000000..de2df5ef5
--- /dev/null
+++ b/tex/context/config/cont-en.ini
@@ -0,0 +1,2 @@
+\input cont-en.tex
+\endinput \ No newline at end of file
diff --git a/tex/context/config/cont-nl.ini b/tex/context/config/cont-nl.ini
new file mode 100644
index 000000000..1bd2bd47f
--- /dev/null
+++ b/tex/context/config/cont-nl.ini
@@ -0,0 +1,2 @@
+\input cont-nl.tex
+\endinput \ No newline at end of file
diff --git a/tex/context/config/cont-uk.ini b/tex/context/config/cont-uk.ini
new file mode 100644
index 000000000..467026bd2
--- /dev/null
+++ b/tex/context/config/cont-uk.ini
@@ -0,0 +1,2 @@
+\input cont-uk.tex
+\endinput \ No newline at end of file
diff --git a/tex/context/config/cont-usr.tex b/tex/context/config/cont-usr.tex
index db2526542..161c076c0 100644
--- a/tex/context/config/cont-usr.tex
+++ b/tex/context/config/cont-usr.tex
@@ -32,6 +32,7 @@
\definefilesynonym [lang-en.pat] [ushyph1.tex]
\definefilesynonym [lang-fi.pat] [fihyph.tex]
\definefilesynonym [lang-fr.pat] [frhyph.tex]
+\definefilesynonym [lang-hr.pat] [hrhyph.tex]
\definefilesynonym [lang-it.pat] [ithyph.tex]
\definefilesynonym [lang-la.pat] [lahyph7.tex]
\definefilesynonym [lang-nl.pat] [nehyph.tex]
@@ -41,7 +42,6 @@
\definefilesynonym [lang-sk.pat] [skhyph.tex]
\definefilesynonym [lang-sp.pat] [sphyph.tex]
\definefilesynonym [lang-sv.pat] [sehyph.tex]
-\definefilesynonym [lang-hr.pat] [hrhyph.tex]
\definefilesynonym [lang-tr.pat] [trhyph.tex]
\definefilesynonym [lang-uk.pat] [ukhyphen.tex]
\definefilesynonym [lang-us.pat] [ushyph1.tex]
@@ -51,9 +51,9 @@
%D moment) we specify encodings here.
\installlanguage [\s!cz] [\s!mapping=il2,\s!encoding=il2]
-\installlanguage [\s!sk] [\s!mapping=il2,\s!encoding=il2]
+\installlanguage [\s!hr] [\s!mapping=il2,\s!encoding=il2]
\installlanguage [\s!pl] [\s!mapping=pl0,\s!encoding=pl0]
-\installlanguage [\s!hr] [\s!mapping=il2,\s!encoding=il2] % ans ?
+\installlanguage [\s!sk] [\s!mapping=il2,\s!encoding=il2]
%D Sometimes these are not wanted:
@@ -66,24 +66,26 @@
%D first. Normally you don't have to change a byte.
% \installlanguage [\s!af] [\c!status=\v!start] % afrikaans
+% \installlanguage [\s!cz] [\c!status=\v!start] % czech
% \installlanguage [\s!da] [\c!status=\v!start] % danish
% \installlanguage [\s!de] [\c!status=\v!start] % german
% \installlanguage [\s!en] [\c!status=\v!start] % english us
% \installlanguage [\s!fi] [\c!status=\v!start] % finnish
% \installlanguage [\s!fr] [\c!status=\v!start] % french
+% \installlanguage [\s!hr] [\c!status=\v!start] % croatian
% \installlanguage [\s!it] [\c!status=\v!start] % italian
% \installlanguage [\s!la] [\c!status=\v!start] % latin
% \installlanguage [\s!nl] [\c!status=\v!start] % dutch
% \installlanguage [\s!no] [\c!status=\v!start] % norwegian
% \installlanguage [\s!pl] [\c!status=\v!start] % polish
% \installlanguage [\s!pt] [\c!status=\v!start] % portuguese
+% \installlanguage [\s!sk] [\c!status=\v!start] % slovak
% \installlanguage [\s!sp] [\c!status=\v!start] % spanish
% \installlanguage [\s!sv] [\c!status=\v!start] % swedish
% \installlanguage [\s!tr] [\c!status=\v!start] % turkish
% \installlanguage [\s!uk] [\c!status=\v!start] % english uk
-% \installlanguage [\s!hr] [\c!status=\v!start] % croatian
-\installlanguage [deo] [\c!status=\v!start] % old german
+% \installlanguage [deo] [\c!status=\v!start] % old german
% \installlanguage [nlx] [\c!status=\v!start] % dutch 8 bit
%D The next lines can be used for setting the language to be
@@ -96,6 +98,7 @@
% \setupcurrentlanguage[\s!en]
% \setupcurrentlanguage[\s!fi]
% \setupcurrentlanguage[\s!fr]
+% \setupcurrentlanguage[\s!hr]
% \setupcurrentlanguage[\s!it]
% \setupcurrentlanguage[\s!la]
% \setupcurrentlanguage[\s!nl]
@@ -106,7 +109,6 @@
% \setupcurrentlanguage[\s!sp]
% \setupcurrentlanguage[\s!sv]
% \setupcurrentlanguage[\s!tr]
-% \setupcurrentlanguage[\s!hr]
%D Local font settings can go here. Normally suitable
%D defaults are already preloaded, almost certainly the
@@ -114,9 +116,9 @@
%D next line is only meant as sample, take a look at the
%D format related files first.
-% \definefilesynonym [font-cmr] [font-csr]
-% \definefilesynonym [font-cmr] [font-plr]
+% \definefilesynonym [font-cmr] [font-csr] % czech & slovak
+% \definefilesynonym [font-cmr] [font-plr] % polish
%D Don't remove the next few lines.
-\protect
+\protect \endinput
diff --git a/tex/context/config/context.ini b/tex/context/config/context.ini
new file mode 100644
index 000000000..403a3063f
--- /dev/null
+++ b/tex/context/config/context.ini
@@ -0,0 +1,2 @@
+\input context.tex
+\endinput \ No newline at end of file
diff --git a/tex/generic/context/m-ch-de.tex b/tex/generic/context/m-ch-de.tex
deleted file mode 100644
index 467cdc670..000000000
--- a/tex/generic/context/m-ch-de.tex
+++ /dev/null
@@ -1,10 +0,0 @@
-% name : PPCHTEX / german interface
-% version : 1997.03.05
-% author : J. Hagen
-% copyright : J. Hagen, A.F. Otten
-
-\chardef\interfacenumber=2
-
-\input ppchtex.noc
-
-\endinput
diff --git a/tex/generic/context/m-ch-en.tex b/tex/generic/context/m-ch-en.tex
deleted file mode 100644
index 8c55a5669..000000000
--- a/tex/generic/context/m-ch-en.tex
+++ /dev/null
@@ -1,10 +0,0 @@
-% name : PPCHTEX / english interface
-% version : 1997.03.05
-% author : J. Hagen
-% copyright : J. Hagen, A.F. Otten
-
-\chardef\interfacenumber=0
-
-\input ppchtex.noc
-
-\endinput
diff --git a/tex/generic/context/m-ch-nl.tex b/tex/generic/context/m-ch-nl.tex
deleted file mode 100644
index c9d77733a..000000000
--- a/tex/generic/context/m-ch-nl.tex
+++ /dev/null
@@ -1,10 +0,0 @@
-% name : PPCHTEX / english interface
-% version : 1997.03.05
-% author : J. Hagen
-% copyright : J. Hagen, A.F. Otten
-
-\chardef\interfacenumber=1
-
-\input ppchtex.noc
-
-\endinput
diff --git a/tex/generic/context/m-metapo.tex b/tex/generic/context/m-metapo.tex
deleted file mode 100644
index 6c2fa6fee..000000000
--- a/tex/generic/context/m-metapo.tex
+++ /dev/null
@@ -1,89 +0,0 @@
-%D \module
-%D [ file=m-metapo,
-%D version=1999.03.26,
-%D title=\LATEX\ Modules,
-%D subtitle=\METAPOST\ Inclusion,
-%D author=Hans Hagen,
-%D date=\currentdate,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ distribution and is
-%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
-%C details.
-
-%D We quit when \CONTEXT\ is found and use some deep down
-%D macro to trigger this:
-
-\ifx\undefined\dodoplaceexternalfigure \else \expandafter \endinput \fi
-
-%D \macros
-%D {includeMPgraphics}
-%D
-%D This rather small \LATEX\ module is dedicated to David
-%D Arnold. It takes care of including the fonts used in
-%D \METAPOST\ graphics in the file. This hack is needed when
-%D one uses another \DVI\ driver than \DVIPS. This module
-%D falls back on the generic \CONTEXT\ support module:
-
-\ifx\undefined\includeMPfonts \input supp-mps.tex \relax \fi
-
-%D Instead of using \type {\includegraphics}, one should use its
-%D little brother \type {\includeMPgraphics}. This macro takes
-%D the same arguments.
-
-\def\includeMPgraphics#1#%
- {\leavevmode\vbox\bgroup\hbox\bgroup
- \def\includeMPgraphics##1%
- {\includeMPfonts{##1}%
- \includegraphics#1{##1}%
- \egroup\egroup}%
- \includeMPgraphics}
-
-%D An example of using this module is given below:
-%D
-%D \starttypen
-%D \documentclass[10pt]{article}
-%D
-%D \usepackage{graphicx}
-%D \usepackage{m-metapo}
-%D
-%D \begin{document}
-%D \includeMPgraphics{somefile.1}
-%D \includeMPgraphics[angle=90]{somefile.2}
-%D \end{document}
-%D \stoptypen
-%D
-%D This module needs \type {supp-mps} and \type {supp-mis},
-%D that both are present in the \CONTEXT\ path.
-%D
-%D Pleas do not forget to say \type {prologues:=2} at the
-%D top of the metapost file!
-%D
-%D For non \LATEX\ (and \CONTEXT) users we provide an
-%D alternative inclusion macro. This one has no optional
-%D arguments.
-
-\ifx\includegraphics\undefined
-
- \ifx\undefined\dogetEPSboundingbox \input supp-eps.tex \relax \fi
-
- \def\includeMPgraphics#1%
- {\hbox\bgroup
- \includeMPfonts{#1}%
- \dogetEPSboundingbox{#1}{\dimen2}{\dimen4}{\dimen6}{\dimen8}%
- \vbox to \dimen8
- {\forgetall
- \hsize\dimen6
- \vfill
- \hbox to \hsize
- {\special
- {PSfile="#1"\space
- llx=\EPSllx\space
- lly=\EPSlly\space
- urx=\EPSurx\space
- ury=\EPSury\space}}}%
- \egroup}
-
-\fi
-
-\endinput
diff --git a/tex/generic/context/ppchtex.noc b/tex/generic/context/ppchtex.noc
deleted file mode 100644
index 7e47e1563..000000000
--- a/tex/generic/context/ppchtex.noc
+++ /dev/null
@@ -1,205 +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=\huidigedatum,
-%D copyright={PRAGMA / Hans Hagen \& Ton Otten},
-%D suggestions={Tobias Burnus, Dirk Kuypers \& Ton Otten}]
-%C
-%C This module is part of the \CONTEXT\ macro||package and is
-%C therefore copyrighted by \PRAGMA. See licen-en.pdf for
-%C details.
-
-%D This module facilitates the use of \PPCHTEX\ in macro
-%D packages other than \CONTEXT. One of the features of
-%D \CONTEXT\ is that the user interface can be in any
-%D language. This language is defined at loading time.
-%D
-%D This module is indeed a surrogate one and is only a poor
-%D man's alternative to the more extensive \type{mult-***}
-%D modules of \CONTEXT. The extra overhead in terms of macros
-%D and functionality that these modules offer is only useful
-%D in \CONTEXT.
-%D
-%D Two interfaces are supported here, but others can easily be
-%D defined. This module expects the general system macros to be
-%D loaded as wel as a interface switch \type{\ifalternativeinterface}
-%D to be set.
-
-%D First we load some auxiliary macro's:
-
-\input supp-mis.tex \let\writestatus\undefined
-\input syst-gen.tex
-
-%D after which we can go on with:
-
-\unprotect
-
-%D 0 = english
-%D 1 = dutch
-%D 2 = german
-
-\ifx\interfacenumber\undefined
- \chardef\interfacenumber=0
-\fi
-
-\def\definesystemvariable #1 %
- {\setvalue{??#1}{@@#1}}
-
-\def\definesystemconstant #1 %
- {\setvalue{s!#1}{#1}}
-
-\def\definevariable #1 #2 #3 %
- {\ifcase\interfacenumber
- \setvalue{v!#2}{#1}
- \or
- \setvalue{v!#2}{#2}
- \or
- \setvalue{v!#2}{#3}
- \fi}
-
-\def\defineconstant #1 #2 #3 %
- {\ifcase\interfacenumber
- \setvalue{c!#2}{#2}
- \setvalue{c!#1}{#2}
- \or
- \setvalue{c!#2}{#2}
- \or
- \setvalue{c!#2}{#2}
- \setvalue{c!#3}{#2}
- \fi}
-
-\def\definecommand #1 #2 #3 %
- {\ifcase\interfacenumber
- % core commands are english
- \or
- \doifnot{#1}{#2}{\setvalue{#2}{\getvalue{#1}}}
- \or
- \doifnot{#1}{#3}{\setvalue{#3}{\getvalue{#1}}}
- \fi}
-
-\long\def\startcommands#1\stopcommands%
- {}
-
-\def\dosetvalue#1#2#3%
- {\p!doifundefined{\c!prefix!#2}%
- \let\donottest=\doprocesstest
- \@EA\def\csname#1#2\endcsname{#3}%
- \else
- \let\donottest=\doprocesstest
- \@EA\def\csname#1\csname\c!prefix!#2\endcsname\endcsname{#3}%
- \fi}
-
-\def\dosetevalue#1#2#3%
- {\p!doifundefined{\c!prefix!#2}%
- \let\donottest=\doprocesstest
- \@EA\edef\csname#1#2\endcsname{#3}%
- \else
- \let\donottest=\doprocesstest
- \@EA\edef\csname#1\csname\c!prefix!#2\endcsname\endcsname{#3}%
- \fi}
-
-\def\docopyvalue#1#2#3%
- {\p!doifundefined{\c!prefix!#3}%
- \let\donottest=\doprocesstest
- \@EA\def\csname#1#3\endcsname%
- {\csname#2#3\endcsname}%
- \else
- \let\donottest=\doprocesstest
- \@EA\def\csname#1\csname\c!prefix!#3\endcsname\endcsname%
- {\csname#2\csname\c!prefix!#3\endcsname\endcsname}%
- \fi}
-
-\def\doresetvalue#1#2%
- {\dosetvalue{#1}{#2}{}}
-
-\def\dogetvalue#1#2%
- {\csname#1\csname\c!prefix!#2\endcsname\endcsname}
-
-\defineconstant axis assenstelsel achsen
-\defineconstant top boven oben
-\defineconstant width breedte breite
-\defineconstant size formaat groesse
-\defineconstant number getal nummer
-\defineconstant height hoogte hoehe
-\defineconstant frame kader rahmen
-\defineconstant bodyfont korps fliesstext
-\defineconstant style letter schriftstil
-\defineconstant left links links
-\defineconstant offset offset offset
-\defineconstant bottom onder unten
-\defineconstant option optie option
-\defineconstant location plaats platz
-\defineconstant right rechts rechts
-\defineconstant resolution resolutie aufloesung
-\defineconstant scale schaal format
-\defineconstant status status status
-\defineconstant text tekst text
-\defineconstant textsize tekstformaat textgroesse
-\defineconstant alternative variant alternative
-\defineconstant x x x
-\defineconstant y y y
-
-\definevariable on aan an
-\definevariable big groot gross
-\definevariable intext intekst imtext
-\definevariable small klein klein
-\definevariable medium middel mittel
-\definevariable fit passend passend
-\definevariable start start start
-\definevariable stop stop stop
-\definevariable test test test
-\definevariable off uit aus
-
-\definecommand definechemical definieerchemie definierechemie
-\definecommand setupchemical stelchemiein stellechemieein
-\definecommand chemical chemie chemie
-\definecommand tochemical naarchemie zurchemie
-\definecommand startchemical startchemie startchemie
-\definecommand stopchemical stopchemie stopchemie
-\definecommand toptext boventekst textueber
-\definecommand bottext ondertekst textunter
-\definecommand midtext middentekst textmitte
-
-\protect
-
-%D After those definitions we actually load \PPCHTEX:
-
-\input ppchtex.tex
-
-%D We also change some setup values. Let's hope that the next
-%D setups forever suits \LATEX.
-
-\unprotect
-
-\ifx\bodyfontsize\undefined
- \ifx\f@size\undefined
- \ifx\@ptsize\undefined
- \setupchemical[\c!korps=11pt]
- \else
- \setupchemical[\c!korps=1\@ptsize pt]
- \fi
- \else
- \setupchemical[\c!korps=\f@size pt]
- \fi
-\else
- \setupchemical[\c!korps=\bodyfontsize]
-\fi
-
-\ifx\mathrm\undefined
- \setupchemical[\c!letter=\rm]
-\else
- \setupchemical[\c!letter=\mathrm]
-\fi
-
-\ifx\outputresolution\undefined
- \setupchemical[\c!resolutie=300]
-\else
- \setupchemical[\c!resolutie=\outputresolution]
-\fi
-
-\protect
-
-\endinput
diff --git a/tex/latex/context/m-ch-de.sty b/tex/latex/context/m-ch-de.sty
deleted file mode 100644
index d52078728..000000000
--- a/tex/latex/context/m-ch-de.sty
+++ /dev/null
@@ -1 +0,0 @@
-\input m-ch-de.tex \relax \endinput
diff --git a/tex/latex/context/m-ch-en.sty b/tex/latex/context/m-ch-en.sty
deleted file mode 100644
index ba5a5e16c..000000000
--- a/tex/latex/context/m-ch-en.sty
+++ /dev/null
@@ -1 +0,0 @@
-\input m-ch-en.tex \relax \endinput
diff --git a/tex/latex/context/m-ch-nl.sty b/tex/latex/context/m-ch-nl.sty
deleted file mode 100644
index 492f5efd3..000000000
--- a/tex/latex/context/m-ch-nl.sty
+++ /dev/null
@@ -1 +0,0 @@
-\input m-ch-nl.tex \relax \endinput
diff --git a/tex/latex/context/m-metapo.sty b/tex/latex/context/m-metapo.sty
deleted file mode 100644
index 1df781eae..000000000
--- a/tex/latex/context/m-metapo.sty
+++ /dev/null
@@ -1 +0,0 @@
-\input m-metapo.tex \relax \endinput
diff --git a/tex/latex/context/m-pictex.sty b/tex/latex/context/m-pictex.sty
deleted file mode 100644
index da9c18ed7..000000000
--- a/tex/latex/context/m-pictex.sty
+++ /dev/null
@@ -1 +0,0 @@
-\input m-pictex.tex \relax \endinput