summaryrefslogtreecommitdiff
path: root/tex/context/base/page-ini.tex
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2001-07-02 00:00:00 +0200
committerHans Hagen <pragma@wxs.nl>2001-07-02 00:00:00 +0200
commitab399f7f60b937f771dd33f9b826d83dab3e84e2 (patch)
treedfb3b001d6c0ee78967f6849168d41614b06fc2c /tex/context/base/page-ini.tex
parent661f9f4a789474b20056f6bd4855c66d9791b301 (diff)
downloadcontext-ab399f7f60b937f771dd33f9b826d83dab3e84e2.tar.gz
stable 2001.07.02
Diffstat (limited to 'tex/context/base/page-ini.tex')
-rw-r--r--tex/context/base/page-ini.tex1511
1 files changed, 1511 insertions, 0 deletions
diff --git a/tex/context/base/page-ini.tex b/tex/context/base/page-ini.tex
new file mode 100644
index 000000000..f6f59dd92
--- /dev/null
+++ b/tex/context/base/page-ini.tex
@@ -0,0 +1,1511 @@
+%D \module
+%D [ file=page-ini,
+%D version=2000.10.20,
+%D title=\CONTEXT\ Page Macros,
+%D subtitle=Initializations,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
+%C details.
+
+\writestatus{loading}{Context Page Macros / Initializations}
+
+%D This class of modules implements the output routines and
+%D floating body support. Although the modules are relatively
+%D new, the code herein is rather old. This reordering was
+%D needed when column sets were implemented and sharing code
+%D started to make sense.
+
+%D The history shows from the code, since both column
+%D mechanism use a different way of looping over columns.
+
+\unprotect
+
+\def\m!otr{otr}
+
+% message will be distributed
+
+\startmessages dutch library: systems
+ title: systeem
+ 1: laden hulpfile uitgesteld (typemode)
+ 2: -- geladen
+% 3: probeer LaTeX eens
+ 4: commando -- is al gedefinieerd
+ 5: macro's uit module -- geladen
+ 6: geen macro's in module -- gevonden
+ 7: macro's uit module -- reeds geladen
+ 8: nieuwe versie hulpfile, tweede run nodig
+ 9: -- niet gevonden/geplaatst
+ 10: gebruik geen em in --
+ 11: aanmaken basale hulpfile
+ 12: de hulpfile is niet gesorteerd, gebruik texutil
+ 13: markering -- gedefinieerd --
+ 14: geforceerde paginaovergang in lijst voor --
+ 15: wegschrijven buffer --
+ 16: inlezen buffer --
+ 17: verbatim inlezen buffer --
+ 18: synoniem -- -- bestaat niet
+ 19: betekenissen (synoniemen) van -- geladen
+ 20: betekenissen (sorteren) van -- geladen
+ 21: de hulpfile is niet geladen
+ 22: gebruik een goede hulpfile
+ 23: -- gearrangeerd op --
+ 24: Plaatsblokken
+ 25: Verwijzingen
+ 26: Registers
+ 27: Versie
+\stopmessages
+
+\startmessages english library: systems
+ title: system
+ 1: loading utility-file postponed (typemode)
+ 2: -- loaded
+% 3: try LaTeX
+ 4: command -- is already defined
+ 5: macros of module -- loaded
+ 6: no macros found in module --
+ 7: macros of module -- already loaded
+ 8: new version of utility file, second pass needed
+ 9: -- not found/processed
+ 10: don't use em in --
+ 11: building simple util
+ 12: the utility-file is not sorted, use texutil
+ 13: mark -- defined --
+ 14: forced newpage in list at --
+ 15: saving buffer --
+ 16: typesetting buffer --
+ 17: typesetting verbatim buffer --
+ 18: synonym -- -- does not exist
+ 19: meaning (synonyms) of -- loaded
+ 20: meaning (sorts) of -- loaded
+ 21: no utility data is loaded
+ 22: use a valid utilityfile
+ 23: -- arranged at --
+ 24: Floatblocks
+ 25: References
+ 26: Registers
+ 27: Version
+\stopmessages
+
+\startmessages german library: systems
+ title: system
+ 1: Laden der Hilfsdatei verschoben (tippenmodus)
+ 2: -- geladen
+% 3: Versuche LaTeX
+ 4: Befehl -- ist bereits definiert
+ 5: Makros aus Modul -- geladen
+ 6: Keine Makros in Modul -- gefunden
+ 7: Makros aus Modul -- bereits geladen
+ 8: Neue Version der Hilfsdatei, zweiter Durchlauf benoetigt
+ 9: -- nicht gefunden/verarbeitet
+ 10: Benutzte kein em in --
+ 11: Erstelle einfache Hilfdatei
+ 12: Die Hilfdatei ist nicht sortiert, verwende texutil
+ 13: Beschriftung -- definiert --
+ 14: Erzwungendes Seitenumbruch in Liste bei --
+ 15: Speichere Buffer --
+ 16: Setzte Buffer --
+ 17: Setzte tippen-Buffer --
+ 18: Synonym -- -- existiert nicht
+ 19: Bedeutung (synonyme) von -- geladen
+ 20: Bedeutung (sortieren) von -- geladen
+ 21: Die Hilfsdatei ist nicht geladen
+ 22: Benoetige gueltige Hilfsdateie
+ 23: -- angeordnet auf --
+ 24: Fliessbloecke
+ 25: Referenzen
+ 26: Register
+ 27: Version
+\stopmessages
+
+\startmessages czech library: systems
+ title: system
+ 1: nacteni pomocneho souboru odlozeno (typemode)
+ 2: -- nacteno
+% 3: zkuste LaTeX
+ 4: prikaz -- je jiz definovan
+ 5: makra z -- nactena
+ 6: zadna makra v -- nenalezena
+ 7: makra z -- jsou jiz nactena
+ 8: nova verze pomocneho souboru, je treba druheho behu
+ 9: -- nenalezeno/nezpracovano
+ 10: nepouzivejte em v --
+ 11: vytvarim jednoduchy pomocny soubor
+ 12: pomosny soubor neni setriden, pouzijte texutil
+ 13: znacka -- definovana --
+ 14: vynucena nova stranka v seznamu na --
+ 15: uklada se buffer --
+ 16: sazi se buffer --
+ 17: sazi se doslovny (verbatim) buffer --
+ 18: synonymum -- -- neexistuje
+ 19: vyznam (synonyma) -- nacten
+ 20: vyznam (trideni) -- nacten
+ 21: pomocny soubor necten
+ 22: pouzijte platny pomocny soubor
+ 23: -- upraveno na --
+ 24: plovouci bloky
+ 25: reference
+ 26: registry
+ 27: verze
+\stopmessages
+
+\startmessages italian library: systems
+ title: sistema
+ 1: caricamento dei file supplementari posticipato (typemode)
+ 2: -- caricato
+% 3: provare LaTeX
+ 4: comando -- già definito
+ 5: macro del modulo -- caricate
+ 6: nessuna macro trovata nel modulo --
+ 7: macro del modulo -- già caricate
+ 8: nuova versione del file supplementare, seconda passata necessaria
+ 9: -- non trovato/elaborato
+ 10: non usare em in --
+ 11: costruzione di un semplice supplemento
+ 12: file di supplemento non ordinato, usare texutil
+ 13: marcatura -- definita --
+ 14: nuova pagina obbligata in lista a --
+ 15: salvataggio del buffer --
+ 16: composizione del buffer --
+ 17: composizione verbatim del buffer --
+ 18: sinonimo -- -- non esistente
+ 19: significato (sinonimi) di -- caricato
+ 20: significato (specie) di -- caricato
+ 21: nessuna informazione supplementare caricata
+ 22: usare un file supplementare valido
+ 23: -- sistemato a --
+ 24: Oggetti mobili
+ 25: Riferimenti
+ 26: Registri
+ 27: Versione
+\stopmessages
+
+\startmessages norwegian library: systems
+ title: system
+ 1: innlesning av hjelpefila utsatt (typemode)
+ 2: -- er lest inn
+% 3: forsøker LaTeX
+ 4: kommando -- er allerede definert
+ 5: makroene i modul -- er lest inn
+ 6: ingen makroer funnet i modul ---
+ 7: makroene i modul -- er allerede lest inn
+ 8: ny versjon av hjelpefil, andre gjennomkjøring nødvendig
+ 9: -- ikke funnet/behandlet
+ 10: ikke bruk em i --
+ 11: lager enkel hjelpefil
+ 12: hjelpefila er ikke sortert, bruk texutil
+ 13: markering -- definert --
+ 14: tvunget sideskift i liste ved --
+ 15: lagrer Buffer --
+ 16: tegnsetter buffer --
+ 17: tegnsetter verbatim-buffer --
+ 18: synonym -- -- eksisterer ikke
+ 19: betydning (synonymer) av -- er lest inn
+ 20: betydning (sorterer) av -- er lest inn
+ 21: hjelpefila er ikke lest inn
+ 22: bruk en gyldig hjelpefil
+ 23: -- arrangert på --
+ 24: Flytblokker
+ 25: Referanser
+ 26: Registere
+ 27: Versjon
+\stopmessages
+
+\startmessages romanian library: systems
+ title: sistem
+ 1: se incarca utilitarul-fisierul este amanat (typemode)
+ 2: -- s-a incarcat
+% 3: incercati LaTeX
+ 4: comanda -- este deja definita
+ 5: macro-urile din modulul -- s-au incarcat
+ 6: nu s-au gasit macro-uri in modulul --
+ 7: macro-urile din modulul -- s-au incarcat deja
+ 8: o noua versiune de fisier utilitar, este necesara o noua trecere
+ 9: -- nu este gasit/procesat
+ 10: nu folositi em in --
+ 11: se creeaza un utilitar simplu
+ 12: fisierul utilitar nu este sortat, folositi texutil
+ 13: marcajul -- definit --
+ 14: s-a fortat trecere pa pagina noua in lista la --
+ 15: buffer salvat --
+ 16: buffer-ul -- s-a cules
+ 17: se culege buffer-ul verbatim --
+ 18: sinonimul -- -- nu exista
+ 19: intelesul (sinonimele) pentru -- incarcat
+ 20: intelesul (ordinea) pentru -- incarcat
+ 21: nici o data utilitara nu este incarcata
+ 22: folositi un fisier utilitar valid
+ 23: -- aranjat la --
+ 24: Blocuri
+ 25: Referinte
+ 26: Registri
+ 27: Versiune
+\stopmessages
+
+\startmessages dutch library: layouts
+ title: layout
+ 1: teksthoogte aangepast met -- op pagina --
+ 2: -- maal uitgestelde tekst tussengevoegd
+ 3: -- maal tekst plaatsen uitstellen
+ 4: margeblokken actief
+ 5: margeblokken inactief
+ 6: subpagina reeks -- verwerkt (aantal --)
+% 7: beeldmerken berekenen
+% 8: achtergronden berekenen
+ 10: -- en -- tellen niet op tot 1.0
+ 11: interlinie -- niet toegestaan in gridmode
+\stopmessages
+
+\startmessages english library: layouts
+ title: layout
+ 1: textheight adapted with -- at page --
+ 2: -- times postponed text placed
+ 3: -- times text postponed
+ 4: marginblocks active
+ 5: marginblocks inactive
+ 6: subpage set -- processed (size --)
+% 7: calculating logospace
+% 8: calculating backgrounds
+ 10: -- and -- don't add up to 1.0
+ 11: spacing -- not permitted in gridmode
+\stopmessages
+
+\startmessages german library: layouts
+ title: Layout
+ 1: Texthoehe angepasst mit -- auf Seite --
+ 2: -- mal verschobener Text plaziert
+ 3: -- mal Text verschoben
+ 4: marginalbloecke aktiv
+ 5: marginalbloecke inaktiv
+ 6: Unterseitenfolge -- verarbeitet (Groesse --)
+% 7: berechne Platz des Logo
+% 8: berechne Hintergrund
+ 10: -- und -- ergeben zusammen nicht 1.0
+ 11: Zwischenraum -- nicht im Grittermoduserlau
+\stopmessages
+
+\startmessages czech library: layouts
+ title: layout
+ 1: vyska textu prizpusobena s -- na strane --
+ 2: -- krat odlozeny text umisten
+ 3: -- krat text odlozen
+ 4: okrajove bloky aktivni
+ 5: okrajove bloky neaktivni
+ 6: sada stran -- zpracovana (velikost --)
+% 7: pocita se misto pro logo
+% 8: pocita se pozadi
+ 10: -- a -- nedava dohromady 1.0
+ 11: svisla mezera -- neni povolena v pevnem radkovem rejstriku
+\stopmessages
+
+\startmessages italian library: layouts
+ title: layout
+ 1: altezza del testo adattata con -- a pagina --
+ 2: posizionato testo posticipato -- volte
+ 3: testo posticipato -- volte
+ 4: blocchi in margine attivi
+ 5: blocchi in margine inattivi
+ 6: gruppo di sottopagine -- elaborato (dimensione --)
+% 7: calcolo dello spazio per logo
+% 8: calcolo dello sfondo
+ 10: -- e -- non sommano a 1.0
+ 11: spaziatura -- non permessa in modo griglia
+\stopmessages
+
+\startmessages norwegian library: layouts
+ title: layout
+ 1: teksthøyde tilpasset med -- på side --
+ 2: -- ganger forskjøvet tekst plassert
+ 3: -- ganger tekst forskjøvet
+ 4: margblokker aktive
+ 5: margblokker inaktive
+ 6: delside sett -- behandlet (størrelse --)
+% 7: beregner plass for logo
+% 8: beregner bakgrunn
+ 10: -- og -- er ikke 1.0 til sammen
+ 11: mellomrom -- ikke tillatt i gridmodus
+\stopmessages
+
+\startmessages romanian library: layouts
+ title: aranjamente
+ 1: textheight adaptat cu -- la pagina --
+ 2: textul amanat de -- ori a fost plasat
+ 3: textul amanat de -- ori
+ 4: blocuri marginale active
+ 5: blocuri marginale inactive
+ 6: setul -- de subpagini procesat (dimensiunea --)
+% 7: se calculeaza spatiul pentru logo
+% 8: se calculeaza fundalurile
+ 10: -- si -- nu se adauga pana la 1.0
+ 11: spatierea -- nu este permisa in gridmode
+\stopmessages
+
+\ifx\recalculatelayout\undefined
+
+ \let \recalculatelayout \relax
+
+\fi
+
+\ifx\recalculatelogos\undefined
+
+ \let \recalculatelogos \relax
+ \let \addlogobackground \gobbleoneargument % <box>
+
+\fi
+
+\ifx\recalculatebackgrounds\undefined
+
+ \let \recalculatebackgrounds \relax
+ \let \addmainbackground \gobbleoneargument % <box>
+ \let \addtextbackground \gobbleoneargument % <box>
+ \let \addpagebackground \gobbleoneargument % <box>
+ \let \addprintbackground \gobbleoneargument % <box>
+ \let \addstatusinfo \gobbleoneargument % <box>
+
+\fi
+
+% principle:
+%
+% multiple otr's
+%
+% (1) single column, simple routine (old one)
+% (2) multi column, collect and split routine (old one)
+% (3) multi column, page by page (new one, needed for taco)
+% (4) single column, spread handling (for fun)
+% (5) multi column, page by page, spread handling (as challenge)
+%
+% common components
+%
+% (1) float placement
+% (2) float flushing
+% (3) page body building
+% (4) ...
+%
+% ort
+%
+% + balancing
+% - mixed / one / multi / balancetofit
+% + backgrounds
+% + pre / post
+% + distances / heights
+% + ragged / baseline / normal
+% - pos sync
+% - last page
+%
+% - itemize / subtexts -> old mechanism
+%
+% floats
+%
+% - top / bottom / side / page / column / spead
+% - flush / packed flush / current page / next page / area
+%
+% footnotes
+%
+% + carry over pre column / local to column
+% + last column / pre last column / each column
+% - multiple classes
+% - area / page / end
+%
+% areas
+%
+% - top / bottom / mid in spread
+%
+% IMPORTANT
+%
+% switchtobodyfont in between ivm top
+
+% floats:
+%
+% tricky in balancing mode, a la huidige multi columns
+
+\startmessages dutch library: columns
+ title: kolommen
+ 1: maximaal -- kolommen
+ 2: gebruik eventueel \string\filbreak
+ 3: probleempje, probeer [balanceren=nee]
+ 4: plaatsblok boven nog niet mogelijk
+ 5: plaatsblok onder nog niet mogelijk
+ 6: -- plaatsblok(en) opgeschort
+ 7: balanceren afgebroken na 100 stappen
+ 8: gebalanceerd in -- stap(pen)
+ 9: uitlijnen controleren!
+ 10: (minder dan) 1 regel over
+ 11: plaatsblok te breed voor kolom
+ 12: plaatsblok verplaatst naar volgende kolom / --
+ 13: breed figuur geplaatst boven kolommen
+\stopmessages
+
+\startmessages english library: columns
+ title: columns
+ 1: only -- columns possible
+ 2: use \string\filbreak\space as alternative
+ 3: problems, disable balancing
+ 4: top float not yet supported
+ 5: bottom float not yet supported
+ 6: -- float(s) postponed
+ 7: balancing aborted after 100 steps
+ 8: balanced in -- step(s)
+ 9: check raggedness
+ 10: (less than) 1 line left
+ 11: float to wide for column
+ 12: float moved to next column / --
+ 13: wide float moved to top of columns
+\stopmessages
+
+\startmessages german library: columns
+ title: Spalten
+ 1: nur -- Spalten moeglich
+ 2: benutzte \string\filbreak\space als Alternative
+ 3: Problem, verwende [ausgleich=nein]
+ 4: Gleitobjekt oben ncoh nicht unterstuetzt
+ 5: Gleitobjekt unten ncoh nicht unterstuetzt
+ 6: -- Gleitobjekt(e) verschoben
+ 7: ausgleich nach 100 Schritten abgebrocheb
+ 8: ausgeglichen nach -- Schritt(en)
+ 9: Ausrichtung ueberpruefen
+ 10: (weniger als) 1 Zeile uebrig
+ 11: Gleitobjekt zu breit fuer Spalte
+ 12: Gleitobjekt in naechste Zeile verschoben / --
+ 13: breites Gleitobjekt an den Anfang der Spalten verschoben
+\stopmessages
+
+\startmessages czech library: columns
+ title: sloupce
+ 1: je mozno pouze -- sloupcu
+ 2: pouzijte \string\filbreak\space jako alternativu
+ 3: problem, vypina se vyvazovani
+ 4: horni plovouci objekt jeste neni podporovan
+ 5: spodni plovouci objekt jeste neni podporovan
+ 6: -- plovouci objekt(y) odlozeny
+ 7: vyvazovani ukonceno po 100 krocich
+ 8: vyvazeno v -- krocich
+ 9: kontrola nerovnost
+ 10: zbyl (mene nez) 1 radek
+ 11: plovouci objekt je pro sloupec prilis siroky
+ 12: plovouci objekt je presunut do nasledujiciho sloupce / --
+ 13: siroky plovouci objekt je presunut nad sloupce
+\stopmessages
+
+\startmessages italian library: columns
+ title: colonne
+ 1: solo -- colonne possibili
+ 2: in alternativa, usare \string\filbreak
+ 3: problemi, disabilitare il bilanciamento
+ 4: float in cima non ancora supportato
+ 5: float in fondo non ancora supportato
+ 6: -- float(s) posticipate
+ 7: bilanciamento annullato dopo 100 passi
+ 8: bilanciamento in -- passo/i
+ 9: controllare seghettamento
+ 10: (meno di) una riga rimasta
+ 11: oggetto mobile troppo ampio per la colonna
+ 12: oggetto mobile spostata alla colonna successiva / --
+ 13: oggetto mobile ampio spostato sopra le colonne
+\stopmessages
+
+\startmessages norwegian library: columns
+ title: kolonner
+ 1: maksimalt -- kolonner
+ 2: bruk \string\filbreak\space som et alternativ
+ 3: problemer, slår av balansering
+ 4: flytblokker øverst er ikke støttet enda
+ 5: flytblokker nedert er ikke støttet enda
+ 6: -- flytblokk forskjøvet
+ 7: balansering avbrutt etter 100 iterasjoner
+ 8: balansert etter -- iterasjoner
+ 9: kontroller tekstlayout!
+ 10: (mindre enn) 1 linje igjen
+ 11: flytblokk for bredt for kolonna
+ 12: flytblokk forskjøvet til neste kolonne / --
+ 13: bred flytblokk forksjøvet til toppen av kolonnene
+\stopmessages
+
+\startmessages romanian library: columns
+ title: coloane
+ 1: este posibil numai -- coloane
+ 2: folositi \string\filbreak\space ca alternativa
+ 3: probleme, se dezactiveaza alinierea
+ 4: cadrele top (top float) nu sunt inca suportate
+ 5: cadrele bottom (bottom float) nu sunt inca suportate
+ 6: -- blocurile sunt amanate
+ 7: alinierea este oprita dupa 100 de incercari
+ 8: aliniat in -- pas(i)
+ 9: verificat alinierea
+ 10: a mai ramas (mai putin de) 1 linie
+ 11: blocul este prea lat pentru coloana
+ 12: blocul este mutat pe urmatoarea coloana / --
+ 13: blocul lat este mutat in partea de sus a coloanelor
+\stopmessages
+
+%D In case we're not running \ETEX, we need to bypass a
+%D couple of primitives.
+
+\beginTEX \...discards
+
+ \chardef \savingvdiscards 1
+ \let \splitdiscards \relax
+ \let \pagediscards \relax
+
+\endTEX
+
+% ONE = single column
+% MUL = multi column
+% SET = columns sets
+
+\def\@@OTR{OTR}
+
+% \beginETEX \ifcsname
+%
+% \let\ifcs \ifcsname
+% \let\endcs\endcsname
+%
+% \endETEX
+%
+% \beginTEX \ifcsname
+%
+% \def\ifcs#1\endcs{\@EA\ifx\csname#1\endcsname\relax\else}
+%
+% \endTEX
+%
+% \def\OTRcommand#1%
+% {\csname\@@OTR
+% \ifcs\@@OTR\OTRidentifier\strippedcsname#1\endcs\OTRidentifier\fi
+% \strippedcsname#1\endcsname}
+
+\let\OTRdefault\empty
+
+\beginETEX \ifcsname
+
+\def\OTRcommand#1%
+ {\csname\@@OTR
+ \ifcsname\@@OTR\OTRidentifier\strippedcsname#1\endcsname
+ \OTRidentifier
+ \else\ifcsname\@@OTR\OTRdefault\strippedcsname#1\endcsname % fallback
+ \OTRidentifier
+ \fi\fi
+ \strippedcsname#1\endcsname}
+
+\endETEX
+
+\beginTEX
+
+\def\OTRcommand#1%
+ {\csname\@@OTR
+ \@EA\ifx\csname\@@OTR\OTRidentifier\strippedcsname#1\endcsname\relax
+ \@EA\ifx\csname\@@OTR\OTRdefault\strippedcsname#1\endcsname\relax % fallback
+ \else
+ \OTRdefault
+ \fi
+ \else
+ \OTRidentifier
+ \fi
+ \strippedcsname#1\endcsname}
+
+\endTEX
+
+% obsolete
+
+\def\installotr#1% andere naam, beter \connectotr of zo
+ {\def\OTRidentifier{#1}}
+
+\def\activateotr#1#2%
+ {\def\OTRidentifier{#1}%
+ \def\OTRdefault {#2}}
+
+%D The initialization of the \type {\hsize} and \type {\vsize}
+%D depends on the OTR used.
+
+\def\setvsize {\OTRcommand\setvsize}
+\def\sethsize {\OTRcommand\sethsize}
+\def\setfootnotehsize {\OTRcommand\setfootnotehsize}
+\def\finalsidefloatoutput {\OTRcommand\finalsidefloatoutput}
+\def\dopagecontents {\OTRcommand\dopagecontents}
+
+\def\dosettopinserts {\OTRcommand\dosettopinserts}
+\def\dosetbotinserts {\OTRcommand\dosetbotinserts}
+\def\dotopinsertions {\OTRcommand\dotopinsertions}
+\def\dobotinsertions {\OTRcommand\dobotinsertions}
+\def\dosetbothinserts {\OTRcommand\dosetbothinserts}
+
+\def\doflushfloats {\OTRcommand\doflushfloats}
+\def\flushfloatbox {\OTRcommand\flushfloatbox}
+\def\docheckiffloatfits {\OTRcommand\docheckiffloatfits}
+
+\def\someherefloat {\OTRcommand\someherefloat}
+\def\somefixdfloat {\OTRcommand\somefixdfloat}
+\def\somepagefloat {\OTRcommand\somepagefloat}
+\def\sometopsfloat {\OTRcommand\sometopsfloat}
+\def\somebotsfloat {\OTRcommand\somebotsfloat}
+\def\somesidefloat {\OTRcommand\somesidefloat}
+
+\def\nextcolumn {\OTRcommand\nextcolumn}
+
+% beter een \installotr#1 met #1 = macro en auto test
+
+\newif\iftraceotr
+
+\newcount\otrlevel
+
+\def\outputcounter{-100010}
+
+\def\doinvokeoutput%
+ {\iftraceotr
+ \expandafter\dodotracedoutput
+ \else
+ \expandafter\dodoinvokeoutput
+ \fi}
+
+\def\dodoinvokeoutput#1%
+ {\bgroup\par\penalty#1\relax\egroup}
+
+%\def\dodoinvokeoutput#1%
+% {\advance\otrlevel 1
+% \ifnum\otrlevel>1 \writestatus{otr}{nested output #1}\fi
+% \bgroup\par\penalty#1\relax\egroup
+% \advance\otrlevel -1 }
+
+\def\dodotracedoutput#1%
+ {\writestatus{\m!otr}{start \the\outputpenalty\space in column \number\mofcolumns}%
+ \writestatus{\m!otr}{v:\the\vsize,g:\the\pagegoal,t:\the\pagetotal,f:\the\ht\footins}%
+ \dodoinvokeoutput{#1}%
+ \writestatus{\m!otr}{v:\the\vsize,g:\the\pagegoal,t:\the\pagetotal,f:\the\ht\footins}%
+ \writestatus{\m!otr}{stop \the\outputpenalty\space in column \number\mofcolumns}}
+
+\def\installoutput#1#2% \invoke \action
+ {\decrement\outputcounter
+ \edef#1{\noexpand\doinvokeoutput{\outputcounter}}%
+ \setvalue{\@@OTR\outputcounter}{#2}}
+
+\installoutput\dosynchronizeoutput
+ {\ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
+ \ifvoid\topins \else\insert\topins {\unvbox\topins }\fi
+ \ifvoid\botins \else\insert\botins {\unvbox\botins }\fi
+ \unvbox\normalpagebox}
+
+\newtoks\mainoutput
+
+\mainoutput
+ {\doifdefinedelse{\@@OTR\the\outputpenalty}
+ {\getvalue{\@@OTR\the\outputpenalty}}
+ {\the\OTRcommand\output}}
+
+%\mainoutput
+% {\advance\otrlevel 1
+% \ifnum\otrlevel>1 \writestatus{otr}{nested main output}\fi
+% \doifdefinedelse{\@@OTR\the\outputpenalty}
+% {\getvalue{\@@OTR\the\outputpenalty}}
+% {\the\OTRcommand\output}%
+% \advance\otrlevel -1 }
+
+\output{\the\mainoutput}
+
+%D In order to force consistent use of variables, we
+%D predefine a lot of them here.
+
+%D The next two registers can be used to store pre column
+%D material as well as footnotes or so.
+
+\newbox\precolumnbox \newdimen\precolumnboxheight
+\newbox\postcolumnbox \newdimen\postcolumnboxheight
+
+%D We reserve a counter for the number of columns as well as
+%D the current column. Both are not to be changed by users!
+
+\newcount\nofcolumns \nofcolumns = 1
+\newcount\mofcolumns \mofcolumns = 1
+
+\chardef\maxnofcolumns = 50
+\chardef\allocatednofcolumns = 0
+
+%D The next dimensions reports the final column height
+
+\newdimen\finalcolumnheights
+\newcount\finalcolumnlines
+
+%D During initialization the temporary boxes are allocated.
+%D This enables us to use as much columns as we want, without
+%D exhausting the pool of boxes too fast. We could have packed
+%D them in one box, but we've got enough boxes.
+%D
+%D Two sets of boxes are declared, the txtboxes are used for
+%D the text, the topboxes are for moved column floats.
+
+\def\@col@{@col@}
+
+\def\initializecolumns#1%
+ {\ifnum#1>\maxnofcolumns
+ \showmessage{\m!columns}{1}{\maxnofcolumns}%
+ \nofcolumns=\maxnofcolumns
+ \else
+ \nofcolumns=#1\relax
+ \fi
+ \ifnum\nofcolumns>\allocatednofcolumns
+ \dorecurse\nofcolumns
+ {\ifnum\recurselevel>\allocatednofcolumns\relax
+ % \newbox\next \global\letvalue{\@col@-\recurselevel-t}=\next
+ \@EA\newbox\csname\@col@-\recurselevel-t\endcsname % text
+ \@EA\newbox\csname\@col@-\recurselevel-f\endcsname % foot
+ \@EA\newbox\csname\@col@-\recurselevel-h\endcsname % top insert
+ \@EA\newbox\csname\@col@-\recurselevel-l\endcsname % top insert
+ \fi}%
+ \global\chardef\allocatednofcolumns=\nofcolumns
+ \fi}
+
+\def\firstcolumnbox {\columntextbox1}
+\def\currentcolumnbox {\columntextbox\mofcolumns}
+\def\lastcolumnbox {\columntextbox\nofcolumns}
+
+\def\firsttopcolumnbox {\columntopbox 1}
+\def\currenttopcolumnbox{\columntopbox \mofcolumns}
+\def\lasttopcolumnbox {\columntopbox \nofcolumns}
+
+\def\columntextbox#1{\csname\@col@-\number#1-t\endcsname}
+\def\columnfootbox#1{\csname\@col@-\number#1-f\endcsname}
+\def\columntopbox #1{\csname\@col@-\number#1-h\endcsname}
+\def\columnbotbox #1{\csname\@col@-\number#1-l\endcsname}
+
+\def\columnsettextbox{\global\setbox\columntextbox}
+\def\columnsetfootbox{\global\setbox\columnfootbox}
+\def\columnsettopbox {\global\setbox\columntopbox}
+\def\columnsetbotbox {\global\setbox\columnbotbox}
+
+\def\columngettextbox{\copy\columntextbox}
+\def\columngetfootbox{\copy\columnfootbox}
+\def\columngettopbox {\copy\columntopbox}
+\def\columngetbotbox {\copy\columnbotbox}
+
+\def\columnerasetextboxes{\dorecurse\allocatednofcolumns{\columnsettextbox\recurselevel\emptybox}}
+\def\columnerasefootboxes{\dorecurse\allocatednofcolumns{\columnsetfootbox\recurselevel\emptybox}}
+\def\columnerasetopboxes {\dorecurse\allocatednofcolumns{\columnsettopbox \recurselevel\emptybox}}
+\def\columnerasebotboxes {\dorecurse\allocatednofcolumns{\columnsetbotbox \recurselevel\emptybox}}
+
+%D Without going in details we present two macro's which handle
+%D the columns. The action which is transfered by the the first
+%D and only parameter can do something with \type
+%D {\currentcolumnbox}. In case of the mid columns, \type
+%D {\firstcolumnbox} and \type {\lastcolumnbox} are handled
+%D outside these macro's.
+
+\def\dohandlecolumn#1%
+ {\mofcolumns=\recurselevel
+ \let\currentcolumn=\recurselevel
+ #1\relax}
+
+\def\dohandleallcolumns#1%
+ {\dorecurse{\nofcolumns}{\dohandlecolumn{#1}}}
+
+\def\dohandlerevcolumns#1%
+ {\dostepwiserecurse{\nofcolumns}{1}{-1}{\dohandlecolumn{#1}}}
+
+\def\dohandlemidcolumns#1%
+ {\dohandleallcolumns
+ {\ifnum\recurselevel>1\relax\ifnum\recurselevel<\nofcolumns\relax
+ \dohandlecolumn{#1}%
+ \fi\fi}}
+
+%D This register can be used as a temporary storage for page
+%D content.
+
+\newbox\restofpage
+
+%D Features.
+
+\newif\ifintermediatefootnotes
+\newif\ifcarryoverfootnotes %\carryoverfootnotestrue
+\newif\iflastcolumnfootnotes %\lastcolumnfootnotestrue
+\newif\ifbalancecolumns %\balancecolumnstrue
+\newif\ifbalancetoheight %\balancetoheighttrue
+\newif\ifforcecolumngrid \forcecolumngridtrue
+\newif\ifstretchcolumns \stretchcolumnsfalse
+\newif\ifinheritcolumns \inheritcolumnsfalse
+\newif\ifheightencolumns \heightencolumnsfalse
+
+\newif\ifbalancingcolumns
+\newif\ifcollectingcontent
+\newif\ifcolumnoverflow
+\newif\iffinalflushingfloats
+\newif\ifpackflushedfloats \packflushedfloatstrue % for the moment
+
+\newdimen\intercolumnwidth
+\newdimen\localcolumnwidth
+\newdimen\savedpagetotal
+
+\chardef\columndirection=0 % 0:lr 1:rl
+
+\def\minbalancetoplines {1}
+\def\minfreecolumnlines {2}
+
+\newif\ifrecentercolumnbox \recentercolumnboxtrue
+\newif\ifrerecentercolumnbox \rerecentercolumnboxtrue
+\newif\ifpackcolumnfloats \packcolumnfloatstrue
+
+\newbox\collectedpagefloats
+
+%D The \type {\ifdim} test is needed, because otherwise the
+%D last line of a text end up on top of the baseline instead of
+%D on the baseline, as is the case with preceding pages.
+%D Also, a \type {\vfil} better than a \type {\vfill}.
+
+\def\doejectpage%
+ {\par\ifdim\pagetotal>\pagegoal\else\normalvfil\fi}
+
+\def\ejectpage%
+ {\doejectpage\eject}
+
+\def\superejectpage%
+ {\doejectpage\supereject}
+
+\def\ejectinsert%
+ {\flushfootnotes
+ \bgroup
+ \noftopfloats=\!!thousand
+ \nofbotfloats=0
+ \doflushfloats
+ \egroup}
+
+\def\ejectdummypage%
+ {\ejectinsert
+ \hardespatie % will be different
+ \vfill
+ \ejectpage}
+
+\def\beforefinaloutput%
+ {}
+
+\def\afterfinaloutput%
+ {\forgetall
+ \vskip\!!zeropoint\relax
+ \ifvoid\normalpagebox
+ \else
+ \unvbox\normalpagebox
+ \penalty\outputpenalty
+ \fi
+ \ifnum\outputpenalty>-\@MM\relax
+ \else
+ \dosupereject
+ \fi
+ \inpagebodytrue % needed for enabling \blanko !
+ \dosetbothinserts % to be reconsidered !!!!!!!!!!!!!!
+ \setvsize % this is needed for interacting components, like floats and multicolumns
+ \adaptfuzzypagegoal} % watch this hack!
+
+\def\dofinaloutput#1#2%
+ {\beforefinaloutput
+ \the\everybeforeshipout
+ \ifspecialbasedsettings
+ \myshipout{\hbox{\hbox to \!!zeropoint{\the\pageboundsettings}\hbox{\dopagebody#1#2\setpagecounters}}}%
+ \else
+ \the\pageboundsettings
+ \myshipout{\hbox{\dopagebody#1#2\setpagecounters}}%
+ \fi
+ \the\everyaftershipout
+ \afterfinaloutput
+ \popcolor} % ... and here ...
+
+\def\donofinaloutput#1#2%
+ {\beforefinaloutput
+ \the\everybeforeshipout
+ \setpagecounters
+ \message{[-\the\realpageno]}%
+ \setbox0=\hbox
+ {\the\everyshipout
+ \dopagebody#1#2}%
+ \deadcycles=0
+ \gotonextrealpage
+ \the\everyaftershipout
+ \afterfinaloutput
+ \popcolor} % ... and here
+
+\def\finaloutput#1#2%
+ {\checkpageversion
+ \ifverwerken
+ \ifgeselecteerd
+ \dofinaloutput#1#2%
+ \else
+ \donofinaloutput#1#2%
+ \fi
+ \else
+ \ifgeselecteerd
+ \donofinaloutput#1#2%
+ \else
+ \dofinaloutput#1#2%
+ \fi
+ \fi
+ \resetselectiepagina
+ \verhoogpaginanummer
+ \checkpagedimensions
+ \ifnum\outputpenalty>-\@MM\relax
+ \else
+ \dosupereject
+ \fi
+ \douitstellen}
+
+\def\dooutput%
+ {\finaloutput\unvbox\normalpagebox}
+
+\maxdeadcycles=1000
+
+% will be installable tracer
+
+\newif\ifvoorlopig \voorlopigfalse
+\newif\ifconcept \conceptfalse
+
+\def\doplaatsversieaanduiding#1#2%
+ {\doifsomething{#2}
+ {\@EA\convertargument#2\to\ascii
+ \ #1: \ascii\
+ \!!doneatrue}}
+
+\def\plaatsversieaanduiding% nog engels maken
+ {\ifvoorlopig
+ \vskip\!!sixpoint
+ \hbox to \zetbreedte
+ {\infofont
+ \getmessage\m!systems{27}: \currentdate\
+ \doplaatsversieaanduiding{Project}\currentproject
+ \doplaatsversieaanduiding{Produkt}\currentproduct
+ \doplaatsversieaanduiding{Onderdeel}\currentcomponent
+ \if!!donea\else\ File: \jobname\fi
+ \hss\reportpagedimensions}%
+ \fi
+ \ifconcept
+ \vskip\!!sixpoint
+ \hbox to \zetbreedte
+ {\infofont
+ Concept: \currentdate
+ \hss\reportpagedimensions}%
+ \fi}
+
+% tot hier
+
+\def\doversie[#1]%
+ {\voorlopigfalse
+ \conceptfalse
+ \overfullrule=\!!zeropoint
+ \processaction
+ [#1]
+ [\v!voorlopig=>\voorlopigtrue\overfullrule=5pt,
+ \v!concept=>\concepttrue]}
+
+\def\versie%
+ {\dosingleargument\doversie}
+
+\def\addstatusinfo#1%
+ {\ifvoorlopig \donetrue \fi
+ \ifconcept \donetrue \fi
+ \ifdone
+ \setbox#1=\vbox to \papierhoogte
+ {\vsmashbox#1\box#1
+ \offinterlineskip
+ \vskip\topspace
+ \hsize\papierbreedte
+ \hfill\hbox{\plaatstestinfo\hskip.5cm}\vss
+ \settexthoffset\hskip\texthoffset
+ \tlap{\plaatsversieaanduiding}
+ \vskip.5cm}%
+ \fi}
+
+% this will be inserts some day
+
+%\newinsert\referentieinfobox
+%\newinsert\registerinfobox
+%\newinsert\floatinfobox
+
+\newbox\referentieinfobox
+\newbox\registerinfobox
+\newbox\floatinfobox
+
+\def\dotestinfo#1#2#3%
+ {\ifvoorlopig\ifinpagebody\else
+ \begingroup
+ \convertargument#3\to\ascii
+ \xdef\extratestinfo%
+ {#2 \ascii}%
+ \gdef\totaltestinfo%
+ {\global\setbox#1=\vbox
+ {\unvbox#1\relax %\insert#1{%
+ \infofont \stelinterliniein
+ \hbox
+ {\strut
+ \expandafter\doboundtext\expandafter
+ {\extratestinfo}
+ {12em}
+ {..}%
+ \quad}}}%
+ \endgroup
+ \ifinner
+ \aftergroup\totaltestinfo
+ \else
+ \totaltestinfo
+ \fi
+ \fi\fi}
+
+\def\referentieinfo%
+ {\dotestinfo\referentieinfobox}
+
+\def\registerinfo%
+ {\dotestinfo\registerinfobox}
+
+\def\floatinfo%
+ {\dotestinfo\floatinfobox}
+
+\def\plaatstestinfo%
+ {\ifvoorlopig
+ \vbox to \zethoogte
+ {\forgetall
+ \infofont
+ \hsize10em
+ \ifvoid\floatinfobox\else
+ \strut \getmessage\m!systems{24}
+ \vskip\!!sixpoint
+ \unvbox\floatinfobox
+ \vskip\!!twelvepoint
+ \fi
+ \ifvoid\referentieinfobox\else
+ \strut \getmessage\m!systems{25}
+ \vskip\!!sixpoint
+ \unvbox\referentieinfobox
+ \vskip\!!twelvepoint
+ \fi
+ \ifvoid\registerinfobox\else
+ \strut \getmessage\m!systems{26}
+ \vskip\!!sixpoint
+ \unvbox\registerinfobox
+ \fi
+ \vss}
+ \fi}
+
+\versie[\v!definitief]
+
+% Output routines
+%
+% \dopagecontents#1#2 : tekst, floats en footnotes
+% \dopagebody#1#2 : hoofd, \pagecontents, voet
+% \dooutput : outputroutine
+%
+% \ifinpagebody
+
+% De volgende macro's worden gedefinieerd in de module
+% colo-ini. Om resetten bij twee maal laden te voorkomen
+% checken we wel even. Anders krijgen we een mark-build-up.
+
+\newif\ifinpagebody
+
+\ifx\pushcolor\undefined
+ \let \pushcolor \relax
+ \let \popcolor \relax
+ \let \startcolorpage \relax
+ \let \stopcolorpage \relax
+\fi
+
+% bewaren tvb documentatie
+%
+% \hbox to \hsize
+% {\en
+% \switchnaarkorps[5pt]%
+% \emergencystretch2em
+% \dimen0=\baselineskip
+% \baselineskip=\dimen0 plus 1pt
+% \hsize=.2\hsize
+% \vsize=2\hsize
+% \ruledvbox to \vsize{\input tufte \par}\hss
+% \ruledvbox to \vsize{\input tufte \par\kern-\prevdepth}\hss
+% \ruledvbox to \vsize{\input tufte \par\kern0pt}\hss
+% \ruledvbox to \vsize{\input tufte \par\vfill}\hss
+% \ruledvbox to \vsize{\input tufte \par\kern-\prevdepth\vfill}}
+%
+% \hbox to \hsize
+% {\en
+% \switchnaarkorps[5pt]%
+% \emergencystretch2em
+% \dimen0=\baselineskip
+% \baselineskip=\dimen0 plus 1pt
+% \hsize=.18\hsize
+% \vsize=2.5\hsize
+% \setbox0=\vbox{\input tufte\relax}%
+% \ruledvbox to \vsize{\unvcopy0}\hss
+% \ruledvbox to \vsize{\unvcopy0\kern-\dp0}\hss
+% \ruledvbox to \vsize{\unvcopy0\kern0pt}\hss
+% \ruledvbox to \vsize{\unvcopy0\vfill}\hss
+% \ruledvbox to \vsize{\unvcopy0\kern-\dp0\vfill}}
+
+\newtoks\afterpage \newtoks\aftereverypage
+\newtoks\beforepage \newtoks\beforeeverypage
+
+\newif\ifshowgrid \showgridfalse
+
+\def\showgrid%
+ {\tracegridsnappingtrue
+ \showgridtrue}
+
+\def\buildpagebox#1%
+ {\setbox#1=\vbox to \papierhoogte
+ {\hsize\papierbreedte
+ \vskip\kopwit
+ \doifbothsides
+ \hskip\rugwit
+ \orsideone
+ \hskip\rugwit
+ \orsidetwo
+ \hskip\papierbreedte
+ \hskip-\rugwit
+ \hskip-\zetbreedte
+ \od
+ \box#1}%
+ \dp#1=\!!zeropoint}
+
+\newif\ifpagebodyornaments \pagebodyornamentstrue
+\newif\ifarrangingpages \arrangingpagesfalse
+
+\let\poparrangedpages=\relax
+\let\pusharrangedpage=\relax
+
+\def\reportarrangedpage#1%
+ {\showmessage
+ {\m!systems}{23}
+ {\the\realpageno.\the\pageno\ifnum\subpageno>0 .\the\subpageno\fi,#1}}
+
+\newif\ifsavepagebody \newbox\savedpagebody
+
+\def\buildpagebody#1#2%
+ {\ifsavepagebody\global\setbox\savedpagebody\fi
+ \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}{}% layoutparameter ?
+ \offinterlineskip
+ \gettextboxes
+ \egroup
+ \fi
+ \getmainbox#1#2}% including footnotes
+ \ifpagebodyornaments
+ \addmainbackground0%
+ \addlogobackground0%
+ \fi
+ \buildpagebox0%
+ \addstatusinfo0% new
+ \ifpagebodyornaments
+ \addpagebackground0%
+ \fi
+ \ifarrangingpages \else
+ \addpagecutmarks0%
+ \replicatepagebox0%
+ \scalepagebox0%
+ \mirrorpaperbox0%
+ \rotatepaperbox0%
+ \addpagecolormarks0%
+ \centerpagebox0%
+\addprintbackground0%
+ \mirrorprintbox0%
+ \rotateprintbox0%
+ \offsetprintbox0%
+ \negateprintbox0%
+ \fi
+ \box0%
+ \endrestorecatcodes}%
+ \ifsavepagebody\copy\savedpagebody\fi}
+
+\def\finishpagebox#1%
+ {\ifarrangingpages
+ \addpagecutmarks#1%
+ \addpagecolormarks#1%
+ \centerpagebox#1%
+ \mirrorprintbox#1%
+ \rotateprintbox#1%
+ \offsetprintbox#1%
+ \negateprintbox#1%
+ \fi}
+
+\chardef\normalpagebox=255
+
+\appendtoks \restoreglobalbodyfont \to \everypagebody
+\appendtoks \restorecolumnsettings \to \everypagebody
+
+\def\dopagebody#1#2%
+ {\getallmarks
+ \the\everypagebody
+ \startcolorpage
+ \gotonextsubpage % nog eens: als in pagina (tbv standaard opmaak)
+ \dontshowboxes % dan hier blokkeren en verderop resetten
+ \naastpagina
+ \checkreferences
+ \checkmargeblokken
+ \dotoks\beforeeverypage
+ \flushtoks\beforepage
+ \inpagebodytrue\buildpagebody#1#2%
+ \flushtoks\afterpage
+ \dotoks\aftereverypage
+ \resetpagina
+ \updatelistreferences
+ \resetlayoutlines % will go to \aftereverypage
+ \stopcolorpage}
+
+\newtoks\pageboundsettings
+
+\prependtoks \initializepaper \to \pageboundsettings
+
+\let\checkpageversion=\relax
+
+% not here
+
+\newif\ifpaginageblokkeerd
+\paginageblokkeerdfalse
+
+\def\testpagina[#1][#2]%
+ {\ifpaginageblokkeerd \else
+ \ifdim\pagetotal<\pagegoal
+ \dimen0=\lineheight
+ \multiply\dimen0 by #1\relax
+ \advance\dimen0 by \pagetotal
+ \ifdim\lastskip<\parskip
+ \advance\dimen0 by \parskip
+ \fi
+ \advance\dimen0 by #2\relax
+ \ifdim\dimen0>.99\pagegoal
+ \penalty-\!!tenthousand\relax
+ \fi
+ \else
+ \goodbreak
+ \fi
+ \fi}
+
+\let\resetcurrentsectionmarks=\relax
+
+% was: \resetsectionmarks[\firstsection], zie \handelpaginaaf
+
+\def\docomplexpagina[#1]%
+ {\flushfootnotes
+ \bgroup
+ \processallactionsinset
+ [#1]
+ [ \v!reset=>\global\paginageblokkeerdfalse,
+ \v!blokkeer=>\global\paginageblokkeerdtrue,
+ \v!ja=>\ifpaginageblokkeerd\else
+ \ejectinsert
+ \ejectpage
+ \ifbinnenkolommen
+ \ejectpage % anders soms geen overgang
+ \fi
+ \fi,
+ \v!opmaak=>\ifpaginageblokkeerd\else
+ \eject
+ \fi,
+ \v!blanko=>\pagebodyornamentsfalse,
+ \v!nee=>\ifpaginageblokkeerd\else
+ \dosomebreak\nobreak
+ \fi,
+ \v!voorkeur=>{\ifpaginageblokkeerd\else
+ \ifbinnenkolommen
+ \dosomebreak\goodbreak
+ \else
+ \testpagina[3][\!!zeropoint]%
+ \fi
+ \fi},
+ \v!grotevoorkeur=>{\ifpaginageblokkeerd\else
+ \ifbinnenkolommen
+ \dosomebreak\goodbreak
+ \else
+ \testpagina[5][\!!zeropoint]%
+ \fi
+ \fi},
+ \v!leeg=>{\ejectinsert
+ \ejectpage
+ \doifnotvalue{\??tk\v!hoofd\v!tekst\c!status}{\v!stop}
+ {\setupheader[\c!status=\v!leeg]}%
+ \doifnotvalue{\??tk\v!voet\v!tekst\c!status}{\v!stop}
+ {\setupfooter[\c!status=\v!leeg]}%
+ \ejectdummypage},
+ \v!links=>{\ejectinsert
+ \superejectpage
+ \doifbothsidesoverruled
+ \orsideone
+ \resetcurrentsectionmarks
+ \ejectdummypage
+ \orsidetwo
+ \od},
+ \v!rechts=>{\ejectinsert
+ \superejectpage
+ \doifbothsidesoverruled
+ \orsideone
+ \orsidetwo
+ \resetcurrentsectionmarks
+ \ejectdummypage
+ \od},
+ \v!even=>\pagina
+ \doifonevenpaginaelse
+ {\resetcurrentsectionmarks\ejectdummypage}{},
+ \v!oneven=>\pagina
+ \doifonevenpaginaelse
+ {}{\resetcurrentsectionmarks\ejectdummypage},
+ \v!viertal=>{\ifdubbelzijdig
+ \!!counta=\realpageno
+ \!!countb=\realpageno
+ \divide\!!counta by 4
+ \divide\!!countb by 2
+ \ifnum\!!counta=\!!countb
+ \else
+ \pagina
+ \pagina[\v!leeg]%
+ \pagina[\v!leeg]%
+ \fi
+ \fi},
+ \v!laatste=>{\ejectinsert
+ \superejectpage
+ \doifbothsidesoverruled
+ \naastpagina
+ \orsideone
+ \orsidetwo
+ %\ifodd\realpageno \else % kan weer weg
+ \noheaderandfooterlines
+ \ejectdummypage
+ %\fi
+ \od
+ \filluparrangedpages},
+ \s!unknown=>\doifinstringelse{+}{#1}
+ {\ejectinsert\ejectpage
+ \dorecurse{#1}{\ejectdummypage}}
+ {\doifnumberelse{#1}
+ {\ejectinsert\ejectpage
+ \doloop
+ {\ifnum\userpageno<#1\relax
+ \ejectdummypage
+ \else
+ \exitloop
+ \fi}}
+ {}}]%
+ \egroup}
+
+\def\complexpagina[#1]%
+ {\expanded{\docomplexpagina[#1]}}
+
+\def\simplepagina%
+% {\docomplexpagina[\v!ja]}
+ {\flushfootnotes
+ \ifpaginageblokkeerd\else
+ \ejectinsert
+ \ejectpage
+ \ifbinnenkolommen
+ \ejectpage % anders soms geen overgang
+ \fi
+ \fi}
+
+\definecomplexorsimple\pagina
+
+\def\resetpagina%
+ {\global\paginageblokkeerdfalse}
+
+% hier nog uti blokkeren
+
+% don't change this / test case:
+%
+% \setupbackgrounds[state=repeat]
+% \setupbackgrounds[text][text][background=whatever]
+% \couplepage[chapter][before={\defineoverlay[whatever][ON]}]
+% \setuphead[chapter][before={\pagetype[chapter]}]
+% \chapter{First} \page test \chapter{second} \page test
+
+\newif\ifgeselecteerd
+\geselecteerdtrue
+
+\newif\ifselecteren
+\selecterenfalse
+
+\newif\ifverwerken
+\verwerkentrue
+
+\def\selectie{}
+\def\paginasoort{}
+
+\let\naastpagina=\relax
+\let\napagina=\relax
+\let\voorpagina=\relax
+
+\def\dovoorpagina%
+ {\doifsomething{\paginasoort}
+ {\def\dododopagina##1%
+ {\global\let\voorpagina=\relax
+ \getvalue{\??pg##1\c!voor}}%
+ \processcommacommand[\paginasoort]\dododopagina}}
+
+\def\dododonapagina#1%
+ {\global\let\napagina=\relax
+ \gdef\paginasoort{}%
+ \getvalue{\??pg#1\c!na}}
+
+\def\donapagina%
+ {\doifsomething{\paginasoort}
+ {\def\dodopagina##1%
+ {\doifelsevalue{\??pg##1\c!optie}{\v!dubbelzijdig}
+ {\doifbothsidesoverruled
+ \dododonapagina{##1}%
+ \orsideone
+ \dododonapagina{##1}%
+ \orsidetwo
+ \od}%
+ {\dododonapagina{##1}}}%
+ \processcommacommand[\paginasoort]\dodopagina}}
+
+\def\dosoortpagina[#1]%
+ {\doglobal\addtocommalist{#1}\paginasoort
+ \ifselecteren
+ \ExpandBothAfter\doifcommon{#1}{\selectie}
+ {\global\geselecteerdtrue}%
+ \fi
+ \gdef\voorpagina{\dovoorpagina}%
+ \gdef\napagina{\donapagina}}
+
+\def\soortpagina%
+ {\dosingleargument\dosoortpagina}
+
+\def\dokoppelpagina[#1][#2]%
+ {\getparameters
+ [\??pg]
+ [\c!voor=,
+ \c!na=,
+ \c!optie=,
+ #2]%
+ \def\docommando##1%
+ {\getparameters
+ [\??pg##1]
+ [\c!voor=\@@pgvoor,
+ \c!na=\@@pgna,
+ \c!optie=\@@pgoptie]}%
+ \processcommalist[#1]\docommando}%
+
+\def\koppelpagina%
+ {\dodoubleargument\dokoppelpagina}
+
+\def\doverwerkpagina[#1][#2]%
+ {\processaction
+ [#2]
+ [ \v!ja=>\global\verwerkentrue,
+ \v!nee=>\global\verwerkenfalse]%
+ \gdef\selectie{#1}%
+ \global\selecterentrue
+ \global\geselecteerdfalse}
+
+\def\verwerkpagina%
+ {\dodoubleargument\doverwerkpagina}
+
+\def\resetselectiepagina%
+ {\ifselecteren
+ \doifbothsidesoverruled
+ \global\geselecteerdfalse
+ \orsideone
+ \orsidetwo
+ \global\geselecteerdfalse
+ \od
+ \fi}
+
+\protect \endinput