diff options
Diffstat (limited to 'tex/context/base/core-01a.tex')
-rw-r--r-- | tex/context/base/core-01a.tex | 31987 |
1 files changed, 16242 insertions, 15745 deletions
diff --git a/tex/context/base/core-01a.tex b/tex/context/base/core-01a.tex index 263c6d982..0e6983f07 100644 --- a/tex/context/base/core-01a.tex +++ b/tex/context/base/core-01a.tex @@ -1,15745 +1,16242 @@ -%D \module
-%D [ file=core-01a,
-%D version=1997.03.31,
-%D title=\CONTEXT\ Core Macros,
-%D subtitle=1A (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. Non||commercial use is
-%C granted.
-
-% \ifinfloat \ifinpagebody \ifintable \ifincolumns etc naar
-% core-sta(tus)
-
-% nieuw/nb:
-%
-% in handleiding: eerste in set float [hier..] telt!
-% [hier,altijd] en niet [altijd,hier]
-%
-% \switchnaarkorps[globaal] voor bv grote figuren in klein
-% \interactiebuttons[][]
-% lijstalternatieven: e, f,g
-% \lastreference
-
-% kopletter: letter=,tekstletter=\bfa,nummerletter=\bf (anders ook \bfa)
-
-% in handleiding vermelden dat \definieerinteractiemenu 3 args behoeft!
-% in handleiding: \steloffsetin vervangen door \stellayoutin
-% in handleiding: \stellayoutin optie [markering=aan]
-% in handleiding: \stellayoutin schaalt naar paginamaten
-% in handleiding: \stellayoutin optie [plaats=midden|..zijdig]
-% in handleiding: \stelinteractieschermin optie [..wit=, ..=passend]
-% in handleiding: \stelinteractieschermin optie [..offset=, ..=passend]
-% in handleiding: \definieerpapierformaat [A3,S3456][..]
-% in handleiding: \stellayoutin optie [breedte|hoogte=passend]
-% in handleiding: meer achtergrond opties
-% in handleiding: \stelregelsin[inspringen=ja,nee,even,oneven]
-% in handleiding: \stelkolommenin[optie=achtergrond]
-% in handleiding: \omlijnd[breedte=passend,uitlijnen=midden] (auto mode)
-% in handleiding: \omlijnd[achtergrondcommando ...]
-% in handleiding: \stelhoofdin[status=hoog]
-% in handleiding: \stellijstin[koppeling=aan] % interactieve optie, was standaard aan, nu uit
-% in handleiding: \stelvoetin[voor=,na=,strut=]
-% in handleiding: \stelmenuin[][links=,rechts=,midden=,voor=,...]
-
-% in handleiding: \definecolorgroup[a][b]
-% \stelinteractiebalkin[symbool=ja|nee]
-% \stelinteractiemenuin[zelfdepagina|onbekendeverwijzing=ja|nee|leeg|geen]
-% \definieerconversie[aa][*,**,***]
-% \stelkopin[eigennummer=ja]
-
-% in handleiding: \definieeroverlay[naam]{commando}
-% in handleiding: \plaatsonderelkaar
-%
-% in handleiding preview bij figuren
-
-% nb: als subpage: dan ook op eerste pag nummer ophogen (i.g.v. \standaardopmaak)
-% execute command interactive commands
-
-% \stelsubpaginanummerin[reset]
-% \bepaallijstkenmerken
-% \bepaalregisterkenmerken
-
-% in handleiding cmyk/rgb/k
-% in handleiding: \raggedright etc fontswitch afhankelijk (em)
-
-\newevery \everycorps \EveryCorps % just to be sure
-
-\appendtoks \setnormalbaselines \to \everycorps
-\appendtoks \setstrut \to \everycorps
-\appendtoks \settopskip \to \everycorps
-\appendtoks \setmaxdepth \to \everycorps
-\appendtoks \stelinspringenin \to \everycorps
-\appendtoks \stelblankoin \to \everycorps
-\appendtoks \stelwitruimtein \to \everycorps
-
-% \appendtoks .. \to \everypar
-% \appendtoks .. \to \everypar
-% \appendtoks .. \to \everypar
-
-% kan elders ook worden gebruikt i.i.g ongeveer
-% \v!tekst EN \c!tekst etc checken
-
-\unprotect
-
-\def\gobbleassigndimen#1\\{}
-
-\def\assigndimen#1#2%
- {\afterassignment\gobbleassigndimen#1=#2\!!zeropoint\\}
-
-\protect
-
-\writestatus{loading}{Context Core Macros (a)}
-
-\unprotect
-
-\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 -- geladen
- 6: geen macro's in -- gevonden
- 7: macro's uit -- 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
-\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 -- loaded
- 6: no macros found in --
- 7: macros of -- already loaded
- 8: new version of utility file, second pass needed
- 9: -- not found/processed
- 10: don't use em in --
- 11: building simple utility-file
- 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
-\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 in -- geladen
- 6: Keine Makros in -- gefunden
- 7: Makros in -- 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
-\stopmessages
-
-\startmessages dutch library: references
- title: verwijzingen
- 1: verwijzing -- onbekend
- 2: dubbele verwijzing -- op pagina --
-\stopmessages
-
-\startmessages english library: references
- title: references
- 1: unknown reference --
- 2: duplicate reference -- on page --
-\stopmessages
-
-\startmessages german library: references
- title: referenzen
- 1: unbekannte Referenz --
- 2: doppelte Referenz -- auf Seite --
-\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 dutch library: floatblocks
- title: plaatsblokken
- 1: -- hernummerd / -- => --
- 2: -- bewaard
- 3: -- verplaatst
- 4: -- geplaatst
- 5: volgorde aangepast
- 6: maximaal -- boven
- 7: maximaal -- onder
- 8: minder dan -- regels
- 9: volgorde verstoord
- 10: -- begrensd
- 11: geen blok opgegeven
- 12: niet gedefinieerd
-\stopmessages
-
-\startmessages english library: floatblocks
- title: floatblocks
- 1: -- renumbered / -- => --
- 2: -- saved
- 3: -- moved
- 4: -- placed
- 5: order adapted
- 6: n of top floats limited to --
- 7: n of bottom floats limited to --
- 8: less than -- lines
- 9: order disturbed
- 10: -- limited
- 11: no block given
- 12: undefined
-\stopmessages
-
-\startmessages german library: floatblocks
- title: Gleitobjektbloecke
- 1: -- neu nummeriert / -- => --
- 2: -- gespeichert
- 3: -- verschoben
- 4: -- plaziert
- 5: Reihenfolge angepasst
- 6: Anz. der oberen Gleitobjekte beschraengt auf --
- 7: Anz. der unteren Gleitobjekte beschraengt auf --
- 8: weniger als -- zeilen
- 9: Reigenfolge gestoert
- 10: -- begrenzt
- 11: kein Block gegeben
- 12: undefiniert
-\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
- 9: momenteen maximaal -- niveaus in opsommingen
-\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
- 9: currently no more than -- levels in itimezations
-\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
- 9: z.Z. nicht mehr als -- Niveaus in Posten
-\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
-
-\CONTEXTtrue % Now we know that we can use ConTeXt commands.
-
-% \def\teststatus{stop}
-%
-% \def\doiftrue {\iftrue}
-% \def\doiffalse {\iffalse}
-%
-% \def\setstatus#1#2%
-% {\doifelse{\getvalue{#1\c!status}}{\v!start}
-% {\let#2=\doiftrue}
-% {\let#2=\doiffalse}}
-%
-% \setstatus{test}\iftest
-%
-% \iftest
-% \message{JA}
-% \else
-% \message{NEE}
-% \fi
-
-% om problemen te voorkomen:
-%
-% \ascii => \@@ascii@@
-% \asciiA => \@@ascii@@A
-% \asciiB => \@@ascii@@B
-
-% Nodig i.v.m. inspringen eerste alineas
-
-\def\explicithmode%
- {\unhbox\voidb@x}
-
-% Nodig voor gebruikers
-
-\def\geentest{\donottest}
-
-% Dit moet nog ergens een plaats krijgen:
-
-\def\stelfactorenin%
- {\stelwitruimtein
- \stelblankoin
- \settopskip
- \setmaxdepth}
-
-% Nog doen:
-%
-% \goodbreak -> \allowbreak en \dosomebreak{..} in koppen
-%
-% bij koppen zowieso: \blanko[reset]
-
-% Nog in commando verwerken:
-%
-% \voorkeur … la \blanko
-%
-% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break}
-% een \penalty v¢¢r witruimte worden geplaatst.
-
-\def\dosomebreak#1%
- {\skip0=\lastskip
- \removelastskip
- %\type{#1}%
- #1\relax
- \ifdim\skip0=\!!zeropoint
- \else
- \vskip\skip0
- \fi}
-
-% beter, vooral in \vbox; nog in \pagina toepassen s!
-
-\def\doifoutervmode#1%
- {\ifvmode\ifinner\else#1\fi\fi}
-
-\def\dosomebreak#1%
- {\doifoutervmode
- {\skip0=\lastskip
- \removelastskip
- %\leavevmode\type{#1}%
- #1\relax
- \ifdim\skip0=\!!zeropoint % else interference with footnotes
- \else
- \vskip\skip0
- \fi}}
-
-% Idem:
-%
-% \springin
-
-%\def\noindentation% vervallen
-% {\EveryPar
-% {\ifdim\parindent=\!!zeropoint
-% \else
-% \bgroup
-% \setbox0=\lastbox
-% \egroup
-% \fi
-% \EveryPar{}}}
-
-\newif\ifindentation \indentationtrue % documenteren, naar buiten
-
-\let\checkindentation=\relax
-
-\def\donoindentation%
- {\ifdim\parindent=\!!zeropoint
- \else
- \bgroup
- \setbox0=\lastbox
- \egroup
- \fi}
-
-\def\noindentation%
- {\indentationfalse
- \def\checkindentation%
- {\donoindentation
- \let\checkindentation=\indentationtrue}}
-
-\def\indentation%
- {\ifvmode
- \ifdim\parindent=\!!zeropoint
- \else
- \hskip\parindent
- \fi
- \fi}
-
-% 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{}}
-
-\def\forgeteverypar%
- {\everypar{\the\neverypar}}
-
-\def\forgetparindent%
- {\forgeteverypar
- \stelinspringenin[\v!geen]}
-
-\def\forgetparskip%
- {\stelwitruimtein[\v!geen]}
-
-\def\forgetbothskips%
- {\leftskip\!!zeropoint
- \rightskip\!!zeropoint\relax}
-
-\def\forgetspacing%
- {\emergencystretch\!!zeropoint\relax}
-
-\def\forgetall%
- {\let\par=\endgraf % i.v.m. getpar etc
- \forgetparskip
- \forgetparindent
- \forgetbothskips
- \forgetspacing} % i.v.m. funny spacing in pagebody
-
-\def\localvbox#1#%
- {\vbox#1\bgroup
- \forgetparskip
- \setlocalhsize
- \hsize=\localhsize
- \forgetparindent
- \forgetbothskips
- \forgeteverypar
- \let\next=}
-
-% ach ja
-
-\unexpanded\def\dostartattributes#1%
- {\begingroup % geen \bgroup, anders in mathmode lege \hbox
- \doifdefinedelse{#1\c!kleur}
- {\def\colorattribute{\getvalue{#1\c!kleur}}}
- {\let\colorattribute=\empty}%
- \doifdefinedelse{#1\c!letter}
- {\def\fontattribute{\getvalue{#1\c!letter}}}
- {\let\fontattribute=\empty}%
- \startcolor[\colorattribute]%
- \doconvertfont{\fontattribute}}
-
-\unexpanded\def\dostopattributes%
- {\stopcolor
- \endgroup}
-
-\unexpanded\def\doattributes#1#2%
- {\dostartattributes{#1}{#2}\dostopattributes}
-
-% \dotextprefix{tekst}
-%
-% als {tekst} niet leeg is: tekst~
-
-\def\dotextprefix#1%
- {\ConvertToConstant\doifnot{#1}{}{#1~}}
-
-\def\herhaal {\dorepeat}
-\def\herhaler {\repeater}
-\def\herhaalmetcommando {\dorepeatwithcommand}
-
-% This permits things like ^\index{hans}^, where hans is
-% duplicated in the text.
-
-\newif\ifduplicate
-
-\bgroup
-\gdef\checkduplication% in line with Knuth
- {\ifmmode
- \def\next{^}%
- \else
- \let\next=\startduplication
- \fi
- \next}
-\gdef\insideduplication%
- {\ifmmode
- \def\next{^}%
- \else
- \let\next=\egroup
- \fi
- \next}
-\catcode`\^=\@@active
-\gdef\enableduplication%
- {\catcode`\^=\@@active
- \let^=\checkduplication}
-\gdef\disableduplication%
- {\catcode`\^=\@@superscript}
-\gdef\startduplication%
- {\bgroup
- \duplicatetrue
- \let^=\insideduplication}
-\egroup
-
-\def\verbatim#1%
- {\convertargument#1\to\ascii\ascii}
-
-% mogelijke optimalisaties:
-%
-% \ifx ...\else ...\fi
-% \ifvisible ... \fi
-
-% De opbouw van deze file
-%
-% Deze file bevat naast de verschillende Pragma-Macro's ook
-% helpinformatie bij deze macro's en templates. Een blok
-% helpinformatie wordt gekenmerkt door een %I.
-%
-% Een blok kan zijn opgedeeld in pagina's. In dat geval is
-% %I vervangen door %P. De eerste regel van een blok bevat
-% de titel van de informatie.
-%
-% Een template (voorgedefinieerde structuur) wordt gekenmerkt
-% door %T. Ook hier bevat de eerste regel een titel,
-% eventueel gevolgd door een mnemonic.
-%
-% Zowel de helpinformatie als de templates zijn in het
-% programma TeXEdit oproepbaar.
-%
-% Het programma TeXEdit kan t.z.t. worden ingesteld met
-% behulp van de onderstaande, door %S voorafgegane,
-% setupcommando's. Vooralsnog is een en ander 'hard' in het
-% programma geprogrammeerd.
-
-%S InputFile \input
-%S InputFile \omgeving \environment
-%S InputFile \projekt \project
-%S InputFile \produkt \product
-%S InputFile \onderdeel \component
-%S
-%S CheckStrings \start \stop
-%S CheckStrings \begin \end
-%S CheckStrings \begin \eind
-%S
-%S CheckChars { }
-%S CheckChars [ ]
-%S CheckChars ( )
-%S
-%S CheckChar $
-
-% Het <pagina>-karakter (FormFeed), wordt omgezet in \par
-
-\edef\oldlinefeed{\the\catcode`\^^L}
-
-\catcode`\^^L=\oldlinefeed
-
-\catcode`\^^L=\@@endofline
-
-%I n=Struts
-%I c=\strut,\setnostrut,\setstrut,\toonstruts
-%I
-%I Struts zijn onzichtbare 'karakters' met alleen een hoogte
-%I en diepte. De volgende commando's hebben betrekking op
-%I struts
-%I
-%I \strut
-%I \setstrut
-%I \setnostrut
-%I \toonstruts
-
-\def\toonstruts%
- {\setteststrut}
-
-% Hieronder volgen enkele instellingen en macro's ten behoeve
-% van de interlinie en \strut. De waarden 2.8, 0.07, 0.72 en
-% 0.28 zijn ooit eens ontleend aan INRS-TEX en moeten wellicht
-% nog eens instelbaar worden.
-%
-% \lineheight : de hoogte van een regel
-% \spacing{getal} : instellen interlinie
-% \normalbaselines : instellen regelafstend
-%
-% \setstrut : instellen \strut
-% \setnostrut : resetten \strut, \endstrut, \begstrut
-%
-% \setteststrut : instellen zichtbare struts
-% \resetteststrut : instellen onzichtbare struts
-%
-% \setfontparameters : instellen na fontset
-%
-% De hoogte van een regel (\lineheight) is gelijk aan de
-% som van de hoogte (\ht) en diepte (\dp) van \strutbox.
-%
-% \strut : denkbeeldig blokje met hoogte en diepte
-%
-% Een \hbox kan als deze aan het begin van een regel staat
-% een breedte \hsize krijgen. Dit is soms te voorkomen met het
-% commando \leavevmode. Binnen een \vbox geeft dit echter
-% niet altijd het gewenste resultaat, vandaar het commando
-%
-% \leaveoutervmode
-
-% Pas op: niet zomaar \topskip en \baselineskip aanpassen
-% en zeker niet \widowpenalty. Dit kan ernstige gevolgen
-% hebben voor kolommen.
-%
-% Enige glue kan op zich geen kwaad, echter als blanko=vast,
-% dan moet ook de rek 0 zijn. Binnen kolommen is rek ook
-% niet bepaald mooi. Een hele kleine waarde (0.025) voldoet,
-% omdat een positieve glue eindeloos rekbaar is.
-
-\newdimen\strutdimen
-\newdimen\lineheight
-\newdimen\openlineheight
-
-\def\strutheightfactor {.72}
-\def\strutdepthfactor {.28}
-
-\def\baselinefactor {2.8}
-\def\baselinegluefactor {0}
-
-\def\normallineheight {\baselinefactor ex}
-
-\def\strutheight {0pt}
-\def\strutdepth {0pt}
-\def\strutwidth {0pt}
-
-\def\spacingfactor {1}
-
-\def\topskipfactor {1.0}
-\def\maxdepthfactor {0.4}
-
-\let\systemtopskipfactor = \topskipfactor
-\let\systemmaxdepthfactor = \maxdepthfactor
-
-% De onderstaande definitie wordt in de font-module overruled
-
-\ifx\globalcorpssize\undefined
- \newdimen\globalcorpssize \globalcorpssize=12pt
-\fi
-
-% door een \dimen. Dit is geen probleem omdat (1) de default
-% korpsgrootte 12pt is en (2) de fonts nog niet geladen zijn
-% en de instellingen bij het laden nogmaals plaatsvinden.
-
-\def\settopskip%
- {\topskip=
- \systemtopskipfactor\globalcorpssize
- \ifr@ggedbottom\!!plus5\globalcorpssize\fi
- \relax}
-
-\def\setmaxdepth%
- {\maxdepth=\systemmaxdepthfactor\globalcorpssize}
-
-\def\normalbaselines%
- {\baselineskip\normalbaselineskip
- \lineskip\normallineskip
- \lineskiplimit\normallineskiplimit}
-
-\def\setnormalbaselines%
- {\lineheight=\normallineheight
- \openlineheight=\spacingfactor\lineheight
- \normalbaselineskip=
- \openlineheight
- \!!plus\baselinegluefactor\openlineheight
- \!!minus\baselinegluefactor\openlineheight
- \normallineskip\!!onepoint\relax
- \normallineskiplimit\!!zeropoint\relax
- \normalbaselines}
-
-\def\setspacingfactor#1\to#2\by#3\\%
- {\strutdimen=#2pt\relax
- \strutdimen=#3\strutdimen
- \edef#1{\withoutpt{\the\strutdimen}}}
-
-\def\spacing#1%
- {\edef\spacingfactor{#1}%
- \setspacingfactor\systemtopskipfactor\to\topskipfactor\by#1\\%
- \setspacingfactor\systemmaxdepthfactor\to\maxdepthfactor\by#1\\%
- \setnormalbaselines
- \setstrut}
-
-\def\setstrutdimen#1#2#3% % een strut is n.m maal ex
- {\strutdimen=\normallineheight % wat niet per se \lineheight
- \strutdimen=#2\strutdimen % is omdat een strut lokaal
- \strutdimen=#3\strutdimen % kan afwijken van de globale
- \edef#1{\the\strutdimen}} % strut
-
-\let\normalstrut=\strut
-
-% The double \hbox construction enables us to \backtrack
-% boxes.
-
-\def\setstrut%
- {\setstrutdimen\strutheight\strutheightfactor\spacingfactor
- \setstrutdimen\strutdepth\strutdepthfactor\spacingfactor
- \let\strut=\normalstrut
- \setbox\strutbox=\normalhbox
- {\normalhbox
- {\vrule
- \!!width \strutwidth
- \!!height \strutheight
- \!!depth \strutdepth
- \kern-\strutwidth}}}
-
-\def\setteststrut%
- {\def\strutwidth{.8pt}%
- \setstrut}
-
-\def\begstrut%
- {\ifdim\ht\strutbox=\!!zeropoint\relax\else
- \strut
- \normalpenalty\!!tenthousand
- \normalhskip\!!zeropoint
- \ignorespaces
- \fi}
-
-\def\endstrut%
- {\ifdim\ht\strutbox=\!!zeropoint\relax\else
- \unskip
- \normalpenalty\!!tenthousand
- \normalhskip\!!zeropoint
- \strut
- \fi}
-
-\def\setnostrut%
- {\setbox\strutbox=\normalhbox{\normalhbox{}}%
- \def\strut{}%
- \def\endstrut{}%
- \def\begstrut{}}
-
-\def\resetteststrut%
- {\let\strutwidth=\!!zeropoint
- \setstrut}
-
-\def\setfontparameters%
- {\the\everycorps}
-
-% \setnormalbaselines
-% \setstrut
-% \settopskip
-% \setmaxdepth
-% \the\EveryFontSwitch
-
-\newskip\oldbaselineskip
-\newskip\oldlineskip
-\newskip\oldlineskiplimit
-
-\newif\ifinterlineskipoff
-
-\def\offinterlineskip%
- {\ifinterlineskipoff\else
- \interlineskipofftrue
- \oldbaselineskip=\baselineskip
- \oldlineskip=\lineskip
- \oldlineskiplimit=\lineskiplimit
- \fi
- \baselineskip-1000\p@ % knuth's value
- \lineskip\z@ % knuth's value
- \lineskiplimit\maxdimen} % knuth's value
-
-\def\oninterlineskip%
- {\ifinterlineskipoff
- \baselineskip=\oldbaselineskip
- \lineskip=\oldlineskip
- \lineskiplimit=\oldlineskiplimit
- \fi}
-
-\def\leaveoutervmode%
- {\ifvmode\ifinner\else
- \leavevmode
- \fi\fi}
-
-%D \macros
-%D {getnoflines}
-%D {}
-%D
-%D Het commando \type{\getnoflines} converteert een hoogte
-%D (dimensie) in een aantal regels en kent dit toe aan
-%D \type{\noflines}.
-%D
-%D \starttypen
-%D \getnoflines{dimensie}
-%D \stoptypen
-%D
-%D Er wordt gedeeld door \type{\openlineheight} en een hoogte
-%D van~0pt komt overeen met 0~regels.
-
-\newcount\noflines
-
-\def\getnoflines#1%
- {\dimen0=#1\relax
- \ifdim\dimen0=\!!zeropoint\relax
- \noflines=0\relax
- \else
- \divide\dimen0 by \openlineheight
- \noflines=\dimen0
- \advance\noflines by 1\relax
- \fi}
-
-
-% We passen ook de \displayskip's wat aan (nog eens uitzoeken):
-
-\def\displayskipsize#1#2%
- {#1\lineheight\!!plus#2\lineheight\!!minus#2\lineheight}
-
-\def\displayskipfactor {1.0}
-\def\displayshortskipfactor {0.8}
-
-\def\displayskipgluefactor {0.3}
-\def\displayshortskipgluefactor {0.2}
-
-\def\abovedisplayskipsize% doet niets ?
- {\displayskipsize\displayskipfactor\displayskipgluefactor}
-
-\def\belowdisplayskipsize% doet niets ?
- {\displayskipsize\displayskipfactor\displayskipgluefactor}
-
-\def\abovedisplayshortskipsize%
- {\displayskipsize\displayshortskipfactor\displayshortskipgluefactor}
-
-\def\belowdisplayshortskipsize%
- {\displayskipsize\displayshortskipfactor\displayshortskipgluefactor}
-
-\def\setdisplayskip#1#2#3%
- {#1=#2\relax
- \advance#1 by -\parskip
- \advance#1 by -#3\relax}
-
-\def\setdisplayskips%
- {\setdisplayskip\abovedisplayskip\abovedisplayskipsize\baselineskip
- \setdisplayskip\belowdisplayskip\belowdisplayskipsize\!!zeropoint
- \setdisplayskip\abovedisplayshortskip\abovedisplayshortskipsize\baselineskip
- \setdisplayskip\belowdisplayshortskip\belowdisplayshortskipsize\!!zeropoint}
-
-% We stellen enkele penalties anders in dan Plain TEX:
-
-\widowpenalty=2000 % was: 1000
-\clubpenalty=2000 % was: 800
-
-% Bovendien definieren we enkele extra \fill's:
-
-\def\hfilll%
- {\hskip\!!zeropoint\!!plus1filll}
-
-\def\vfilll%
- {\vskip\!!zeropoint\!!plus1filll}
-
-% De onderstaande hulpmacro's moeten nog eens instelbaar worden
-% gemaakt.
-
-\def\tfskipsize{1em\relax}
-
-\def\tfkernsize{1ex\relax}
-
-\def\tfskip%
- {{\tf\hskip\tfskipsize}}
-
-\def\tfkern%
- {{\tf\kern\tfkernsize}}
-
-% 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\writeutilitycommand#1%
- {\write\uti{c \string#1}}
-
-\def\openutilities%
- {\immediate\openout\uti=\jobname
- \ifselecteren
- .\f!temporaryextension
- \else
- .\f!inputextension
- \fi
- \immediate\writeutilitycommand%
- {\thisisutilityversion{\utilityversion}}}
-
-\def\closeutilities%
- {\savenofsubpages
- \savenofpages
- \immediate\closeout\uti}
-
-\def\utilityresetlist{}
-
-\def\addutilityreset#1%
- {\addtocommalist{\s!reset#1}\utilityresetlist}
-
-\def\resetutilities%
- {\processcommacommand[\utilityresetlist]\getvalue}
-
-% #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}
-
-\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}
- {}}}
-
-\long\def\doutilities#1#2#3#4#5% % introduceren in utility file
- {%\ifprocessingverbatim
- % \showmessage{\m!systems}{1}{}%
- %\else
-\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
- \endgroup
- }%\fi}
-
-% 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
-
-\def\alltwopasslists{}
-
-\newif\iftwopassdatafound
-
-\def\twopassentry#1%
- {\executeifdefined{@@#1\s!pass}\gobbletwoarguments}
-
-\def\definetwopasslist#1%
- {\doifundefined{#1:\s!list}
- {\addtocommalist{#1}\alltwopasslists
- \doglobal\addutilityreset{#1\s!pass}%
- \setgvalue{\s!set#1\s!pass}%
- {\setgvalue{@@#1\s!pass}####1####2%
- {\debuggerinfo{\m!systems}{twopass data #1 - ####1 = ####2}%
- \setxvalue{#1:\s!list}{\getvalue{#1:\s!list}####2,}}}%
- \setgvalue{\s!reset#1\s!pass}%
- {\setgvalue{@@#1\s!pass}####1####2{}}%
- \getvalue{\s!reset#1\s!pass}}}
-
-\def\doloadtwopassdata#1%
- {\doifundefined{#1:\s!list}
- {\setgvalue{#1:\s!list}{}%
- \doutilities{#1\s!pass}{\jobname}{}{}{}%
- \setxvalue{#1:\s!list}{\getvalue{#1:\s!list}0,0}}}
-
-\def\loadtwopassdata%
- {\processcommacommand[\alltwopasslists]\doloadtwopassdata}
-
-\def\twopassdata{}
-
-\def\dogettwopassdata[#1,#2]#3%
- {\doifelse{#1}{0}
- {\twopassdatafoundfalse}
- {\twopassdatafoundtrue
- \setxvalue{#3:\s!list}{#2}%
- \edef\twopassdata{#1}}}
-
-\def\gettwopassdata#1%
- {\edef\!!stringa{\getvalue{#1:\s!list}}%
- \debuggerinfo{\m!systems}{twopass get #1 - \!!stringa}%
- \expandafter\dogettwopassdata\expandafter[\!!stringa]{#1}}
-
-\def\dofindtwopassdata#1#2%
- {\edef\!!stringa{,\getvalue{#1:\s!list}}%
- \debuggerinfo{\m!systems}{twopass find #2 - \!!stringa}%
- \def\dodofindtwopassdata[##1,##2#2##3,##4]%
- {\def\twopassdata{##3}%
- \doifelse{##3}{}
- {\twopassdatafoundfalse}
- {\twopassdatafoundtrue}}%
- \@EA\dodofindtwopassdata\@EA[\!!stringa,#2,#2,]}
-
-\def\findtwopassdata%
- {\ExpandBothAfter\dofindtwopassdata}
-
-\def\dogetfirsttwopassdata[#1,#2]#3%
- {\doifelse{#1}{0}
- {\twopassdatafoundfalse}
- {\twopassdatafoundtrue
- \edef\twopassdata{#1}}}
-
-\def\getfirsttwopassdata#1%
- {\edef\!!stringa{\getvalue{#1:\s!list}}%
- \expandafter\dogetfirsttwopassdata\expandafter[\!!stringa]{#1}}
-
-\def\getlasttwopassdata#1%
- {\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%
- {\getfromcommacommand[\getvalue{#1:\s!list}][#2]%
- \doifelsenothing{\commalistelement}
- {\twopassdatafoundfalse}
- {\twopassdatafoundtrue
- \let\twopassdata=\commalistelement}}
-
-% Maten
-%
-% De onderstaande instellingen worden gebruikt voor het
-% vastleggen van de zetspiegel en marges.
-
-\voffset=0pt % setting this to -1in let's go metapost crazy
-\hoffset=0pt % setting this to -1in let's go metapost crazy
-
-\newdimen\papierhoogte
-\newdimen\papierbreedte
-
-\newdimen\printpapierhoogte
-\newdimen\printpapierbreedte
-
-\newdimen\zethoogte
-\newdimen\zetbreedte
-
-\newdimen\teksthoogte
-\newdimen\tekstbreedte
-
-\newdimen\kopwit \kopwit=2cm
-\newdimen\rugwit \rugwit=2cm
-
-\newdimen\hoofdhoogte \hoofdhoogte=2cm
-\newdimen\voethoogte \voethoogte=2cm
-
-\newdimen\kopkopwit \kopkopwit=0cm
-
-\newdimen\kopoffset \kopoffset=\!!zeropoint
-\newdimen\rugoffset \rugoffset=\!!zeropoint
-
-\newdimen\linkermargebreedte \linkermargebreedte=3cm
-\newdimen\rechtermargebreedte \rechtermargebreedte=\linkermargebreedte
-
-\newdimen\linkerrandbreedte \linkerrandbreedte=3cm
-\newdimen\rechterrandbreedte \rechterrandbreedte=\linkerrandbreedte
-
-\newdimen\bovenhoogte \bovenhoogte=1cm
-\newdimen\onderhoogte \onderhoogte=\bovenhoogte
-
-\def\margeafstand%
- {\@@lymargeafstand}
-
-\def\randafstand%
- {\@@lyrandafstand}
-
-\def\margebreedte%
- {\@@lymarge}
-
-\def\randbreedte%
- {\@@lyrand}
-
-\def\linkerrandafstand%
- {\ifdim\!!zeropoint<\linkerrandbreedte
- \@@lylinkerrandafstand
- \else
- \!!zeropoint
- \fi}
-
-\def\rechterrandafstand%
- {\ifdim\!!zeropoint<\rechterrandbreedte
- \@@lyrechterrandafstand
- \else
- \!!zeropoint
- \fi}
-
-\def\linkermargeafstand%
- {\ifdim\!!zeropoint<\linkermargebreedte
- \@@lylinkermargeafstand
- \else
- \!!zeropoint
- \fi}
-
-\def\rechtermargeafstand%
- {\ifdim\!!zeropoint<\rechtermargebreedte
- \@@lyrechtermargeafstand
- \else
- \!!zeropoint
- \fi}
-
-\def\bovenafstand%
- {\ifdim\!!zeropoint<\bovenhoogte
- \@@lybovenafstand
- \else
- \!!zeropoint
- \fi}
-
-\def\hoofdafstand%
- {\ifdim\!!zeropoint<\hoofdhoogte
- \@@lyhoofdafstand
- \else
- \!!zeropoint
- \fi}
-
-\def\voetafstand%
- {\ifdim\!!zeropoint<\voethoogte
- \@@lyvoetafstand
- \else
- \!!zeropoint
- \fi}
-
-\def\onderafstand%
- {\ifdim\!!zeropoint<\onderhoogte
- \@@lyonderafstand
- \else
- \!!zeropoint
- \fi}
-
-\newif\ifdubbelzijdig
-\dubbelzijdigfalse
-
-\newif\ifenkelzijdig
-\enkelzijdigtrue
-
-\def\doifsometextlineelse#1#2#3% ! omgekeerd !
- {\doifinsetelse{\getvalue{\??tk#1\v!tekst\c!status}}{\v!geen,\v!hoog}{#3}{#2}}
-
-\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}
- {}%
- \doifsometextlineelse{\v!voet}
- {\redoglobal\advance\teksthoogte by -\voethoogte
- \redoglobal\advance\teksthoogte by -\voetafstand}
- {}%
- \resetglobal
- \setvsize}
-
-\def\calculatereducedvsizes%
- {\teksthoogte=\zethoogte
- \doifsometextlineelse{\v!hoofd}
- {\advance\teksthoogte by -\hoofdhoogte
- \advance\teksthoogte by -\hoofdafstand}
- {\hoofdhoogte=\!!zeropoint}%
- \doifsometextlineelse{\v!voet}
- {\advance\teksthoogte by -\voethoogte
- \advance\teksthoogte by -\voetafstand}
- {\voethoogte=\!!zeropoint}}
-
-\def\calculatehsizes%
- {\tekstbreedte=\zetbreedte
- \sethsize}
-
-\def\sethsize%
- {\global\hsize=\tekstbreedte}
-
-\def\setvsize%
- {\ifdim\vsize=\teksthoogte
- \else
- \bgroup
- \dimen0=-\vsize
- \advance\dimen0 by \teksthoogte
- \global\advance\vsize by \dimen0
- \ifdim\pagegoal<\maxdimen
- \advance\dimen0 by \pagegoal
- \global\pagegoal=\dimen0
- \fi
- \egroup
- \fi}
-
-% Algemeen
-%
-% De Pragma-macros zijn samengesteld met behulp van de
-% commandos van PlainTeX- en enkele TugBoat routines.
-%
-% Voor de volledigheid zijn in de definitie steeds de
-% {}-haakjes vermeld. Deze haakjes zijn niet altijd
-% nodig, Als bijvoorbeeld een paragraaf bewerkt wordt,
-% kunnen ze achterwege blijven.
-%
-% Instellingen worden opgegeven tussen []-haakjes,
-% meestal direct na het commando. Instellingen mogen
-% soms achterwege blijven.
-%
-% 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.
-%
-% \doifonevenpaginaelse{then-commando}{else-commando}
-
-\def\doifonevenpaginaelse#1#2%
- {\ifodd\userpageno#1\else#2\fi}
-
-\def\doifbothsidesoverruled#1\orsideone#2\orsidetwo#3\od%
- {\ifdubbelzijdig
- \ifodd\userpageno#2\relax\else#3\relax\fi
- \else
- #1\relax
- \fi}
-
-\def\doifbothsides#1\orsideone#2\orsidetwo#3\od%
- {\ifdubbelzijdig
- \ifenkelzijdig
- #1\relax
- \else
- \ifodd\userpageno#2\relax\else#3\relax\fi
- \fi
- \else
- #1\relax
- \fi}
-
-%I n=Lokaliteit
-%I c=\startlokaal
-%I
-%I Een aantal instellingen hebben een globaal karakter,
-%I bijvoorbeeld die met betrekking tot de zetspiegel.
-%I Dergelijke instellingen kunnen eventueel lokaal worden
-%I gehouden door ze tussen de volgende commando's te
-%I instellingen plaatsen:
-%I
-%I \startlokaal
-%I \stoplokaal
-
-\def\dostartglobaldefs#1#2%
- {\edef\!!stringa{\the\globaldefs}%
- \ifnum\globaldefs#10
- \globaldefs=-\globaldefs
- \fi
- \advance\globaldefs by #21
- \setevalue{@gd@\the\globaldefs}{\!!stringa}}
-
-\def\dostopglobaldefs%
- {\doifdefinedelse{@gd@\the\globaldefs}
- {\globaldefs=\getvalue{@gd@\the\globaldefs}\relax}
- {\globaldefs=0\relax}}
-
-\def\startlokaal {\dostartglobaldefs>-}
-\def\stoplokaal {\dostopglobaldefs}
-\def\startglobaal {\dostartglobaldefs<+}
-\def\stopglobaal {\dostopglobaldefs}
-
-%I n=Zetspiegel
-%I c=\stellayoutin,\definieerpapierformaat,\stelpapierformaatin
-%I c=\paslayoutaan
-%I
-%I De zetspiegel is het door de tekst gevormde vlak.
-%I Hiertoe behoren ¢¢k de hoofd- en voetmarge. De zetspiegel
-%I wordt ingesteld met:
-%I
-%I \stellayoutin[breedte=,hoogte=,rugwit=,kopwit=]
-%I
-%I Er dienen maten te worden ingevuld, waarbij de eenheid
-%I direkt achter het getal staat: 10pt, 100mm, 5cm, 3.5in.
-%I
-%I De parameters hebben de volgende betekenis:
-%I
-%I breedte breedte van het tekstvlak, inclusief marges
-%I hoogte hoogte van het tekstvlak, inclusief marges
-%I rugwit witruimte aan de binnenzijde, zonder marge
-%I kopwit witruimte aan de bovenzijde, zonder marge
-%P
-%I Rond de zetspiegel vinden we marges, randen, het hoofd en
-%I de voet. Ook deze worden ingesteld met:
-%I
-%I \stellayoutin[breedte=,hoogte=,rugwit=,kopwit=]
-%I
-%I hoofd hoogte van de bovenmarge binnen de zetspiegel
-%I voet hoogte van de ondermarge binnen de zetspiegel
-%I marge breedte van de marge naast de zetspiegel
-%I
-%I en
-%I
-%I rand breedte van de rand naast de marge
-%I boven hoogte van de rand boven het hoofd
-%I onder hoogte van de rand onder de voet
-%I
-%I Alleen het hoofd en de voet hangen dus samen met de
-%I zetspiegel.
-%P
-%I Eventueel kunnen de linker- en rechtermarge en apart
-%I worden ingesteld:
-%I
-%I \stellayoutin[linkermarge=,rechtermarge=]
-%I
-%I Het zelfde geldt voor de randen. In dat geval wordt bij
-%I dubbelzijdig zetten gespiegeld. Oppassen dus!
-%I
-%I De afstanden tussen marges, randen enz. kunnen worden
-%I ingesteld met:
-%I
-%I bovenafstand, onderafstand
-%I hoofdafstand,voetafstand
-%I linkermargeafstand,rechtermargeafstand,
-%I linkerrandafstand,rechterrandafstand
-%P
-%I De zetspiegel kan (tijdelijk) worden aangepast met het
-%I commando:
-%I
-%I \paslayoutaan[hoogte=]
-%I
-%I Men dient een positieve (+) of negatieve (-) maat op te
-%I geven. De zethoogte blijft gelijk, maar de teksthoogte
-%I wordt aangepast ten koste van de voethoogte. Eventueel
-%I kan 'max' worden opgegeven.
-%I
-%I Er kan een reeks aanpassingen worden opgegeven:
-%I
-%I \paslayoutaan[nr,nr,nr,...][hoogte=]
-%I
-%I Hierbij is staat nr voor het paginanummer, dat wil
-%I zeggen: het volgnummer in de tekst.
-%I
-%I Bij voorlopige versies wordt onderaan de pagina de
-%I aanpassing weergegeven.
-%P
-%I Beeldmerken en achtergronden worden uit oogpunt van
-%I verwerkingssnelheid niet vaker berekend dan nodig. Mocht
-%I om een of andere reden een beeldmerk of achtergrond niet
-%I overeenkomen komen met de wensen, dan kan herberekenen
-%I worden geforceerd met:
-%I
-%I \stellayoutin[reset]
-%P
-%I Het papierformaat is in te stellen met het commando
-%I
-%I \stelpapierformaatin[DIN-formaat]
-%I
-%I Mogelijke DIN-formaten zijn A4 tot en met A9. De
-%I afmetingen van een A4 zijn:
-%I
-%I breedte : 21.0cm = 8.18in = 589pt
-%I hoogte : 29.7cm = 11.58in = 834pt
-%I
-%I Optioneel kan men het printer papierformaat instellen door
-%I een tweede argument mee te geven. Standaard wordt
-%I uitgegaan van A4.
-%I
-%I \stelpapierformaatin[A5][A4]
-%I
-%P Men kan zelf een papierformaat definieren met
-%I
-%I \definieerpapierformaat [naam] [hoogte=,breedte=]
-%I
-%I waarbij de offset betrekking heeft op dubbelzijdig zetten.
-
-\def\dodefinieerpapierformaat[#1][#2]%
- {\getparameters
- [\??pp#1]
- [\c!breedte=\@@ppbreedte,\c!hoogte=\@@pphoogte,#2]}
-
-\def\definieerpapierformaat%
- {\dodoubleargument\dodefinieerpapierformaat}
-
-\definieerpapierformaat[][\c!breedte=210mm,\c!hoogte=297mm]
-
-\def\dostelpapierformaatin[#1][#2]%
- {\doifdefined{\??pp#1\c!breedte}
- {\gdef\papierformaat{#1}%
- \global\papierbreedte=\getvalue{\??pp#1\c!breedte}%
- \global\papierhoogte=\getvalue{\??pp#1\c!hoogte}%
- \doifdefinedelse{\??pp#2\c!breedte}
- {\global\printpapierbreedte=\getvalue{\??pp#2\c!breedte}%
- \global\printpapierhoogte=\getvalue{\??pp#2\c!hoogte}}
- {\global\printpapierbreedte=\papierbreedte
- \global\printpapierhoogte=\papierhoogte}%
-\ifdim\papierhoogte>\printpapierhoogte
- \global\printpapierhoogte=\papierhoogte
-\fi
-\ifdim\papierbreedte>\printpapierbreedte
- \global\printpapierbreedte=\papierbreedte
-\fi
- \calculatehsizes
- \calculatevsizes
- \global\newlogostrue
- \global\newbackgroundtrue}%
- \resetlayout}
-
-\def\stelpapierformaatin%
- {\dodoubleempty\dostelpapierformaatin}
-
-\def\checkforems[#1]%
- {\def\docommando##1%
- {\beforesplitstring##1\at em\to\asciia
- \doifnot{\asciia}{##1}
- {\aftersplitstring\asciia\at=\to\asciia
- \doifsomething{\asciia}
- {\showmessage{\m!systems}{10}{##1}}}}%
- \processcommalist[#1]\docommando}
-
-\def\resetlayout%
- {\global\linkermargebreedte=\@@lylinkermarge
- \global\rechtermargebreedte=\@@lyrechtermarge
- \global\linkerrandbreedte=\@@lylinkerrand
- \global\rechterrandbreedte=\@@lyrechterrand
- \global\hoofdhoogte=\@@lyhoofd
- \global\voethoogte=\@@lyvoet
- \global\onderhoogte=\@@lyonder
- \global\bovenhoogte=\@@lyboven
- %\global\zetbreedte=\@@lybreedte
- %\global\zethoogte=\@@lyhoogte
- \global\rugwit=\@@lyrugwit
- \global\kopwit=\@@lykopwit
- \doifelse{\@@lybreedte}{\v!passend}
- {\global\zetbreedte=\papierbreedte
- \global\advance\zetbreedte by -\rugwit
- \scratchdimen=\rugwit
- \advance\scratchdimen by -\linkerrandbreedte
- \advance\scratchdimen by -\linkerrandafstand
- \advance\scratchdimen by -\paginascheiding
- \advance\scratchdimen by -\linkermargebreedte
- \advance\scratchdimen by -\linkermargeafstand
- \ifdim\scratchdimen<\!!zeropoint
- \scratchdimen=\!!zeropoint
- \fi
- \global\advance\zetbreedte by -\rechtermargeafstand
- \global\advance\zetbreedte by -\rechtermargebreedte
- \global\advance\zetbreedte by -\paginascheiding
- \global\advance\zetbreedte by -\rechterrandafstand
- \global\advance\zetbreedte by -\rechterrandbreedte
- \global\advance\zetbreedte by -\scratchdimen}
- {\global\zetbreedte=\@@lybreedte}%
- \doifelse{\@@lyhoogte}{\v!passend}
- {\global\zethoogte=\papierhoogte
- \global\advance\zethoogte by -\kopwit
- \scratchdimen=\kopwit
- \advance\scratchdimen by -\bovenhoogte
- \advance\scratchdimen by -\bovenafstand
- \ifdim\scratchdimen<\!!zeropoint
- \scratchdimen=\!!zeropoint
- \fi
- \global\advance\zethoogte by -\onderafstand
- \global\advance\zethoogte by -\onderhoogte
- \global\advance\zethoogte by -\scratchdimen}
- {\global\zethoogte=\@@lyhoogte}%
- \rugoffset=\@@lyrugoffset
- \kopoffset=\@@lykopoffset
- \calculatehsizes
- \calculatevsizes
- \global\newlogostrue
- \global\newbackgroundtrue}
-
-\def\dostellayoutin[#1]%
- {\ConvertToConstant\doifnot{#1}{\v!reset}
- {\getparameters[\??ly][#1]%
- \checkforems[#1]}%
- \resetlayout}
-
-\def\stellayoutin%
- {\dosingleargument\dostellayoutin}
-
-\let\@@zahoogte=\!!zeropoint
-
-\def\dopushpagedimensions%
- {\xdef\oldteksthoogte{\the\teksthoogte}%
- \xdef\oldvoethoogte{\the\voethoogte}%
- \global\let\@@zahoogte=\@@zahoogte}
-
-\def\dopoppagedimensions%
- {\global\teksthoogte=\oldteksthoogte
- \global\voethoogte=\oldvoethoogte
- \calculatevsizes
- \global\let\pushpagedimensions=\dopushpagedimensions
- \global\let\poppagedimensions=\relax}
-
-\let\poppagedimensions=\relax
-\let\pushpagedimensions=\dopushpagedimensions
-
-% Elke \csname ... \endcsname wordt ook aangemaakt, dus ook
-% in een test met \doifdefined. Bij veel bladzijden kan dit
-% te veel macro's kosten. Vandaar de set \adaptedpages. Het
-% kost tijd, maar scheelt macro's.
-
-\def\adaptedpages{}
-
-\def\adaptpagedimensions%
- {\rawdoifinsetelse{\realfolio}{\adaptedpages}
- {\getvalue{\??za\realfolio}%
- \letvalue{\??za\realfolio}=\relax}
- {}}
-
-\def\checkpagedimensions%
- {\poppagedimensions
- \adaptpagedimensions}
-
-\def\reportpagedimensions%
- {\ifx\poppagedimensions\relax
- \else
- \spatie\@@zahoogte\spatie-
- \fi
- \realfolio}
-
-\def\dodopaslayoutaan[#1]%
- {\getparameters[\??za][#1]%
- \pushpagedimensions
- \doifelse{\@@zahoogte}{\v!max}
- {\balancedimensions{\teksthoogte}{\voethoogte}{\voethoogte}}
- {\balancedimensions{\teksthoogte}{\voethoogte}{\@@zahoogte}}%
- \ifdim\voethoogte<\!!zeropoint
- \global\advance\teksthoogte by \voethoogte
- \global\voethoogte=\!!zeropoint
- \global\xdef\@@zahoogte{\@@lyvoet\spatie(\v!max)}%
- \fi
- \setvsize
- \global\pagegoal=\vsize % nog corrigeren voor insertions ?
- \global\newlogostrue
- \global\newbackgroundtrue
- \showmessage{\m!layouts}{1}{\@@zahoogte,\realfolio}%
- \global\let\pushpagedimensions=\relax
- \global\let\poppagedimensions=\dopoppagedimensions}
-
-\def\dopaslayoutaan[#1][#2]%
- {\doifelsenothing{#2}
- {\dodopaslayoutaan[#1]}
- {\def\docommando##1%
- {\addtocommalist{##1}\adaptedpages
- \setgvalue{\??za##1}{\dodopaslayoutaan[#2]}}%
- \processcommalist[#1]\docommando
- \adaptpagedimensions}}
-
-\def\paslayoutaan%
- {\dodoubleempty\dopaslayoutaan}
-
-%I n=Margeblokken
-%I c=\startmargeblok,\stelmargeblokkenin
-%I
-%I voorlopig:
-%I
-%I \stelmargeblokkenin
-%I [plaats=,breedte,letter=,uitlijnen=,
-%I voor=,na=,links=,rechts=,boven=,onder=,tussen=]
-%I
-%I plaats = inmarge, links, rechts, midden
-%I links, rechts, voor, na = rule
-%I boven, onder, tussen = skip
-%I status=
-%I
-%I \startmargeblok
-%I \stopmargeblok
-
-\newif\ifmargeblokken
-
-\def\dostelmargeblokkenin[#1]%
- {\getparameters[\??mb][#1]%
- \doifelse{\@@mbstatus}{\v!start}%
- {\showmessage{\m!layouts}{4}{}%
- \margeblokkentrue
- \let\somenextfloat=\dosomenextfloat
- \let\startmargeblok=\dostartmargeblok
- \let\stopmargeblok=\dostopmargeblok}%
- {\showmessage{\m!layouts}{5}{}%
- \margeblokkenfalse
- \def\somenextfloat[##1]%
- {\someelsefloat[##1,\v!hier]}%
- \let\startmargeblok=\dontstartmargeblok
- \let\stopmargeblok=\dontstopmargeblok}}
-
-\def\stelmargeblokkenin%
- {\dosingleargument\dostelmargeblokkenin}
-
-\newbox\marginbox
-
-\def\dosomenextfloat[#1]%
- {\global\setbox\marginbox=\vbox
- {\hsize\@@mbbreedte
- \unvbox\marginbox
- \ifvoid\marginbox\else
- \@@mbtussen
- \fi
- \box\floatbox\filbreak}%
- \ifdim\ht\marginbox>\teksthoogte
- \dosavefloatinfo
- \else
- \doinsertfloatinfo
- \fi}
-
-\newbox\preparedmarginbox
-
-\def\reshapemargin%
- {\beginofshapebox
- \unvbox\preparedmarginbox
- \endofshapebox
- \reshapebox
- {\box\shapebox}%
- \setbox\preparedmarginbox=\vbox to \teksthoogte
- {\@@mbboven
- \flushshapebox
- \@@mbonder}}
-
-\def\plaatsrechtermargeblok%
- {\hskip\rechtermargebreedte}
-
-\def\plaatslinkermargeblok%
- {\hskip\linkermargebreedte}
-
-\def\checkmargeblokken%
- {\setbox\preparedmarginbox=\vbox
- {\forgetall
- \splittopskip\topskip
- \ifvoid\marginbox\else
- \ifdim\ht\marginbox>\teksthoogte
- \vsplit\marginbox to \teksthoogte
- \else
- \unvbox\marginbox
- \fi
- \fi}%
- \reshapemargin
- \setbox\preparedmarginbox=\vbox
- {\@@mbvoor\box\preparedmarginbox\@@mbna}%
- \def\rightmarginbox%
- {\def\plaatsrechtermargeblok%
- {\setbox\preparedmarginbox=\hbox to \rechtermargebreedte
- {\@@mblinks\box\preparedmarginbox\@@mbrechts}%
- \vsmashbox\preparedmarginbox
- \box\preparedmarginbox}}%
- \def\leftmarginbox%
- {\def\plaatslinkermargeblok%
- {\setbox\preparedmarginbox=\hbox to \linkermargebreedte
- {\@@mbrechts\box\preparedmarginbox\@@mblinks}%
- \vsmashbox\preparedmarginbox
- \box\preparedmarginbox}}%
- \processaction
- [\@@mbplaats]
- [ \v!inmarge=>\doifbothsidesoverruled
- \rightmarginbox
- \orsideone
- \rightmarginbox
- \orsidetwo
- \leftmarginbox
- \od,
- \v!midden=>\doifbothsidesoverruled
- \rightmarginbox
- \orsideone
- \leftmarginbox
- \orsidetwo
- \rightmarginbox
- \od,
- \v!links=>\leftmarginbox,
- \v!rechts=>\rightmarginbox,
- \s!unknown=>\setbox\preparedmarginbox=\hbox{}]}
-
-\def\dostartmargeblok% % 2 maal \vbox ivm \unvbox elders
- {\global\setbox\marginbox=\vtop\bgroup\vbox\bgroup
- \hsize\@@mbbreedte
- \ifvoid\marginbox\else
- \unvbox\marginbox
- \@@mbtussen
- \fi
- \steluitlijnenin[\@@mbuitlijnen]%
- \dostartattributes{\??mb}{}%
- \begstrut\ignorespaces}
-
-\def\dostopmargeblok%
- {\unskip\endstrut
- \dostopattributes
- \egroup
- \egroup}
-
-\def\dontstartmargeblok%
- {\@@mbvoor
- \bgroup
- \dostartattributes{\??mb}{}}
-
-\def\dontstopmargeblok%
- {\dostopattributes
- \egroup
- \@@mbna}
-
-%I n=Uitstellen
-%I c=\steluit,\startuitstellen
-%I
-%I Zetcommando's kunnen in een wachtrij worden gezet en na
-%I een pagina worden uitgevoerd. Dit gebeurt met het commando:
-%I
-%I \startuitstellen
-%I ...
-%I \stopuitstellen
-%I
-%I of
-%I
-%I \steluit{...}
-%I
-%I Dit kan handig zijn bij bijvoorbeeld grote tussen te voegen
-%I figuren, tabellen, formulieren enz.
-%I
-%I \startuitstellen
-%I \plaatsfiguur[pagina][]{...}{...}
-%I \stopuitstellen
-%I
-%I Er kunnen meerdere commando's in de wachtrij worden
-%I geplaatst.
-%P
-%I Het mechanisme werkt nog niet vlekkeloos. Zo wordt
-%I nog gerekend met waarden van de vorige pagina. Dit heeft
-%I bijvoorbeeld als gevolg dat figuren kunnen worden
-%I opgespaard.
-%I
-%I Het kan gebeuren dat een (te) groot figuur er voor zorgt
-%I dat ook andere figuren worden verplaatst. De volgorde
-%I blijft immers gehandhaafd. In dat geval kan zo'n groot
-%I figuur worden verplaatst naar de eerstvolgende voor de
-%I handliggende pagina:
-%I
-%I \startuitstellen
-%I \plaatsfiguur[pagina][]{...}{...}
-%I \pagina
-%I \stopuitstellen
-
-\newcounter\nofpostponedblocks
-
-\newbox\postponedblocks
-
-\def\douitstellen%
- {\ifnum\nofpostponedblocks>0
- \showmessage{\m!layouts}{2}{\nofpostponedblocks}%
- \unvbox\postponedblocks
- \doglobal\newcounter\nofpostponedblocks
- \fi}
-
-\def\startuitstellen%
- {\doglobal\increment\nofpostponedblocks
- \showmessage{\m!layouts}{3}{\nofpostponedblocks}%
- \global\setbox\postponedblocks=\vbox
- \bgroup
- \unvbox\postponedblocks
- \let\stopuitstellen=\egroup}
-
-\def\steluit%
- {\startuitstellen\let\next=}
-
-%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
- {\makecounter{\s!number#1}%
- \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]%
- \setcounter{\s!number#1}{\getvalue{\s!number#1\c!start}}}
-
-\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\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
-
-% \firstsubpage : eerste \realpageno, voor interne doeleinden
-% \prevsubpage : vorige \realpageno, voor interne doeleinden
-% \nextsubpage : volgende \realpageno, voor interne doeleinden
-% \lastsubpage : laatste \realpageno, voor interne doeleinden
-% \nofsubpages : laatste subpage (in berekeningen)
-% \subpageno : huidige subpage (in berekeningen)
-
-\countdef\subpageno = 2 \subpageno = 0 % !!
-
-\newif\ifsubpaging
-\newif\ifshowingsubpage
-
-\definieernummer
- [\s!subpage]
-
-\stelnummerin
- [\s!subpage]
- [\c!wijze=\@@snwijze]
-
-\def\resetsubpaginanummer%
- {\resetnummer[\s!subpage]%
- \global\subpageno=\ruwenummer[\s!subpage]}
-
-\def\dostelsubpaginanummerin[#1]%
- {\doifelse{#1}{\v!reset}
- {\resetnummer[\s!subpage]}
- {\getparameters[\??sn][#1]%
- \processaction
- [\@@snstatus]
- [ \v!stop=>\ifsubpaging
- \else
- \subpagingfalse
- \fi
- \showingsubpagefalse,
- \v!start=>\subpagingtrue
- \showingsubpagetrue,
- \v!geen=>\subpagingtrue
- \showingsubpagefalse]}}
-
-\def\aantalsubpaginas%
- {\ifshowingsubpage
- \nofsubpages
- \else
- 0%
- \fi}
-
-\def\subpaginanummer%
- {\ifshowingsubpage
- \the\subpageno
- \else
- 0%
- \fi}
-
-\def\stelsubpaginanummerin%
- {\dosingleargument\dostelsubpaginanummerin}
-
-\def\newnofsubpages {0}
-\def\nofsubpages {0}
-\def\firstsubpage {1}
-\def\prevsubpage {1}
-\def\nextsubpage {1}
-\def\lastsubpage {1}
-
-\def\nextpage {1}
-\def\prevpage {1}
-
-\definetwopasslist{\s!subpage}
-
-\def\savenofsubpages%
- {\ifsubpaging
- \showmessage{\m!layouts}{6}{\newnofsubpages,\the\subpageno}%
- \immediate\writeutilitycommand%
- {\twopassentry%
- {\s!subpage}%
- {\newnofsubpages}%
- {\the\subpageno}}%
- \fi}
-
-\def\setsubpagenumbers%
- {\iftwopassdatafound
- \bgroup
- \xdef\nofsubpages{\twopassdata}%
- \xdef\firstsubpage{\realfolio}%
- \advance\realpageno by \nofsubpages
- \advance\realpageno by -1
- \xdef\lastsubpage{\realfolio}%
- \egroup
- \else
- \xdef\nofsubpages{0}%
- \fi}
-
-\def\gotonextsubpage%
- {\global\let\checksubpages=\relax
- \ifsubpaging
- \edef\oldsubpage{\the\subpageno}%
- \verhoognummer[\s!subpage]%
- \global\subpageno=\ruwenummer[\s!subpage]\relax
- \ifnum\subpageno=1
- \gettwopassdata{\s!subpage}%
- \setsubpagenumbers
- \ifnum\oldsubpage>0
- \showmessage{\m!layouts}{6}{\newnofsubpages,\oldsubpage}%
- \edef\next%
- {\writeutilitycommand%
- {\twopassentry%
- {\s!subpage}%
- {\newnofsubpages}%
- {\oldsubpage}}}%
- \next
- \fi
- \doglobal\increment\newnofsubpages\relax
- \fi
- \setdummypagereference{\v!eerste\v!sub\v!pagina}\firstsubpage
- \setdummypagereference{\v!laatste\v!sub\v!pagina}\lastsubpage
- \bgroup
- \ifnum\realpageno=\firstsubpage\relax
- \global\let\prevsubpage=\firstsubpage
- \else
- \xdef\prevsubpage{\realfolio}%
- \doglobal\decrement\prevsubpage
- \fi
- \setdummypagereference{\v!vorige\v!sub\v!pagina}\prevsubpage
- \ifnum\realpageno=\lastsubpage\relax
- \global\let\nextsubpage=\lastsubpage
- \else
- \xdef\nextsubpage{\realfolio}%
- \doglobal\increment\nextsubpage
- \fi
- \setdummypagereference{\v!volgende\v!sub\v!pagina}\nextsubpage
- \egroup
- \fi}
-
-\def\checksubpages%
- {\getfromtwopassdata{\s!subpage}{1}%
- \setsubpagenumbers
- \global\let\checksubpages=\relax}
-
-% Omdat \gotonextrealpage gebruik maakt van de hulpfile,
-% moet het initialiseren van \realpageno plaatsvinden in
-% een later stadium, namelijk zodra referenties worden
-% gebruikt (anders gaat het mis op nog niet gedefinieerde
-% lijstcommando's e.d.). De eerst aanroep vindt dan ook
-% plaats vlak nadat de hulpfile voor de eerste maal is
-% ingelezen.
-
-% we don't want conflicts when \pageno is used by other
-% packages, like CWEB, so we redefine \pageno
-
-\countdef\realpageno = 0 \realpageno = 1
-\countdef\userpageno = 1 \userpageno = 1
-\newcount\pageno \pageno = 1
-
-\def\setuserpageno#1%
- {\global\userpageno=#1\relax
- \global\pageno=\userpageno}
-
-\def\realfolio {\the\realpageno}
-\def\folio {\the\userpageno}
-\def\firstpage {1}
-\def\lastpage {1}
-\def\currentpage {\the\realpageno}
-
-\newif\ifrealpagechecked \realpagecheckedfalse
-
-\def\setdummypagereference#1#2%
- {\setreference{#1}{}{#2}{\r!page}}
-
-\def\gotonextrealpage%
- {\global\advance\realpageno by 1
- \ifnum\realpageno>\lastpage
- \gdef\lastpage{\realfolio}%
- \fi
- \setdummypagereference{\v!eerste\v!pagina}\firstpage
- \setdummypagereference{\v!laatste\v!pagina}\lastpage
- \bgroup
- \ifnum\realpageno>1
- \advance\realpageno by -1
- \xdef\prevpage{\realfolio}%
- \else
- \global\let\prevpage=\firstpage
- \fi
- \setdummypagereference{\v!vorige\v!pagina}\realfolio
- \egroup
- \bgroup
- \ifnum\realpageno<\lastpage\relax
- \advance\realpageno by 1
- \xdef\nextpage{\realfolio}%
- \else
- \global\let\nextpage=\lastpage
- \fi
- \setdummypagereference{\v!volgende\v!pagina}\realfolio
- \egroup}
-
-\def\checkrealpage%
- {\ifrealpagechecked\else
- \global\realpageno=0
- \gotonextrealpage
- \global\realpagecheckedtrue
- \fi}
-
-\def\realnumberofpages#1% meteen laden, voor andere files (met refs)
- {\gdef\lastpage{#1}%
- \global\let\realnumberofpages=\gobbleoneargument}
-
-\def\savenofpages%
- {\advance\realpageno by -1
- \immediate\writeutilitycommand{\realnumberofpages{\realfolio}}}%
-
-\def\totaalaantalpaginas%
- {\lastpage}
-
-\def\myshipout#1%
- {\voorpagina
- \dontshowcomposition
- \dosetuppaper{\papierformaat}{\the\papierbreedte}{\the\papierhoogte}%
-\dolocationstartup
- \shipout\vbox
- {\forgetall % needed !
- \offinterlineskip
- \vskip\kopoffset\vskip-1in
- \hskip\rugoffset\hskip-1in
- \mindermeldingen
- \thisisrealpage{\realfolio}#1}%
- \gotonextrealpage
- \napagina}
-
-\def\noshipout#1%
- {\setbox0=\hbox{\dopagebody{#1}}%
- \deadcycles=0%
- \gotonextrealpage}
-
-\def\goleftonpage%
- {\hskip-\linkermargeafstand
- \hskip-\linkermargebreedte
- \hskip-\paginascheiding
- \hskip-\linkerrandafstand
- \hskip-\linkerrandbreedte}
-
-\def\doswapmargins%
- {\let\doswapmargins=\relax % to prevent local swapping
- \swapmacros\@@lylinkermargeafstand\@@lyrechtermargeafstand
- \swapmacros\@@lylinkerrandafstand\@@lyrechterrandafstand
- \swapdimens\linkermargebreedte\rechtermargebreedte
- \swapdimens\linkerrandbreedte\rechterrandbreedte}
-
-\def\doifmarginswapelse#1#2%
- {\doifbothsides#1\orsideone#1\orsidetwo#2\od}
-
-\def\swapmargins%
- {\doifmarginswapelse{}{\doswapmargins}}
-
-% Output routines
-%
-% \dopagecontents#1 : tekst, floats en footnotes
-% \dopagebody#1 : hoofd, \pagecontents, voet
-% \dooutput : outputroutine
-%
-% \ifinpagebody
-
-\def\doejectpage#1%
- {\bgroup % de \ifdim is nodig omdat
- \par % anders een eventuele
- \ifdim\pagetotal>\pagegoal\else % laatste regel boven de
- %\normalvfill % baseline te staan terwijl
- \normalvfil % baseline te staan terwijl
- \fi % de vorige bladzijden op
- #1% % de baseline staan
- \egroup}
-
-% ^^ NOG NETTER MAKEN, TEGELIJK MET MULTI COLUMNS EN ACHTERGRONDEN!
-
-\def\ejectpage%
- {\doejectpage\eject}
-
-\def\superejectpage%
- {\doejectpage\supereject}
-
-\def\ejectinsert%
- {\flushfootnotes
- \bgroup
- \noftopfloats=\!!thousand
- \doflushfloats
- \egroup}
-
-% 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
-
-\doifundefined{pushcolor} {\def\pushcolor{}}
-\doifundefined{popcolor} {\def\popcolor{}}
-\doifundefined{startcolorpage} {\def\startcolorpage{}}
-\doifundefined{stopcolorpage} {\def\stopcolorpage{}}
-
-\def\dopagecontents#1%
- {\dotopinsertions
- \bgroup
- \forgetall
- \boxmaxdepth=\maxdepth
- \dimen0=\dp255 % #1 komt dus nog te vervallen
- \bgroup
- #1\relax
- \pushcolor
- \dobotinsertions
- \egroup
- \ifr@ggedbottom
- \kern-\dimen0
- \vfil
- \fi
- \ifb@selinebottom
- \kern-\dimen0
- \kern\maxdepth
- \fi
- \egroup
- \placefootnotes}
-
-\def\dodummypageskip#1%
- {\getvalue{\s!dummy\c!commando#1}}
-
-\setvalue{\s!dummy\c!commando\v!links}%
- {\hskip\linkerrandbreedte}
-
-\setvalue{\s!dummy\c!commando\v!rechts}%
- {\hskip\rechterrandbreedte}
-
-\setvalue{\s!dummy\c!commando\v!boven}%
- {} % \vbox to \bovenhoogte{\vss}}
-
-\setvalue{\s!dummy\c!commando\v!onder}%
- {} % \vbox to \onderhoogte{\vss}}
-
-\def\plaatslinkerrandblok {\dodummypageskip\v!links}
-\def\plaatsrechterrandblok {\dodummypageskip\v!rechts}
-
-\newtoks\afterpage \newtoks\aftereverypage
-\newtoks\beforepage \newtoks\beforeeverypage
-
-\def\plaatstekstblok#1%
- {\hbox to \zetbreedte
- {\vbox to \teksthoogte
- {\offinterlineskip
- \boxmaxdepth\maxdepth
- \dopagecontents{#1}}%
- \hss}}
-
-\def\getmainbox#1%
- {\setbox0=\vbox
- {\offinterlineskip % na \paginaletter !
- \calculatereducedvsizes
- \calculatehsizes
- \swapmargins
- \vskip\hoofdhoogte
- \vskip\hoofdafstand
- \hbox
- {\bgroup
- \swapmargins
- \goleftonpage
- \plaatslinkerrandblok
- \hskip\linkerrandafstand
- \showpageseparation
- \plaatslinkermargeblok
- \hskip\linkermargeafstand
- \egroup
- \plaatstekstblok{#1}%
- \bgroup
- \hskip\rechtermargeafstand
- \plaatstestinfo
- \plaatsrechtermargeblok
- \showpageseparation
- \hskip\rechterrandafstand
- \plaatsrechterrandblok
- \egroup}%
- \vfill}
- \smashbox0
- \box0}
-
-%\def\setpagedisplacement%
-% {\global\voffset=\kopoffset
-% \global\hoffset=\rugoffset
-% \global\advance\voffset by -1in
-% \global\advance\hoffset by -1in}
-
-\def\centerpagebox#1%
- {\processaction
- [\@@lyplaats]
- [ \v!midden=>\setbox#1=\vbox to \printpapierhoogte
- {\vss
- \hbox to \printpapierbreedte{\hss\box#1\hss}%
- \vss},
- \v!dubbelzijdig=>\setbox#1=\vbox
- {\doifbothsides
- \orsideone
- \orsidetwo
- \hskip\printpapierbreedte
- \hskip-\papierbreedte
- \hskip-2\rugoffset
- \od
- \box#1}]}
-
-\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}
-
-\def\addpagecutmarks#1%
- {\doif{\@@lymarkering}{\v!aan}
- {\makecutbox#1}}
-
-\def\buildpagebody#1%
- {%\setpagedisplacement
- \vbox
- {\forgetall
- \mindermeldingen
- \setbox0=\vbox
- {%\paginaletter
- \doconvertfont{\@@lyletter}{}%
- \offinterlineskip
- \getbackgroundbox
- \getlogobox
- \gettextboxes
- \getgridbox
- \getmainbox{#1}}%
- \buildpagebox0
- \addpagecutmarks0
- \addpagebackground0
- \centerpagebox0
- \box0}}
-
-\def\toongrid%
- {\let\getgridbox=\dogetgridbox}
-
-\let\getgridbox=\relax
-
-\def\dogetgridbox%
- {\bgroup
- \setbox0=\vbox
- {\vskip\hoofdhoogte
- \vskip\hoofdafstand
- \setbox0=\vbox to \teksthoogte
- {\forgetall
- \scratchdimen\teksthoogte
- \divide\scratchdimen by \lineheight
- \offinterlineskip
- \vskip\topskip
- \vskip-\ht\strutbox
- \dorecurse{\number\scratchdimen}
- {\strut\vrule
- \!!height \testrulewidth
- \!!depth \testrulewidth
- \!!width \tekstbreedte
- \par}
- \vfill}%
- \setbox2=\hbox to \tekstbreedte
- {\leaders
- \hbox
- {\vrule
- \!!height \teksthoogte
- \!!width 2\testrulewidth
- \kern1em}
- \hfill}%
- \wd0=\!!zeropoint
- \startoverlay
- \box0 \box2
- \stopoverlay}%
- \smashbox0
- \box0
- \egroup}
-
-\def\dopagebody#1%
- {\getallmarks
- \restoreglobalcorps
- \startcolorpage
- \gotonextsubpage
- \dontshowboxes
- \naastpagina
- \checkreferences
- \checkmargeblokken
- \dotoks\beforeeverypage
- \flushtoks\beforepage
- \inpagebodytrue
- \buildpagebody{#1}%
- \flushtoks\afterpage
- \dotoks\aftereverypage
- \resetpagina
- \updatelistreferences
- \resetlayoutregels % mischien in shipout
- \stopcolorpage}
-
-\def\beforefinaloutput%
- {}
-
-\def\afterfinaloutput%
- {\forgetall
- \vskip\!!zeropoint\relax
- \ifvoid255
- \else
- \unvbox255
- \penalty\outputpenalty
- \fi
- \ifnum\outputpenalty>-\@MM\relax
- \else
- \dosupereject
- \fi
- \dosetbothinserts
- \setvsize} % this is needed for interacting components, like floats and multicolumns
-
-\def\setpagecounters%
- {\setuserpageno{\ruwenummer[\s!page]}%
- \doifelse{\@@snstatus}{\v!stop}
- {\global\subpageno=0}
- {\global\subpageno=\ruwenummer[\s!subpage]}}
-
-\def\dofinaloutput#1%
- {\beforefinaloutput
- \myshipout{\hbox{\dopagebody{#1}\setpagecounters}}%
- \afterfinaloutput
- \douitstellen
- \popcolor} % ... and here ...
-
-\def\donofinaloutput#1%
- {\beforefinaloutput
- \setpagecounters
- \message{[-\the\realpageno]}%
- \noshipout{#1}%
- \douitstellen
- \afterfinaloutput
- \popcolor} % ... and here
-
-\let\checkpageversion=\relax
-
-\def\finaloutput#1%
- {\checkpageversion
- \ifverwerken
- \ifgeselecteerd
- \dofinaloutput{#1}%
- \else
- \donofinaloutput{#1}%
- \fi
- \else
- \ifgeselecteerd
- \donofinaloutput{#1}%
- \else
- \dofinaloutput{#1}%
- \fi
- \fi
- \resetselectiepagina
- \verhoogpaginanummer
- \checkpagedimensions
- \ifnum\outputpenalty>-\@MM\relax
- \else
- \dosupereject
- \fi}
-
-\def\dooutput%
- {\finaloutput{\unvbox255}}
-
-\output={\dooutput}
-
-%I n=Beeldmerken
-%I c=\definieerbeeldmerk,\plaatsbeeldmerken
-%I
-%I In het hoofd of in de voet kan een logo worden gezet met
-%I het commando:
-%I
-%I \plaatsbeeldmerken[naam]
-%I
-%I Plaatsen kan dan ook pas nadat een beeldmerk is gedefinieerd:
-%I
-%I \definieerbeeldmerk[naam][lokatie][plaats][commando=,status=]
-%I
-%I waarbij status 'start' of 'stop' kan zijn. In geval van
-%I 'start' wordt op elke bladzijde het logo geplaatst.
-%I
-%I Mogelijke lokaties zijn 'boven', 'hoofd', 'voet' en 'onder' en
-%I als plaats kan worden opgegeven 'linkerrand', 'linkermarge',
-%I 'links', 'midden', 'rechts', 'rechtermarge' en 'rechterrand'.
-%I
-%I Logo's worden boven, onder of in de hoofd- of voetregel gezet,
-%I zo hoog of laag mogelijk. Verdere positionering zal dus in
-%I het commando moeten plaatsvinden!
-
-\newbox\leftlogos
-\newbox\rightlogos
-
-\newif\ifnewlogos
-
-% \logostatus
-%
-% 0 = niet plaatsen > 0
-% 1 = direkt plaatsen > 1
-% 2 = berekenen en plaatsen > 1
-% 3 = een pagina berekenen en plaatsen > 2
-
-\def\logostatus{0}
-
-\def\gedefinieerdebeeldmerken{}
-\def\teplaatsenbeeldmerken{}
-
-\def\dodefinieerbeeldmerk[#1][#2][#3][#4]%
- {\addtocommalist{#1}\gedefinieerdebeeldmerken
- \setvalue{\??lo#2#3}{#1}%
- \getparameters[\??lo#2#3][#4]%
- \gdef\logostatus{2}}
-
-\def\definieerbeeldmerk%
- {\doquadrupleargument\dodefinieerbeeldmerk}
-
-\def\complexplaatsbeeldmerken[#1]%
- {\xdef\teplaatsenbeeldmerken{#1}%
- \gdef\logostatus{3}}
-
-\def\simpleplaatsbeeldmerken%
- {\global\let\teplaatsenbeeldmerken=\gedefinieerdebeeldmerken
- \gdef\logostatus{3}}
-
-\definecomplexorsimple\plaatsbeeldmerken
-
-\def\doplaatsbeeldmerken#1#2%
- {\bgroup
- \setbox0=\vbox
- {\hbox
- {\ifnum\logostatus=3
- \def\docommando##1%
- {\ExpandBothAfter\doifinset{\getvalue{\??lo#1##1}}{\teplaatsenbeeldmerken}
- {#2{\hbox{\getvalue{\??lo#1##1\c!commando}}}}}%
- \else
- \def\docommando##1%
- {\doifvalue{\??lo#1##1\c!status}{\v!start}
- {#2{\hbox{\getvalue{\??lo#1##1\c!commando}}}}}%
- \fi
- \def\dodocommando##1##2##3##4##5##6%
- {\hskip\linkerrandafstand
- \hskip\pageseparation
- \hbox to \linkermargebreedte{\docommando{##2}\hss}%
- \hskip\linkermargeafstand
- \hbox to \zetbreedte{\docommando{##3}\hss\docommando{##4}}%
- \hskip\rechtermargeafstand
- \hbox to \rechtermargebreedte{\hss\docommando{##5}}%
- \hskip\pageseparation
- \hskip\rechterrandafstand
- \hbox to \rechterrandbreedte{\hss\docommando{##6}}}%
- \normalbaselines
- \hsmash
- {\hbox to \zetbreedte{\hss\docommando\c!midden\hss}}%
- \hsmash
- {\doifbothsides
- \hskip-\rugwit
- \orsideone
- \hskip-\rugwit
- \orsidetwo
- \hskip-\papierbreedte
- \hskip+\rugwit
- \hskip+\zetbreedte
- \od
- \hbox to \papierbreedte{\docommando\v!pagina\hss}}%
- \swapmargins
- \goleftonpage
- \doifbothsidesoverruled
- \dodocommando
- {\v!linkerrand}{\v!linkermarge}{\v!links}
- {\v!rechts}{\v!rechtermarge}{\v!rechterrand}%
- \orsideone
- \dodocommando
- {\v!linkerrand}{\v!linkermarge}{\v!links}
- {\v!rechts}{\v!rechtermarge}{\v!rechterrand}%
- \orsidetwo
- \dodocommando
- {\v!rechterrand}{\v!rechtermarge}{\v!rechts}
- {\v!links}{\v!linkermarge}{\v!linkerrand}%
- \od}}%
- \getboxheight\dimen0\of\box0\relax
- \vskip-\dimen0
- \box0
- \egroup}
-
-\def\setlogobox#1#2%
- {\global\setbox#1=\vbox to \papierhoogte
- {\offinterlineskip
- \mindermeldingen
- \calculatereducedvsizes
- #2\relax
- \vskip-\kopwit
- \doplaatsbeeldmerken\v!boven\vsmash
- \vskip\kopwit
- \doplaatsbeeldmerken\v!hoofd\vsmash
- \vskip\hoofdhoogte
- \vskip\hoofdafstand
- \doplaatsbeeldmerken\v!tekst\vsmash % evt \vbox
- \vskip\teksthoogte
- \vskip\voetafstand
- \vskip\voethoogte
- \doplaatsbeeldmerken\v!voet\vbox
- \vfilll
- \doplaatsbeeldmerken\v!onder\vbox%
- \vskip\kopwit}
- \smashbox#1}
-
-\def\setlogoboxes%
- {\showmessage{\m!layouts}{7}{}%
- \setlogobox\leftlogos\relax
- \ifdubbelzijdig
- \setlogobox\rightlogos\doswapmargins
- \fi}
-
-\def\getlogobox%
- {\ifnum\logostatus>0
- \ifnum\logostatus=3
- \setlogoboxes
- \gdef\logostatus{2}%
- \else\ifnum\logostatus=2
- \setlogoboxes
- \gdef\logostatus{1}%
- \else\ifnewlogos
- \gdef\logostatus{2}%
- \setlogoboxes
- \gdef\logostatus{1}%
- \global\newlogosfalse
- \fi\fi\fi
- \doifmarginswapelse
- {\copy\leftlogos}
- {\copy\rightlogos}%
- \fi}
-
-%I n=Spatiering
-%I c=\stelspatieringin
-%I c=\omlaag,\opelkaar,\spatie,\vastespaties
-%I
-%I De ruimte na interpunctie worden ingesteld met:
-%I
-%I \stelspatieringin[instelling]
-%I
-%I waarbij de volgende instellingen mogelijk zijn:
-%I
-%I ruim flexibele ruimte na interpunctie
-%I opelkaar een spatie na interpunctie
-%I
-%I Bij een smalle layout levert de instelling 'ruim' minder
-%I in de marge uitstekende (niet af te breken) woorden op.
-%I
-%P
-%I Andere commando's zijn:
-%I
-%I \omlaag[afstand] een vaste afstand omlaag
-%I \opelkaar ruimte tussen regels weghalen
-%I
-%I \spatie een (harde) spatie
-%I \geenspatie geen vorige/volgende spatie
-%I
-%I \hfil \hfill \hfilll opvullen met horizontaal wit
-%I \vfil \vfill \vfilll opvullen met vertikaal wit
-%I
-%I \strut karakter-box zonder breedte
-%I
-%I \vastespaties geeft ~ de breedte van een cijfer
-
-% \frenchspacing leidt soms tot afbreken tussen -, vandaar
-% de variant \newfrenchspacing.
-
-\def\dofrenchspacing#1%
- {\sfcode`\.#1 \sfcode`\,#1\relax
- \sfcode`\?#1 \sfcode`\!#1\relax
- \sfcode`\:#1 \sfcode`\;#1\relax}
-
-\def\frenchspacing%
- {\dofrenchspacing{1000}} % \@m
-
-\def\newfrenchspacing%
- {\dofrenchspacing{1050}} % \@ml
-
-\def\dostelspatieringin[#1]%
- {\processaction
- [#1]
- [\v!opelkaar=>\newfrenchspacing,
- \v!ruim=>\nonfrenchspacing]}
-
-\def\stelspatieringin%
- {\dosingleargument\dostelspatieringin}
-
-\def\space%
- { }
-
-\def\spatie% kan tzt vervallen, eerst overal in zetten
- { }
-
-\def\hardespatie%
- {~}
-
-\bgroup
-\catcode`\~=\@@active % eigenlijk is ~ al actief
-\gdef\fixedspaces% % in Plain \TeX, maar we weten
- {\catcode`\~=\@@active % nooit wat er inmiddels is
- \def~{\hskip.5em}} % gebeurd, vandaar.
-\egroup
-
-\def\nospace%
- {\unskip\ignorespaces}
-
-\def\geenspatie% % kan tzt vervallen, eerst overal in zetten
- {\unskip\ignorespaces}
-
-\def\geenspaties{\geenspaties} % kan weg
-
-\def\opelkaar%
- {\nointerlineskip}
-
-\def\omlaag[#1]%
- {\nointerlineskip%
- \vskip#1 }
-
-%I n=Witruimte
-%I c=\stelwitruimtein,\witruimte,\geenwitruimte
-%I c=\startopelkaar,\startvanelkaar
-%I c=\startregelcorrectie,\corrigeerwitruimte
-%I
-%I De afstand tussen paragrafen is in te stellen met:
-%I
-%I \stelwitruimtein[maat]
-%I
-%I In te vullen op de plaats van 'maat' (12pt, 1cm) of een
-%I van de aanduidingen klein, middel of groot. Als niets
-%I wordt meegegeven, dus alleen \stelwitruimtein, dan
-%I wordt de ingestelde witruimte aangepast aan het formaat
-%I letter.
-%I
-%I Voor elke lege regel in de ASCII-file voegt TEX de
-%I ingestelde witruimte tussen.
-%I
-%I Het commando \witruimte dwingt witruimte af en het
-%I commando \geenwitruimte maakt witruimte ongedaan.
-%I
-%I Behalve met de hier beschreven witruimte-commando's is de
-%I witruimte tussen paragrafen te be‹nvloeden met behulp van
-%I de elders beschreven blanko-commando's.
-%P
-%I Een stuk tekst kan zonder witruimte worden gezet door het
-%I tussen de volgende commando's op te nemen:
-%I
-%I \startopelkaar
-%I \stopopelkaar
-%I
-%I Waarbij een optioneel argument [blanko] mogelijk is. De
-%I tegenhanger hiervan is:
-%I
-%I \startvanelkaar
-%I \stopvanelkaar
-%P
-%I TeX handelt de interlinie van een (omlijnde) box of een
-%I rule anders af dan van een regel tekst. In dergelijke
-%I gevallen kan de volgende constructie worden gebruikt:
-%I
-%I \startregelcorrectie
-%I \omlijnd{tekst}
-%I \stopregelcorrectie
-
-\newskip\tussenwit
-\tussenwit=\!!zeropoint
-
-\def\blankokleinmaat%
- {\smallskipamount}
-
-\def\blankomiddelmaat%
- {\medskipamount}
-
-\def\blankogrootmaat%
- {\bigskipamount}
-
-\def\currentwitruimte%
- {\!!zeropoint}
-
-\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]}
-
-\def\dostelwitruimtein[#1]%
- {\expanded{\dodostelwitruimtein[#1]}}
-
-\def\stelwitruimtein%
- {\dosingleempty\dostelwitruimtein}
-
-\def\geenwitruimte%
- {\ifdim\parskip>\!!zeropoint\relax
- \ifdim\lastskip=-\parskip
- \else
- \vskip-\parskip
- \fi
- \fi}
-
-% deze variant is nodig binnen \startopelkaar
-% steeds testen:
-%
-% \hoofdstuk{..}
-% \plaatslijst[..]
-% \hoofdstuk{..}
-% \input tufte
-%
-% met/zonder witruimte
-
-\def\witruimte%
- {\par
- \ifdim\parskip>\!!zeropoint\relax
- %\ifdim\lastskip>\parskip \else
- % \removelastskip interferes with blanko blokkeer en klein
- \vskip\parskip
- %\fi
- \fi}
-
-
-\def\nonoblanko[#1]%
- {\par}
-
-\def\noblanko%
- {\dosingleempty\nonoblanko}
-
-% De onderstaande macro handelt ook de situatie dat er geen
-% tekst tussen \start ... \stop is geplaatst. Daartoe wordt de
-% laatste skip over de lege tekst heen gehaald. Dit komt goed
-% van pas bij het plaatsen van (mogelijk lege) lijsten.
-
-\newif\ifopelkaar
-
-\def\noparskipsignal {0.00001pt}
-\def\lastdoneparskip {0pt}
-
-\def\dostartopelkaar[#1]%
- {\par
- \ifvmode
- \edef\lastdoneparskip{\the\lastskip}%
- \ifdim\prevdepth=-1000pt % toegevoegd omdat binnen
- \else % een vbox een extra skip
- \witruimte % ongewenst is; dit kan
- \vskip\noparskipsignal % waarschijnlijk ook in
- \fi % blanko blokkeer
- \bgroup
- \doifelse{#1}{\v!blanko}
- {\opelkaarfalse}
- {\opelkaartrue}%
- \blanko[\v!blokkeer]%
- \stelwitruimtein[\v!geen]
- \fi}
-
-\def\startopelkaar%
- {\dosingleempty\dostartopelkaar}
-
-\def\stopopelkaar%
- {\par
-\ifvmode
- \egroup
- \ifdim\lastskip=\noparskipsignal\relax
- \removelastskip
- \geenwitruimte
- \vskip-\lastdoneparskip
- \vskip+\lastdoneparskip
- \fi
-\fi}
-
-\def\startvanelkaar%
- {\blanko
- \leavevmode
- \bgroup}
-
-\def\stopvanelkaar%
- {\egroup
- \blanko}
-
-% De onderstaande macro's moeten nog eens nader worden uitgewerkt.
-% Ze spelen een rol bij de spatiering rond omkaderde teksten
-% en/of boxen zonder diepte.
-
-\def\toonregelcorrectie {\showbaselinecorrection}
-\def\regelcorrectie {\baselinecorrection}
-%\def\startregelcorrectie {\startbaselinecorrection}
-%\def\stopregelcorrectie {\stopbaselinecorrection}
-
-\definecomplexorsimpleempty\startregelcorrectie
-
-% \prevdepth crosses pageboundaries!
-
-\let\dorondomregelcorrectie=\relax
-
-\def\complexstartregelcorrectie[#1]%
- {\bgroup
- \processaction
- [#1]
- [ \v!blanko=>\let\dorondomregelcorrectie=\blanko,
- \s!unknown=>{\def\dorondomregelcorrectie{\blanko[#1]}},
- \s!default=>\let\dorondomregelcorrectie=\relax]%
- \dorondomregelcorrectie
- \startbaselinecorrection}
-
-\def\stopregelcorrectie%
- {\stopbaselinecorrection
- \dorondomregelcorrectie
- \egroup}
-
-\def\corrigeerwitruimte%
- {\dowithnextbox
- {\startbaselinecorrection
- \box\nextbox
- \stopbaselinecorrection}%
- \vbox}
-
-%I n=Regelafstand
-%I c=\stelinterliniein
-%I
-%I De regelafstand is in te stellen met het commando:
-%I
-%I \stelinterliniein[factor]
-%I
-%I Invulmogelijkheden voor 'factor' zijn: klein (1.00),
-%I middel (1.25), groot (1.50) of een getal. OOk kan
-%I aan of uit worden opgegeven.
-%I
-%I Als het commando zonder [factor] wordt gegeven, dan
-%I worden de interlinie aangepast aan het formaat van het
-%I actuele letterformaat. Een aan het formaat aangepaste
-%I interlinie kan ook worden ingesteld met:
-%I
-%I \stelinterliniein[reset,factor]
-%I
-%I In z'n eenvoudigste vorm \stelinterliniein wordt de
-%I interlinie aangepast aan het formaat letter.
-
-\def\complexstelinterliniein[#1]%
- {\processallactionsinset % \regelwit = dummy !
- [#1]
- [ \v!aan=>\oninterlineskip,
- \v!uit=>\offinterlineskip,
- \v!reset=>\setfontparameters,
- \s!unknown=>\assignvalue{#1}{\regelwit}{1.00}{1.25}{1.50}%
- \spacing{\regelwit}]}
-
-\def\simplestelinterliniein%
- {\setfontparameters}
-
-\definecomplexorsimple\stelinterliniein
-
-%I n=Blanko
-%I c=\blanko,\geenblanko,\stelblankoin
-%I c=\startregelcorrectie
-%I
-%I Behalve met de hier beschreven blanko-commando's is de
-%I witruimte tussen paragrafen te be‹nvloeden met behulp van
-%I de elders beschreven witruimte-commando's.
-%I
-%I Het commando
-%I
-%I \blanko[sprong]
-%I
-%I voegt witruimte tussen paragrafen toe.
-%I
-%I Mogelijke instellingen voor 'sprong' zijn: terug, klein,
-%I middel, groot. Per blanko is elke combinatie van
-%I instellingen toegestaan. Ook een veelvoud van een instelling
-%I is mogelijk. Enkele voorbeelden:
-%I
-%I \blanko[terug,3*groot]
-%I \blanko[klein,middel]
-%P
-%I Naast de genoemde instellingen zijn enkele bijzondere
-%I instellingen mogelijk:
-%I
-%I wit tussenvoegen van \witruimte
-%I geenwit terugspringen van \witruimte
-%I blokkeer overslaan van de volgende \blanko
-%I reset opheffen van \blanko[blokkeer]
-%I forceer afdwingen van een blanko (bovenaan)
-%I
-%I Ook deze instellingen zijn in combinatie met andere te
-%I gebruiken. Een voorbeeld: \blanko[forceer,wit,2*middel].
-%I
-%I Het commando \blanko (zonder instelling) is gelijk aan
-%I \blanko[groot].
-%I
-%I Het commando \geenblanko maakt het commando \blanko
-%I ongedaan.
-%P
-%I Met het commando's
-%I
-%I \stelblankoin[maat]
-%I
-%I is het mogelijk de spronggrootte in te stellen. De maat
-%I kan worden opgegeven in getallen en eenheden (12pt, 1cm).
-%I De standaard instellingen krijgt met met 'normaal',
-%I regelafstanden met 'regel'.
-%I
-%I Het commando \stelblankoin (zonder argument) past de sprong
-%I aan het formaat letter aan.
-%P
-%I Rond omlijnde tekst, of algemener: rond lijnen, wordt
-%I geen witruimte gegenereerd. Wil men dit wel, dan dient men
-%I de betreffende tekst te omringen met:
-%I
-%I \startregelcorrectie
-%I \stopregelcorrectie
-
-% In earlier versions \type{\bigskipamount} was
-% \type{\ht\strutbox} and the stretch was plus or minus
-% \type{.4\dp\strutbox}. Don't ask me why. The most recent
-% implementation is based on a user supplied distance, which
-% is by default \type{.75\normalskipamount} where
-% \type{\normalskipamount} equals the current baseline
-% distance.
-
-\newif\ifblankoreset \blankoresetfalse
-\newif\ifblankoblokkeer \blankoblokkeerfalse
-\newif\ifblankogeenwit \blankogeenwitfalse
-\newif\ifdoeblanko \doeblankofalse
-\newif\ifblankoflexibel \blankoflexibeltrue
-\newif\ifblankobuiten
-
-\newskip\blankoskip \blankoskip=\bigskipamount
-\newskip\blankoskipamount
-
-\def\skipfactor {.75}
-\def\skipgluefactor {.25}
-
-\def\normalskipamount%
- {\openlineheight
- \ifblankoflexibel
- \!!plus\skipgluefactor\openlineheight
- \!!minus\skipgluefactor\openlineheight
- \fi
- \relax}
-
-\def\regelafstand{\normalskipamount}
-
-\def\deblankoskip{\skipfactor\regelafstand}
-
-\def\laatsteblankoskip%
- {\blankoskip}
-
-\def\geenblanko%
- {\removelastskip}
-
-\def\dosingleblanko#1%
- {\assigndimension{#1}{\blankoskipamount}%
- {\smallskipamount}{\medskipamount}{\bigskipamount}%
- \global\advance\blankoskip by \blankoskipamount}
-
-\def\doblanko#1%
- {\processallactionsinset
- [#1]
- [ \v!groot=>\dosingleblanko\v!groot, % happens often
- \v!buiten=>\ifvmode\ifinner\blankobuitentrue\fi\fi,
- \v!reset=>\global\blankoresettrue,
- \v!terug=>\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=>\endgraf\hrule \!!height \!!zeropoint\relax,
- \v!regel=>\global\advance\blankoskip by \lineheight,
- \s!unknown=>{\herhaalmetcommando[#1]\dosingleblanko}]}
-
-\def\oldprevdepth{\prevdepth}%
-\def\newprevdepth{-1001pt}
-
-\def\mindimen{0.00002pt}
-
-\def\docomplexdoblanko[#1]%
- {\global\blankoresetfalse
- \global\blankoblokkeerfalse
- \global\blankogeenwitfalse
- \global\blankoskip=\!!zeropoint\relax
- \blankobuitenfalse
- \processcommalist[#1]\doblanko
- \ifblankobuiten
- \else
- \par
- \ifvmode
- \ifblankoblokkeer
- \global\doeblankofalse
- \edef\oldprevdepth{\the\prevdepth}%
- \prevdepth=\newprevdepth
- \else
- \global\doeblankotrue
- \fi
- \ifblankoreset
- \global\doeblankotrue
- \ifdim\prevdepth=\newprevdepth
- \prevdepth=\oldprevdepth
- \fi
- \fi
- \ifdoeblanko
- \ifdim\lastskip<\blankoskip\relax
- % else when \blanko[2*groot] + \blanko[3*groot] with parskip
- % equaling 1*groot, gives a groot=\parskip so adding a small
- % value makes it distinguishable; can also be done at parskip
- % setting time (better)
- \global\advance\blankoskip by \mindimen\relax % = skip
- % test this on 2* + 3* and parskip groot
- \ifblankogeenwit
- \global\advance\blankoskip by -\parskip
- \else
- \ifdim\lastskip=\parskip
- \else % force this due to previous comment
- \ifdim\parskip>\!!zeropoint\relax
- \ifdim\blankoskip<\parskip\relax
- \global\blankoskip=\!!zeropoint
- \else
- \global\advance\blankoskip by -\parskip
- \fi
- \fi
- \fi
- \fi
- \ifdim\prevdepth=\newprevdepth
- \else
- \removelastskip
- \vskip\blankoskip
- \fi
- \fi
- \fi
- \fi
- \fi}
-
-\def\complexdoblanko[#1]%
- {\flushfootnotes
- \ifopelkaar
- \ifinpagebody
- \expanded{\docomplexdoblanko[#1]}% \expanded=nieuw
- \else
- \par
- \fi
- \else
- \expanded{\docomplexdoblanko[#1]}% \expanded = nieuw
- \fi}
-
-\def\currentblanko%
- {\v!groot}
-
-\def\simpledoblanko%
- {\doifelse{\currentwitruimte}{\v!geen}
- {\blanko[\currentblanko]}
- {\blanko[\currentwitruimte]}}
-
-\def\blanko%
- {\complexorsimple{doblanko}}
-
-\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}%
-
-\def\complexstelblankoin[#1]%
- {\ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!flexibel=>\blankoflexibeltrue,
- \v!vast=>\blankoflexibelfalse]%
- \ExpandFirstAfter\processallactionsinset
- [#1]
- [ \v!flexibel=>\dostelblankoin{\deblankoskip},
- \v!vast=>\dostelblankoin{\deblankoskip},
- \v!regel=>\edef\deblankoskip{\regelafstand}%
- \dostelblankoin{\deblankoskip}%
- \let\deblanko=\v!groot,
- \v!groot=>\def\currentblanko{\v!groot}%
- \let\deblanko=\v!groot,
- \v!middel=>\def\currentblanko{\v!middel}%
- \let\deblanko=\v!middel,
- \v!klein=>\def\currentblanko{\v!klein}%
- \let\deblanko=\v!klein,
- \v!normaal=>\dostelblankoin{\deblankoskip}%
- \let\deblanko=\v!groot,
- \v!standaard=>\edef\deblankoskip{\skipfactor\regelafstand}%
- \dostelblankoin{\deblankoskip}%
- \let\deblanko=\v!groot,
- \s!default=>\dostelblankoin{\deblankoskip}%
- \let\deblanko=\v!groot,
- \s!unknown=>\let\deblankoskip=\commalistelement
- \dostelblankoin{\deblankoskip}%
- \let\deblanko=\v!groot]%
- \stelwitruimtein}
-
-\def\stelblankoin%
- {\complexorsimpleempty{stelblankoin}}
-
-%I n=Inspringen
-%I c=\inspringen,\nietinspringen,\welinspringen
-%I c=\stelinspringenin
-%I
-%I Het inspringen van de eerste regel van een paragraaf
-%I wordt ingesteld met het commando:
-%I
-%I \inspringen[parameter]
-%I
-%I waarbij als parameter kan worden meegegeven:
-%I
-%I niet de volgende paragraaf niet inspringen
-%I nooit de volgende paragrafen niet inspringen
-%I altijd de volgende paragrafen inspringen
-%I
-%I De mate van inspringen wordt ingesteld met:
-%I
-%I \stelinspringenin[maat]
-%I
-%I waarbij maat staat voor een TeX-maat of het woord klein,
-%I middel, groot of geen.
-
-\def\currentvoorwit{}
-
-\newdimen\voorwit
-
-\def\dostelinspringenin[#1]%
- {\doifsomething{#1}{\def\currentvoorwit{#1}}%
- \assigndimension{\currentvoorwit}{\voorwit}{1em}{1.5em}{2em}%
- \parindent=\voorwit\relax}
-
-\def\stelinspringenin%
- {\dosingleempty\dostelinspringenin}
-
-\def\doinspringen[#1]%
- {\processaction
- [#1]
- [ \v!nee=>\parindent=\voorwit\relax\noindent,
- \v!niet=>\parindent=\voorwit\relax\noindent,
- \v!ja=>\parindent=\voorwit\relax, % geen \indent !
- \v!altijd=>\parindent=\voorwit\relax, % geen \indent !
- \v!nooit=>\parindent=\!!zeropoint\relax]}
-
-\def\inspringen%
- {\dosingleargument\doinspringen}
-
-\def\nietinspringen{\inspringen[\v!nee]}
-\def\welinspringen{\inspringen[\v!ja]}
-
-%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}
- {\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=Kapitalen
-%I c=\kap,\Kap,\KAP,\Kaps,\Woord,\Woorden,\opgerekt
-%I
-%I Kapitalen kunnen in een kleiner letterformaat worden
-%I weergegeven met de commando's:
-%I
-%I \kap{tekst}
-%I \Kap{tekst}
-%I \KAP{tekst}
-%I
-%I Bij het eerste commando wordt de hele tekst in kapitalen
-%I gezet, bij het tweede alleen de eerste letter en bij het
-%I laatste commando de letters die worden voorafgegaan door
-%I \\, bijvoorbeeld \KAP{\\Commissie \\Ziezo}.
-%I
-%I Als de tekst van het laatste commando uit woorden bestaat,
-%I kan ook het volgende commando worden gebruikt:
-%I
-%I \Kaps{tekst tekst tekst}
-%I
-%I In dat geval zijn geen \\ nodig.
-%P
-%I Binnen \kap kan \nokap worden gebruikt om een kleine
-%I letter af te dwingen: \kap{AM\nokap{v}B}.
-%I
-%I Een eerste letter(s) van een of meer woorden kunnen worden
-%I omgezet in een hoofdletter met het commando
-%I
-%I \Woord{woord}
-%I \Woorden{woord woord woord ...}
-%I
-%I Een heel woord kan in hoofdletters worden omgezet met:
-%I
-%I \WOORD{tekst}
-%P
-%I Woorden kunnen worden uitgerekt over de actuele breedte
-%I met:
-%I
-%I \opgerekt{tekst}
-%I
-%I bijvoorbeeld:
-%I
-%I \hbox to 20em{\opgerekt{abcdef\\ghijk}}
-%I
-%I met \\ of {} wordt een spatie afgedwongen.
-
-%T n=kap
-%T m=kap
-%T a=k
-%T
-%T \kap{?}
-
-%I n=Afbreken
-%I c=\stelkoppeltekenin
-%I
-%I Met streepjes (-, --, ---) verbonden worden alleen afgebroken
-%I op de plaats van het streepje. Wil men kunnen afbreken op
-%I andere plaatsen, dan moet men de volgende constructie
-%I gebruiken:
-%I
-%I ditiseen|---|heellangwoord|--|hoeweleigenlijkis|-|heteenzin
-%I
-%I Het is ook mogelijk geen teken mee te geven:
-%I
-%I ditiseen||heellangwoord
-%I
-%I In dat geval wordt het ingestelde teken tussengevoegd. Het
-%I teken kan worden ingesteld met:
-%I
-%I \stelkoppeltekenin[teken=]
-%I
-%I Betekenisvolle waarden zijn: - en --, eventueel kan ~
-%I worden meegegeven. In dat geval wordt een \thinspace
-%I geplaatst.
-%P
-%I Een |~| levert midden in de zin een spatie en aan het
-%I eind van de zin een streepje, || is standaard equivalent
-%I met |--|.
-%I
-%I Het koppelteken zelf kan worden opgeroepen met |=|,
-%I bijvoorbeeld in alfa|=| en beta||deeltjes. Dit levert
-%I dus alfa- en beta-deeltjes of alfa-- en beta--deeltjes.
-%I Andere instellingen worden afgevangen.
-%I
-%I Ook ( en ) worden afgevangen. Hierbij wordt bij het
-%I afbreken van voor(na) op de volgende regel (-na)
-%I geplaatst. En wat te denken van |<| en |>|.
-
-% we use module supp-lan.tex
-
-\installdiscretionaries || \@@kpteken
-
-\newsignal\subsentencesignal
-\newcounter\subsentencelevel
-\def\subsentenceskip{.25em}
-
-\def\stelkoppeltekenin%
- {\dodoubleargument\getparameters[\??kp]}
-
-\def\beginofsubsentence%
- {\ifdim\lastkern=\subsentencesignal \else
- \unskip
- \fi
- \ifdim\lastkern=\subsentencesignal
- \unskip
- \hskip\subsentenceskip
- \else
- \normalspace
- \fi
- \doglobal\increment\subsentencelevel
- \ifnum\subsentencelevel=1
- \leaveoutervmode
- \fi
- \ifodd\subsentencelevel
- \getvalue{\??la\currentlanguage\c!leftsentence}%
- \else
- \getvalue{\??la\currentlanguage\c!leftsubsentence}%
- \fi
- \ignorespaces}
-
-\def\beginofsubsentencespacing%
- {\kern\subsentencesignal}
-
-\def\endofsubsentence%
- {\ifodd\subsentencelevel
- \getvalue{\??la\currentlanguage\c!rightsentence}%
- \else
- \getvalue{\??la\currentlanguage\c!rightsubsentence}%
- \fi
- \doglobal\decrement\subsentencelevel
- \kern\subsentencesignal
- \normalspace}
-
-\def\endofsubsentencespacing%
- {\ifdim\lastkern=\subsentencesignal \else
- \unskip
- \fi
- \ifdim\lastkern=\subsentencesignal
- \unskip
- \hskip\subsentenceskip
- \fi}
-
-\enableactivediscretionaries
-
-%I n=Positioneren
-%I c=\startpositioneren,\stelpositionerenin
-%I
-%I Er kan (binnen zekere grenzen) gepositioneerd worden met
-%I de commando's:
-%I
-%I \startpositioneren
-%I \stoppositioneren
-%I
-%I met daartussen
-%I
-%I \positioneer(x,y){...}
-%I
-%I waarbij x en y alleen getallen worden ingevuld. Ongewenste
-%I spaties moeten zonodig met worden voorkomen met een %-teken.
-%P
-%I Een en ander kan worden ingesteld met:
-%I
-%I \stelpositionerenin[eenheid=,factor=,schaal=,xstap=,
-%I ystap=,xoffset=,yoffset=,offset=]
-%I
-%I Standaard is de eenheid cm en de factor 1. Mogelijke
-%I stapaanduidingen zijn 'absoluut' en 'relatief'. Deze
-%I instellingen kunnen \resetpositioneren worden hersteld.
-%I
-%I Als men negatieve coordinaten (of een negatieve offset)
-%I gebruikt, dan kan het soms wenselijk zijn het nulpunt te
-%I laten samenvallen met de linkerbovenhoek van de omringende
-%I box. In dat geval kan met offset=nee instellen. De negatieve
-%I posities vallen in dat geval buiten de box.
-
-% Het gebruik van \skip's spaart \dimen's.
-
-\newskip\xpositie
-\newskip\ypositie
-
-\newskip\xafmeting
-\newskip\yafmeting
-
-\newskip\xoffset
-\newskip\yoffset
-
-\newbox\positiebox
-
-\def\startpositioneren%
- {\bgroup
- \xpositie=\!!zeropoint
- \ypositie=\!!zeropoint
- \xafmeting=\!!zeropoint
- \yafmeting=\!!zeropoint
- \xoffset=\!!zeropoint
- \yoffset=\!!zeropoint
- \hfuzz=30cm
- \vfuzz=30cm
- \setbox\positiebox=\hbox\bgroup}
-
-\def\stoppositioneren%
- {\doifnot{\@@psoffset}{\v!ja}
- {\global\xoffset=\!!zeropoint
- \global\yoffset=\!!zeropoint}%
- \global\advance\xafmeting by \xoffset
- \global\advance\yafmeting by \yoffset
- \egroup
- \vbox to \yafmeting
- {\vskip\yoffset
- \hbox to \xafmeting
- {\hskip\xoffset
- \box\positiebox
- \hfill}%
- \vfill}%
- \egroup}
-
-\def\resetpositioneren%
- {\getparameters[\??ps]
- [\c!eenheid=\s!cm,
- \c!factor=1,
- \c!xfactor=\@@psfactor,
- \c!yfactor=\@@psfactor,
- \c!schaal=1,
- \c!xschaal=\@@psschaal,
- \c!yschaal=\@@psschaal,
- \c!xstap=\v!absoluut,
- \c!ystap=\v!absoluut,
- \c!xoffset=\!!zeropoint,
- \c!yoffset=\!!zeropoint]}
-
-\resetpositioneren
-
-\def\stelpositionerenin%
- {\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
- \ifdim##3<-##7\relax
- \global##7=-##3\relax
- \fi
- \skip2=##5\relax
- \advance\skip2 by ##3\relax
- \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\dorooster[#1]%
- {\bgroup
- \getparameters[\??rt]
- [\c!nx=10,\c!ny=10,
- \c!dx=.5,\c!dy=.5,
- \c!xstap=0,\c!ystap=0,
- \c!eenheid=\s!cm,
- \c!schaal=1,
- \c!factor=1,
- \c!offset=\v!ja,
- #1]%
- \startpositioneren
- \dimen0=\@@rtdx\@@rteenheid
- \dimen0=\@@rtschaal\dimen0
- \dimen0=\@@rtfactor\dimen0
- \multiply\dimen0 by \@@rtnx
- \dimen2=\@@rtdy\@@rteenheid
- \dimen2=\@@rtschaal\dimen2
- \dimen2=\@@rtfactor\dimen2
- \multiply\dimen2 by \@@rtny
- \def\horline
- {\vbox
- {\hrule
- \!!width \dimen0
- \!!height \lijndikte
- \!!depth \!!zeropoint}}%
- \def\verline%
- {\vrule
- \!!width \lijndikte
- \!!height \dimen2
- \!!depth \!!zeropoint}%
- \def\setlegend##1##2%
- {\global\!!countc=0
- \dimen0=2em
- \dimen2=##2\@@rteenheid
- \dimen2=\@@rtschaal\dimen2
- \dimen2=\@@rtfactor\dimen2
- \divide\dimen0 by \dimen2
- \global\!!counte=\dimen0
- \ifnum\!!counte>50
- \global\!!counte=100
- \else\ifnum\!!counte>10
- \global\!!counte=50
- \else\ifnum\!!counte>5
- \global\!!counte=10
- \else\ifnum\!!counte>1
- \global\!!counte=5
- \else
- \global\!!counte=1
- \fi\fi\fi\fi
- \global\!!countd=0
- \def\legend%
- {\ifnum\!!countd=0
- \vbox
- {\hbox to 2em{\hss\the\!!countc\hss}}%
- \global\!!countd=\!!counte
- \fi
- \global\advance\!!countd by -1
- \global\advance\!!countc by ##1}}%
- \def\draw##1##2##3##4##5##6##7%
- {\stelpositionerenin
- [\c!xstap=\v!absoluut,
- \c!ystap=\v!absoluut,
- \c!eenheid=\@@rteenheid,
- \c!schaal=\@@rtschaal,
- \c!factor=\@@rtfactor,
- \c!offset=\@@rtoffset,
- \c!xoffset=##6,
- \c!yoffset=##7]%
- \positioneer(0,0){##1}%
- \stelpositionerenin
- [\c!xstap=\v!relatief,
- \c!ystap=\v!relatief,
- \c!schaal=\@@rtschaal,
- \c!factor=\@@rtfactor,
- \c!offset=\@@rtoffset,
- \c!eenheid=\@@rteenheid]%
- \dorecurse{##2}{\positioneer(##3,##4){##5}}}%
- \draw{\verline}{\@@rtnx}{\@@rtdx}{0}{\verline}{\!!zeropoint}{\!!zeropoint}%
- \draw{\horline}{\@@rtny}{0}{\@@rtdy}{\horline}{\!!zeropoint}{\!!zeropoint}%
- \tfx
- \doifnot{\@@rtxstap}{0}
- {\setlegend{\@@rtxstap}{\@@rtdx}%
- \draw{\legend}{\@@rtnx}{\@@rtdx}{0}{\legend}{-1em}{-1.5em}}%
- \doifnot{\@@rtystap}{0}
- {\setlegend{\@@rtystap}{\@@rtdy}%
- \draw{\legend}{\@@rtny}{0}{\@@rtdy}{\legend}{-2em}{-.75ex}}%
- \stoppositioneren
- \egroup}
-
-\def\rooster%
- {\dosingleempty\dorooster}
-
-%I n=Kolommen
-%I c=\stelkolommenin,\startkolommen,\kolom
-%I
-%I Tekst kan in kolommen worden gezet. Het aantal kolommen
-%I en het al dan niet opnemen van een vertikale lijn kan
-%I worden ingesteld.
-%I
-%I \stelkolommenin[n=,lijn=,tolerantie=,afstand=,
-%I balanceren=,uitlijnen=,hoogte=]
-%I
-%I Hierin staat n voor het aantal kolommen. Aan lijn
-%I kan aan of uit worden toegekend. Aan voor en na kan
-%I een commando worden toegekend, bijvoorbeeld ~~.
-%I
-%I Mogelijke waarden voor de tolerantie zijn: zeerstreng,
-%I streng, soepel en zeersoepel.
-%P
-%I De in kolommen te zetten tekst moet worden opgenomen
-%I tussen de commando's:
-%I
-%I \startkolommen
-%I \stopkolommen
-%I
-%I Er wordt naar een nieuwe kolom gesprongen met:
-%I
-%I \kolom
-
-\newif\ifbinnenkolommen
-\newif\if@@klbalanceren
-\newif\if@@kluitlijnen
-
-\binnenkolommenfalse
-
-\def\stelkolommenin%
- {\dodoubleargument\getparameters[\??kl]}
-
-\def\linebetweencolumns%
- {\bgroup
- \startcolorpage
- \ifdim\@@klafstand>\!!zeropoint
- \dimen0=\@@klafstand
- \else
- \dimen0=\linewidth
- \fi
- \advance\dimen0 by -\linewidth
- \hskip.5\dimen0
- \vrule
- \!!width\linewidth
- \ifb@selinebottom\!!depth\strutdepth\fi
- \hskip.5\dimen0\relax
- \stopcolorpage
- \egroup}
-
-\def\spacebetweencolumns%
- {\hskip\@@klafstand}
-
-\presetlocalframed[\??kl]
-
-\def\backgroundfinishcolumnbox%
- {\dimen0=\@@kloffset
- \advance\dimen0 by -\@@kllijndikte
- \localframed
- [\??kl]
- [\c!offset=\dimen0,
- \c!strut=\v!nee,
- \c!breedte=\v!passend,
- \c!hoogte=\v!passend,
- \c!uitlijnen=]}
-
-\def\backgroundsetcolumntextheight%
- {\dimen0=-\@@kloffset
- \multiply\dimen0 by 2
- \advance\dimen0 by \teksthoogte
- \edef\columntextheight{\the\dimen0}}
-
-\def\backgroundsetcolumntextwidth%
- {\dimen0=-\@@kloffset
- \multiply\dimen0 by \nofcolumns
- \multiply\dimen0 by 2
- \advance\dimen0 by \tekstbreedte
- \edef\columntextwidth{\the\dimen0}}
-
-\def\complexstartkolommen[#1]% %% \startkolommen
- {\bgroup
- \let\stopkolommen=\egroup
- \ifbinnenkolommen
- \else
- \stelkolommenin[#1]%
- \ifnum\@@kln>1\relax
- \witruimte
- \begingroup
- \doif{\@@kloptie}{\v!achtergrond}
- {\let\finishcolumnbox = \backgroundfinishcolumnbox
- \let\setcolumntextheight = \backgroundsetcolumntextheight
- \let\setcolumntextwidth = \backgroundsetcolumntextwidth}%
-% \doifelse{\@@kllijn}{\v!aan}
-% {\let\betweencolumns=\linebetweencolumns}
-% {\let\betweencolumns=\spacebetweencolumns}%
- \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}%
- \doifelse{\@@klbalanceren}{\v!ja}
- {\balancecolumnstrue}
- {\balancecolumnsfalse}%
- \processaction % ook nog: laatsteuitlijnen
- [\@@kluitlijnen]
- [ \v!ja=>\stretchcolumnstrue
- \inheritcolumnsfalse,
- \v!nee=>\stretchcolumnsfalse
- \inheritcolumnsfalse,
- \v!tekst=>\stretchcolumnsfalse
- \inheritcolumnstrue]%
- \nofcolumns=\@@kln
- \edef\fixedcolumnheight{\@@klhoogte}%
- \steltolerantiein[\@@kltolerantie]% %% \startkolommen
- \stelblankoin[\@@klblanko]%
- \ifdim\tussenwit>\!!zeropoint
- \stelwitruimtein[\@@klblanko]%
- \fi
- \def\stopkolommen%
- {\endmulticolumns
- \global\binnenkolommenfalse
- \endgroup
- \egroup}%
- \global\binnenkolommentrue
- \beginmulticolumns
- \fi
- \fi}
-
-\def\startkolommen%
- {\complexorsimpleempty{startkolommen}}
-
-\def\kolom%
- {\ifbinnenkolommen
- \ejectcolumn
- \fi}
-
-%I n=Kader
-%I c=\toonkader,\tooninstellingen,\toonlayout
-%I
-%I Met behulp van de drie commando's:
-%I
-%I \toonkader
-%I \tooninstellingen
-%I
-%I kan de zetspiegel zichtbaar worden gemaakt, of eventueel
-%I met:
-%I
-%I \toonkader [rand,tekst,marge]
-%I
-%I Het commando:
-%I
-%I \toonlayout
-%I
-%I genereert enkele (linker en rechter) pagina's.
-
-\def\complextoonkader[#1]%
- {\stelachtergrondenin
- [\v!hoofd,\v!tekst,\v!voet]
- [#1]
- [\c!achtergrond=,
- \c!kader=\v!aan,
- \c!hoek=\v!recht,
- \c!kaderoffset=\!!zeropoint,
- \c!kaderdiepte=\!!zeropoint,
- \c!kaderkleur=]
- \let\pageseparation=\!!zeropoint}
-
-\def\simpletoonkader%
- {\complextoonkader
- [\v!linkerrand,\v!linkermarge,
- \v!tekst,
- \v!rechtermarge,\v!rechterrand]}
-
-\definecomplexorsimple\toonkader
-
-\def\tooninstelling#1#2%
- {\hbox
- {\doifelse{#2}{\??ly}
- {\dimen0=\getvalue{#2#1}}
- {\dimen0=#2}%
- \hbox to 9em{\strut#1\hfill}%
- \hbox to 5em{\hfill\PtToCm{\the\dimen0}}%
- \hbox to 6em{\hfill\the\dimen0}%
- \doifnot{#2}{\??ly}
- {\hskip 1em{\tttf\string#2}}}%
- \par}
-
-\def\tooninstellingen% % engels maken
- {\noindent
- \vbox
- {\forgetall
- \mindermeldingen
- \tooninstelling{papierhoogte}\papierhoogte
- \tooninstelling{papierbreedte}\papierbreedte
- \tooninstelling{printpapierhoogte}\printpapierhoogte
- \tooninstelling{printpapierbreedte}\printpapierbreedte
- \tooninstelling{kopwit}\kopwit
- \tooninstelling{rugwit}\rugwit
- \tooninstelling{hoogte}\zethoogte
- \tooninstelling{breedte}\zetbreedte
- \tooninstelling{teksthoogte}\teksthoogte
- \tooninstelling{tekstbreedte}\tekstbreedte
- \tooninstelling{bovenafstand}\??ly
- \tooninstelling{hoofd}\hoofdhoogte
- \tooninstelling{hoofdafstand}\??ly
- \tooninstelling{boven}\bovenhoogte
- \tooninstelling{voetafstand}\??ly
- \tooninstelling{voet}\voethoogte
- \tooninstelling{onderafstand}\??ly
- \tooninstelling{onder}\onderhoogte
- \tooninstelling{linkerrand}\linkerrandbreedte
- \tooninstelling{linkerrandafstand}\??ly
- \tooninstelling{linkermarge}\linkermargebreedte
- \tooninstelling{linkermargeafstand}\??ly
- \tooninstelling{rechtermargeafstand}\??ly
- \tooninstelling{rechtermarge}\rechtermargebreedte
- \tooninstelling{rechterrandafstand}\??ly
- \tooninstelling{rechterrand}\rechterrandbreedte}}
-
-\def\toonlayout
- {\bgroup
- \pagina
- \toonkader
- \stellayoutin[\c!markering=\v!aan]
- \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\ifsomkolommen \somkolommenfalse
-\newif\ifsubsom \subsomfalse
-\newif\ifsymsom \symsomfalse
-\newif\ifkopsom \kopsomfalse
-\newif\ifsomintro \somintrofalse
-\newif\ifsomautointro \somautointrofalse
-\newif\ifpackeditems \packeditemsfalse
-\newif\iffirstlist \firstlistfalse
-
-\definetwopasslist{\s!list}
-
-\newcounter\noflists
-\newcounter\itemlevel
-
-\def\dolistreference%
- {\immediate\writeutilitycommand%
- {\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!marletter,\c!symletter,\c!kopletter,
- \c!markleur,\c!symkleur,\c!kopkleur,
- \c!kopvoor,\c!kopna,\c!voor,\c!tussen,\c!na,
- \c!afsluiter,\c!plaatsafsluiter,
- \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}]%
- \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]%
- {\processaction
- [#2#3]
- [ \v!opelkaar=>\packitems,
- \v!intro=>\somintrotrue,
- \v!autointro=>\somautointrotrue,
- \v!ruim=>{\doassign[\??op#1][\c!factor=1]},
- #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!aansluitend=>{\getparameters[\??op#1]
- [\c!kopvoor=,\c!kopna=,
- \c!voor=,\c!tussen=,\c!na=]%
- \packitems},
- \v!aanelkaar=>{\doassign[\??op#1][\c!factor=-1]},
- #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]}]}
- {\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}
-
-\def\setitemmark#1% % maakt gebruik van \??ss en \??cv
- {\doifdefinedelse{\??ss#1} % en pas op: resets \docommando
- {\setxvalue{\??op\c!symbool\s!global\itemlevel}%
- {#1}%
- \setgvalue{\??op\c!symbool\s!local\itemlevel}%
- {?}%
- \def\listitem%
- {\symbol[#1]}%
- \def\docommando##1{}}
- {\doifdefined{\??cv#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}%
- \def\docommando##1{}}}}
-
-\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\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
- \doifelsevalue{\??op1\c!marge}{\v!standaard}
- {\ifdim\voorwit=\!!zeropoint
- \advance\leftskip by \@@sllinks
- \else
- \advance\leftskip by \voorwit
- \fi}
- {\advance\leftskip by \getvalue{\??op1\c!marge}}%
- \fi
- \doifinset{\v!kolommen}{#1}%
- {\ifbinnenkolommen\else
- \global\somkolommentrue
- \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,
- \c!hoogte=,
- \c!lijn=\v!uit,
- \c!balanceren=\v!ja,
- \c!uitlijnen=\v!nee]%
- \fi}%
- \doifinsetelse{\v!intro}{#1}
- {\somintrotrue}
- {\somintrofalse}%
- \doglobal\increment\noflists
- \let\currentlist=\noflists
- \newcounter\noflistelements
- \kopsomfalse
- \subsomfalse
- \symsomfalse
- \let\marsymbol=\relax
- \let\somdestination=\empty
- \def\symsymbol{}%
- \def\som%
- {\dosom}%
- \def\but[##1]%
- {\def\somdestination{##1}%
- \dosom}%
- \def\nop%
- {\sym{\strut}\strut}%
- \definecomplexorsimple\its
- \setvalue{\v!mar}##1%
- {\def\marsymbol%
- {\llap
- {\doattributes{\??op\itemlevel\v!mar}{##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\v!sym}{##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}}}}%
- \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}%
- {\edef\@@opsymbool{\getvalue{\??op\c!symbool\s!global\itemlevel}}%
- \getvalue{\??op\v!verder\itemlevel}}
- {\edef\@@opsymbool{\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
- \dolistreference
- \endgroup
- \ifsomkolommen
- \global\somkolommenfalse
- \stopkolommen
- \getvalue{\??op\itemlevel\c!na}%
- \else
- \ifnum\itemlevel=1\relax
- \dosomebreak\allowbreak % toegevoegd
- \getvalue{\??op1\c!na}%
- \fi
- \fi
- \endgroup
- \doglobal\decrement(\itemlevel,\itemincrement)%
- \egroup}
-
-\def\sombreak%
- {\flushfootnotes\penalty-5\relax} % -10
-
-\def\somnobreak%
- {\flushfootnotes\penalty+5\relax} % \nobreak
-
-\def\dolistitem%
- {\par
- \ignorespaces
- \increment\noflistelements
- \ifnum\noflistelements=1\relax % als gevolg van nesting
- \findtwopassdata{\s!list}{\noflists:}% % van wordt soms de volgorde
- \fi % verstoord, vandaar \find
- \ifsomkolommen\else
- \iftwopassdatafound
- \ifnum\twopassdata=3\relax
- \ifnum\noflistelements>1\relax
- \dosomebreak\somnobreak
- \fi
- \else\ifnum\twopassdata>3\relax
- \ifnum\noflistelements=2\relax
- \ifsomkolommen\else
- \ifsomintro
- \dosomebreak\nobreak
- \else
- \dosomebreak\somnobreak
- \fi
- \fi
- \else\ifnum\twopassdata=\noflistelements\relax
- \dosomebreak\somnobreak
- \else\ifnum\noflistelements>2\relax
- \dosomebreak\sombreak
- \else
- \ifsomintro\else\dosomebreak\sombreak\fi
- \fi\fi\fi
- \fi\fi
- \fi
- \fi
- \noindent
- \ifkopsom
- \setbox8=\hbox{\doattributes{\??op\itemlevel\v!kop}{\listitem}}%
- \else\ifsymsom
- \setbox8=\hbox{\symsymbol}%
- \else
- \setbox8=\hbox{\listitem}%
- \fi\fi
- \doifsomething{\somdestination}
- {\setbox8=\hbox{\naar{\copy8}[\somdestination]}}%
- \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}}%
- \kopsomfalse
- \subsomfalse
- \symsomfalse
- \EveryPar{\ignorespaces}%
- \ignorespaces}
-
-\def\complexdosom[#1]%
- {\par
- \ignorespaces
- \doadvanceitem
- \ifsomkolommen\else
- \ifnum\noflistelements>0\relax\dosomebreak\nobreak\fi
- \fi
- \iffirstlist
- \firstlistfalse
- \begingroup
- \ifcase\itemlevel
- \or % 1
- \ifsomkolommen\else
- \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}
- {\bgroup
- \protectconversion
- \rawreference{\s!lst}{#1}{\itemreference}%
- \egroup}%
- \ignorespaces}
-
-\def\complexsom[#1]#2\par%
- {\startopsomming[#1]
- \complexdosom[]\ignorespaces#2\par
- \stopopsomming}
-
-\def\som%
- {\complexorsimpleempty{som}}
-
-\def\dosom%
- {\complexorsimpleempty{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\v!kop}{\ignorespaces#2}}\par%
- \ifpackeditems\else\itemuse{\c!kopna}\fi%
- \dosomebreak\nobreak}
-
-\def\complexkop[#1]#2\par#3\par%
- {\startopsomming[#1]%
- \complexdokop[]\ignorespaces#2\par#3\par%
- \stopopsomming}
-
-\setvalue{\v!kop}%
- {\complexorsimpleempty{kop}}
-
-\def\dokop%
- {\complexorsimpleempty{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's \??dd#1\c!lokaal en \??dd#1\c!commando leveren
-% 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!commando
-% moet in dat geval \v!ja zijn.
-
-% herimplementeren met \nextbox en \unhbox\unvbox
-
-\newbox\@@definitiebox
-
-\setvalue{@@dodefinitiewoord\v!links}#1%
- {\hbox to \!!widtha{#1\hss}}
-\setvalue{@@dodefinitiewoord\v!rechts}#1%
- {\hbox to \!!widtha{\hss#1}}
-\setvalue{@@dodefinitiewoord\v!midden}#1%
- {\hbox to \!!widtha{\hss#1\hss}}
-\setvalue{@@dodefinitiewoord}#1%
- {#1}
-
-\def\@@definitiewoord#1%
- {\getvalue{\??dd#1\c!commando}{#1}}
-
-\def\normal@@definitiewoord#1[#2]#3%
- {\bgroup
- \getvalue{@@dodefinitiewoord\getvalue{\??dd#1\c!uitlijnen}}
- {\doattributes{\??dd#1\v!kop}{\strut\getvalue{\??dd#1\c!tekst}#3}}%
- \rawreference{\s!def}{#2}{#3}%
- \egroup}
-
-\def\@@definitielinks#1[#2]#3%
- {\doifelsevaluenothing{\??dd#1\c!hang}
- {\@@definitielinkspure{#1}[#2]{#3}}
- {\@@definitielinkshang{#1}[#2]{#3}}}
-
-\def\@@definitierechts#1[#2]#3%
- {\doifelsevaluenothing{\??dd#1\c!hang}
- {\@@definitierechtspure{#1}[#2]{#3}}
- {\@@definitierechtshang{#1}[#2]{#3}}}
-
-\def\@@definitielinkspure#1[#2]#3%
- {\@@dostartdefinitie{#1}{#3}%
- \advance\leftskip by \!!widtha
- \llap
- {\hbox to \!!widtha{\@@definitiewoord{#1}[#2]{#3}%
- \hss}}%
- \@@dodefinitie{#1}}
-
-\def\@@definitierechtspure#1[#2]#3%
- {\@@dostartdefinitie{#1}{#3}%
- \advance\rightskip by \!!widtha
- \rlap
- {\hskip\hsize
- \hskip-\leftskip
- \hskip-\rightskip
- \hbox to \!!widtha{\hss\@@definitiewoord{#1}[#2]{#3}}}%
- \@@dodefinitie{#1}}
-
-\def\@@makedefinitiebox#1[#2]#3#4%
- {\setbox\@@definitiebox=\vtop % \vbox gaat fout in hang
- {\forgetall
- \hsize\!!widtha
- #4%
- \def\\{\endgraf}%
- \@@definitiewoord{#1}[#2]{\begstrut#3\endstrut}}%
- \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}}}%
-
-\def\@@definitielinkshang#1[#2]#3%
- {\@@dostartdefinitie{#1}{#3}%
- \mindermeldingen
- \hangindent=\!!widtha\relax
- \@@makedefinitiebox{#1}[#2]{#3}{}%
- \llap
- {\dontshowcomposition
- \vtop to \!!zeropoint{\box\@@definitiebox}}%
- \@@dodefinitie{#1}}%
-
-\def\@@definitierechtshang#1[#2]#3%
- {\@@dostartdefinitie{#1}{#3}%
- \mindermeldingen
- \hangindent=-\!!widtha\relax
- \@@makedefinitiebox{#1}[#2]{#3}{\raggedleft}%
- \rlap
- {\dontshowcomposition
- \dimen0=\hsize
- \advance\dimen0 by -\leftskip
- \advance\dimen0 by -\rightskip
- \hbox to \dimen0
- {\hss
- \vtop to \!!zeropoint{\box\@@definitiebox}}}%
- \@@dodefinitie{#1}}
-
-\def\@@definitieboven#1[#2]#3%
- {%\pagina[\v!voorkeur]% % Weg ermee!
- \dosomebreak{\goodbreak}% % Dit is beter en nodig!
- \@@dostartdefinitie{#1}{#3}%
- \@@definitiewoord{#1}[#2]{#3}%
- \nobreak
- \getvalue{\??dd#1\c!tussen}%
- \@@dodefinitie{#1}}
-
-\def\@@definitieinmarge#1[#2]#3%
- {\@@dostartdefinitie{#1}{#3}%
- \inmarge{\@@definitiewoord{#1}[#2]{#3}}%
- \@@dodefinitie{#1}}
-
-\def\@@definitieinlinker#1[#2]#3%
- {\@@dostartdefinitie{#1}{#3}%
- \inlinker{\@@definitiewoord{#1}[#2]{#3}}%
- \@@dodefinitie{#1}}
-
-\def\@@definitieinrechter#1[#2]#3%
- {\@@dostartdefinitie{#1}{#3}%
- \inrechter{\@@definitiewoord{#1}[#2]{#3}}%
- \@@dodefinitie{#1}}
-
-\def\@@definitieaanelkaarpassend#1[#2]#3%
- {\@@dostartdefinitie{#1}{#3}%
- \@@definitiewoord{#1}[#2]{#3}%
- \tfskip % nog afstand implementeren
- \@@dodefinitie{#1}}
-
-\def\@@definitieaanelkaarbreed#1[#2]#3%
- {\@@dostartdefinitie{#1}{#3}%
- \ignorespaces
- \hbox to \!!widtha
- {\@@definitiewoord{#1}[#2]{#3}%
- \tfskip
- \hss}% % nog afstand implementeren
- \@@dodefinitie{#1}}
-
-\def\@@definitieaanelkaar#1[#2]#3%
- {\doifinsetelse{\getvalue{\??dd#1\c!breedte}}{\v!passend,\v!ruim}%
- {\@@definitieaanelkaarpassend{#1}[#2]{#3}}%
- {\@@definitieaanelkaarbreed{#1}[#2]{#3}}}
-
-\def\@@dostartdefinitie#1#2%
- {\getvalue{\??dd#1\c!voor}%
- \begingroup
- %\showcomposition
- \assignwidth
- {\!!widtha}
- {\getvalue{\??dd#1\c!breedte}}
- {\doattributes
- {\??dd#1\v!kop}
- {\getvalue{\??dd#1\c!tekst}%
- \doifelsevaluenothing{\??dd#1\c!monster}
- {#2}
- {\getvalue{\??dd#1\c!monster}}}}%
- \getvalue{\??dd#1\c!lokaal}%
- \parindent=\!!zeropoint\relax
- \noindent
- \ignorespaces}
-
-\def\@@stopdefinitie#1%
- {\par
- \dostopattributes
- \endgroup
- \egroup % temporary hack
- \getvalue{\??dd#1\c!na}%
- \pagina[\v!voorkeur]} % toegevoegd maar heroverwegen
-
-\def\@@dodefinitie#1%
- {\dostartattributes
- {\??dd#1}
- {}%
- \ignorespaces}
-
-\def\@@somedefinitie#1[#2]#3%
- {\bgroup % temporary hack
- \BeforePar{\getvalue{\??dd#1}[#2]{#3}}%
- \AfterPar{\@@stopdefinitie{#1}}%
- \GetPar}
-
-\def\@@startdefinitie#1[#2]#3%
- {\bgroup % temporary hack
- \BeforePar{\getvalue{\??dd#1}[#2]{#3}}%
- \GotoPar}
-
-\def\dodosteldoordefinierenin[#1][#2]%
- {\getparameters[\??dd#1][#2]}
-
-\def\dosteldoordefinierenin[#1][#2]%
- {\ConvertToConstant\doifelse{#2}{}
- {\dodosteldoordefinierenin[][#1]}
- {\dodoubleargumentwithset\dodosteldoordefinierenin[#1][#2]}}
-
-\def\steldoordefinierenin%
- {\dodoubleempty\dosteldoordefinierenin}
-
-% kan zonder \interfaced wanneer \setvalue{...\v!...}
-
-\def\executedoordefinitie#1[#2]%
- {\ExpandAfter\doifundefined{@@definitie\interfaced{\getvalue{\??dd#1\c!plaats}}}
- {\setvalue{\??dd#1\c!plaats}{\v!links}}%
- \getvalue{@@definitie\interfaced{\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!uitlijnen,\c!inspringen,\c!tekst]%
- \getparameters[\??dd#1]
- [\s!do\c!commando=\v!nee,
- \c!commando=\normal@@definitiewoord,
- \c!lokaal=,
- #2]%
- \doifvalue{\??dd#1\c!plaats}{\v!boven}%
- {\doassign[\??dd#1][\c!tussen={\blanko}]}%
- \setvalue{\??dd#1}[##1]%
- {\executedoordefinitie{#1}[##1]}%
- \doifelsevalue{\??dd#1\s!do\c!commando}{\v!ja}
- {\setvalue{\s!complex\??dd#1}[##1]%
- {\@@somedefinitie{#1}[##1]{}}%
- \setvalue{\s!complex\??dd\s!start#1}[##1]%
- {\@@startdefinitie{#1}[##1]{}}}%
- {\setvalue{\s!complex\??dd#1}[##1]%
- {\dowithwargument{\@@somedefinitie{#1}[##1]}}%
- \setvalue{\s!complex\??dd\s!start#1}[##1]%
- {\dowithwargument{\@@startdefinitie{#1}[##1]}}}%
- \setvalue{#1}%
- {\complexorsimpleempty{\??dd#1}}%
- \setvalue{\e!start#1}%
- {\complexorsimpleempty{\??dd\s!start#1}}%
- \setvalue{\e!stop#1}%
- {\@@stopdefinitie{#1}}}%
-
-\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} }
-
-\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=#1[#2]#3 van definitie
-
-% alternatief zonder check en ietwat verwarrend
-%
-% \bgroup
-% \setvalue{\??dd#1\c!sectienummer}{\v!ja}%
-% \protectconversion
-% \maakvoorafgaandenummer[#1]%
-% \xdef\internaldoornummer{#3{#1}}%
-% \thisissomeinternal{#1}{\internaldoornummer}%
-% \doifelsevaluenothing{\??dd#1\c!koppeling} % checken
-% {\gotosomeinternal
-% {\getvalue{\??dd#1\c!koppeling}}
-% {\internaldoornummer}
-% {\copy0}
-% {}}
-% {\box0}%
-% \egroup
-% \rawreference{\s!num}{#5}{#3{#1}}%
-
-\def\special@@definitiewoord#1#2#3#4[#5]#6%
- {\getvalue{@@dodefinitiewoord\getvalue{\??dd#2#1\c!uitlijnen}}
- {\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\v!kop}
- {\strut
- \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
- \strut\ExpandBothAfter\doattributes
- {\??dd#1\v!kop}
- {\showdnpuretext{#2#1}}%
- \rawreference{\s!num}{#5}{}%
- \fi}}
-
-% De macro's \??dd#1\c!lokaal en \??dd#1\c!commando leveren
-% 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!commando
-% moet in dat geval \v!ja zijn.
-
-\def\@@ddleftskip#1#2%
- {\do@@ddleftskip{#1}{#2}{}}
-
-\def\do@@ddleftskip#1#2#3%
- {\ExpandFirstAfter\processaction
- [\getvalue{\??dd#2#1\c!inspringen}]
- [ \v!nee=>,
- \v!ja=>\dodo@@ddleftskip{#1}{#2}{#3}%
- \doifnot{#2}{\v!sub#3}
- {\do@@ddleftskip{#1}{#2}{\v!sub#3}},
- \s!unknown=>\advance\leftskip by \getvalue{\??dd#2#1\c!inspringen}]}
-
-\def\dodo@@ddleftskip#1#2#3%
- {\ExpandFirstAfter\processaction
- [\getvalue{\??dd#3\v!sub#1\c!inspringen}]
- [ \v!nee=>,
- \v!ja=>\ExpandFirstAfter\doifnotinset
- {\getvalue{\??dd#3#1\c!breedte}}{\v!passend,\v!ruim}
- {\advance\leftskip by \getvalue{\??dd#3#1\c!breedte}},
- \s!unknown=>\advance\leftskip by \commalistelement]}
-
-\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%
- {\dodoordefinieren[#3#1]%
- [\s!do\c!commando=\v!ja,
- \c!lokaal=\@@ddleftskip{#1}{#3},
- \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!monster,\c!hang,\c!uitlijnen,\c!voor,\c!tussen,\c!na,
- \c!niveaus,\c!wijze,\c!blokwijze,\c!scheider, % \c!conversie
- \c!afsluiter,\c!sectienummer,\c!nummer,\c!inspringen]%
- \ConvertToConstant\doifinstringelse{=}{#4}
- {\getparameters[\??dd#3#1]%
- [\c!tekst=#1,\??dd\c!nummer=#1,\c!conversie=,
- \c!links=,\c!rechts=,\c!koppeling=,#4]}%
- {\doifelsenothing{#4}
- {\getparameters[\??dd#3#1]%
- [\c!tekst=#1,\??dd\c!nummer=#1,\c!conversie=,
- \c!links=,\c!rechts=,\c!koppeling=,#4]}%
- {\copyparameters[\??dd#3#1][\??dd#3#4]
- [\c!plaats,\c!kopletter,\c!letter,\c!kleur,\c!kopkleur,
- \c!breedte,\c!nummer,
- \c!monster,\c!hang,\c!uitlijnen,\c!voor,\c!tussen,\c!na,
- \c!links,\c!rechts,\c!koppeling,\c!inspringen]%
- \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}%
- {\getvalue{\??dd\s!reset#3\c!nummer}{#1}}%
- \setvalue{\s!complex\e!volgende#3#1}%
- {\getvalue{\??dd\c!volgende#3\c!nummer}{#1}}%
- \setvalue{\e!volgende#3#1}%
- {\complexorsimpleempty{\e!volgende#3#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
- \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\v!kop}
- {\getvalue{\??ds#1\c!monster}\getvalue{\??ds#1\c!scheider}}}%
- \advance\!!widtha by \tfskipsize
- \setbox2=\hbox to \!!widtha
- {\doattributes
- {\??ds#1\v!kop}
- {\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}{}% #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\v!kop}{\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,
-%I c=\woordrechts
-%I
-%I De regelval kan worden ingesteld met:
-%I
-%I \steluitlijnenin[instelling]
-%I
-%I waarbij de volgende instellingen mogelijk zijn:
-%I
-%I links links niet uitvullen
-%I midden links/rechts niet uitvullen = centreren
-%I rechts rechts niet uitvullen
-%I breedte uitvullen over breedte (default)
-%I beide wisselend (afhankelijk bladzijde)
-%I onder onderkant niet uitgelijnd (default)
-%I hoogte uitvullen over hoogte (op baseline)
-%I regel uitvullen over hoogte (binnen kader)
-%I reset uitvullen over breedte en hoogte
-%I
-%I In combinatie met links, midden en rechts kan 'ruim'
-%I worden opgegeven.
-%P
-%I Aanvullend zijn de volgende commando's beschikbaar:
-%I
-%I \startuitlijnen[instelling]
-%I \stopuitlijnen
-%I
-%I Een regel kan op verschillende manieren worden uitgelijnd
-%I met behulp van de commando's:
-%I
-%I \regellinks{tekst}
-%I \regelrechts{tekst}
-%I \regelmidden{tekst}
-%I
-%I Aan het eind van een paragraaf kan een stukje tekst
-%I worden geplaatst met: \woordrechts{ziezo}
-%P
-%I De tolerantie waarbinnen het uitlijnen plaatsvindt kan
-%I worden ingesteld met:
-%I
-%I \steltolerantiein[instelling]
-%I
-%I Mogelijke waarden zijn: zeerstreng, streng, soepel en
-%I zeersoepel.
-%I
-%I Standaard heeft de tolerantie betrekking op horizontaal
-%I uitlijnen. Vertikaal kan het uitlijnen worden beinvloed
-%I door het trefwoord 'vertikaal' mee te geven. Standaard
-%I geldt [vertikaal,streng] en [horizontaal,zeerstreng].
-
-\definetwopasslist{\s!paragraph}
-
-\newcounter\nofraggedparagraphs
-
-\def\doparagraphreference% looks very much like domarginreference
- {\doglobal\increment\nofraggedparagraphs\relax
- \edef\writeparref%
- {\writeutilitycommand%
- {\twopassentry%
- {\s!paragraph}%
- {\nofraggedparagraphs}%
- {\noexpand\realfolio}}}%
- \writeparref}
-
-\def\setraggedparagraphmode#1#2%
- {\ifinner
- \ifdubbelzijdig
- \gettwopassdata{\s!paragraph}%
- \iftwopassdatafound
- \ifodd\twopassdata#1\else#2\fi
- \else
- \ifodd\realfolio#1\else#2\fi
- \fi
- \doparagraphreference
- \else
- #2\relax
- \fi
- \else
- #2\relax
- \fi}
-
-% De onderstaande macro's zijn opgenomen in Plain TeX.
-%
-% \def\raggedright%
-% {\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax}
-%
-% \def\ttraggedright%
-% {\tttf\rightskip\z@ plus2em\relax}
-%
-% \newif\ifr@ggedbottom
-%
-% \def\raggedbottom%
-% {\topskip 10\p@ plus60\p@ \r@ggedbottomtrue}
-%
-% \def\normalbottom%
-% {\topskip 10\p@ \r@ggedbottomfalse}
-%
-% en worden hieronder wat aangepast.
-
-\newif\ifn@rmalbottom
-\newif\ifr@ggedbottom
-\newif\ifb@selinebottom
-
-\def\normalbottom%
- {\n@rmalbottomtrue
- \r@ggedbottomfalse
- \b@selinebottomfalse
- \settopskip}
-
-\def\raggedbottom%
- {\n@rmalbottomfalse
- \r@ggedbottomtrue
- \b@selinebottomfalse
- \settopskip}
-
-\def\baselinebottom%
- {\n@rmalbottomfalse
- \r@ggedbottomfalse
- \b@selinebottomtrue
- \settopskip}
-
-% \hyphenpenalty = ( 2.5 * \hsize ) / \raggedness
-% \tolerance >= 200
-% \raggedness = 2 .. 6\korpsgrootte
-
-\def\leftraggedness {2\korpsgrootte}
-\def\rightraggedness {2\korpsgrootte}
-\def\middleraggedness {6\korpsgrootte}
-
-\def\setraggedness#1%
- {\ifnum\tolerance<200\relax % kleinere waarden
- \tolerance=200\relax % geven ongewenste
- \fi % effecten
- \spaceskip=2.5\hsize % voorkomt conflict
- \xspaceskip=#1\relax % met \dimen0/2 en
- \divide\spaceskip by \xspaceskip % deze skips worden
- \hyphenpenalty=\spaceskip} % toch al aangepast
-
-\def\setraggedskips#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\notragged%
- {\setraggedskips{0em}{0em}{0em}{0em}{1fil}{\parindent}} % {\voorwit}}
-
-\def\raggedleft%
- {\setraggedness\leftraggedness
- \setraggedskips{\leftraggedness}{0em}{.3333em}{.5em}{0em}{0em}}
-
-\def\raggedcenter%
- {\setraggedness\middleraggedness
- \setraggedskips{\middleraggedness}{\middleraggedness}{.3333em}{.5em}{0em}{0em}}
-
-\def\raggedright%
- {\setraggedness\rightraggedness
- \setraggedskips{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}} % {\voorwit}}
-
-\def\veryraggedleft%
- {\setraggedskips{1fil}{0em}{.3333em}{.5em}{0em}{0em}}
-
-\def\veryraggedcenter%
- {\setraggedskips{1fil}{1fil}{.3333em}{.5em}{0em}{0em}}
-
-\def\veryraggedright%
- {\setraggedskips{0em}{1fil}{.3333em}{.5em}{0em}{\parindent}} % {\voorwit}}
-
-\def\ttraggedright%
- {\tttf
- \setraggedskips{0em}{\rightraggedness}{0em}{0em}{0em}{\parindent}} % {\voorwit}}
-
-\def\dosteluitlijnenin[#1]%
- {\doifinsetelse{\v!ruim}{#1}{\!!doneatrue}{\!!doneafalse}%
- \processallactionsinset
- [#1]
- [ \v!regel=>\baselinebottom,
- \v!onder=>\raggedbottom,
- \v!hoogte=>\normalbottom,
- \v!breedte=>\notragged,
- \v!binnen=>\setraggedparagraphmode\raggedleft\raggedright,
- \v!buiten=>\setraggedparagraphmode\raggedright\raggedleft,
- \v!links=>\if!!donea\veryraggedleft\else\raggedleft\fi,
- \v!rechts=>\if!!donea\veryraggedright\else\raggedright\fi,
- \v!midden=>\if!!donea\veryraggedcenter\else\raggedcenter\fi,
- \v!reset=>\notragged
- \normalbottom]}
-
-\def\steluitlijnenin%
- {\dosingleargument\dosteluitlijnenin}
-
-\def\startuitlijnen%
- {\bgroup
- \steluitlijnenin}
-
-\def\stopuitlijnen
- {\par
- \egroup}
-
-\def\regellinks#1%
- {\noindent\leftline{{\strut#1}}}
-
-\def\regelrechts#1%
- {\noindent\rightline{{#1\strut}}}
-
-\def\regelmidden#1%
- {\noindent\centerline{{\strut#1}}}
-
-\def\doregelplaats#1%
- {\getvalue{regel\interfaced{#1}}}
-
-\def\dosteltolerantiein[#1]%
- {\doifinsetelse{\v!vertikaal}{#1}%
- {\processfirstactioninset
- [#1]
- [\v!zeerstreng=>\def\bottomtolerance{},
- \v!streng=>\def\bottomtolerance{.050},
- \v!soepel=>\def\bottomtolerance{.075},
- \v!zeersoepel=>\def\bottomtolerance{.100}]}%
- {\processfirstactioninset
- [#1]
- [\v!zeerstreng=>\tolerance=200,
- \v!streng=>\tolerance=1500,
- \v!soepel=>\tolerance=3000,
- \v!zeersoepel=>\tolerance=4500]}}
-
-\def\steltolerantiein%
- {\dosingleargument\dosteltolerantiein}
-
-\def\woordrechts%
- {\groupedcommand{\hfill\hbox}{\parfillskip\!!zeropoint}}
-
-%I n=Margeteksten
-%I c=\inmarge,\inlinker,\inrechter,\stelinmargein
-%I c=\margetitel,\figuurinmarge
-%I c=\oplinker
-%I
-%I Een paragraaf kan worden ingeluid met een tekst in
-%I de marge:
-%I
-%I \inmarge{tekst}
-%I \inlinker{tekst}
-%I \inrechter{tekst}
-%I
-%I Met \\ kan binnen een margetekst naar een volgende regel
-%I worden gesprongen.
-%P
-%I Het onderstaande commando kan gebruikt worden om een
-%I paragraafaanduiding in de marge te plaatsen. Het commando
-%I moet aan het begin van de paragraaf staan. Er wordt
-%I gecontroleerd of een en ander nog op de bladzijde past.
-%I
-%I \margetitel{tekst}
-%I
-%I Tussen \margetitel{tekst} en de volgende alinea mag,
-%I omwille van de overzichtelijkheid, een lege regels staan.
-%I Als dit commando wordt gebruikt na een commando als
-%I \paragraaf, kan het controlemechanisme leiden tot een
-%I ongewenste overgang naar een nieuwe bladzijde. In dat
-%I geval kan beter het volgende commando worden gebruikt.
-%I
-%I \margewoord{tekst}
-%I
-%I Dit commando komt overeen met \inmarge, alleen is bij
-%I \margewoord de lege regel toegestaan.
-%P
-%I Er kan eventueel voor {tekst} een [referentie] worden
-%I meegegeven. In dat geval kan worden verwezen naar het
-%I paginanummer waarop het margewoord staat.
-%I
-%I Als TeX twijfelt in welke marge het woord moet staan, is
-%I een tweede verwerkingsslag nodig. Als een margewoord bij
-%I herhaling verkeerd wordt geplaatst, dan kan het
-%I automatisme worden verstoord door [+] mee te geven. Een
-%I margewoord kan lager worden gezet met [laag]. Combinaties
-%I kunnen ook:
-%I
-%I \margewoord[+,laag][referentie]{woord}
-%P
-%I De wijze van weergeven kan worden ingesteld met het
-%I commando:
-%I
-%I \stelinmargein[letter=,plaats=,voor=,na=,uitlijnen=]
-%I
-%I Als plaats kan links, rechts of beide worden meegegeven. In
-%I het laatste geval hangt de plaats af van het
-%I enkel/dubbelzijdig zetten.
-%I
-%I Uitlijnen kent twee instellingen: 'ja' en 'nee'. Inhet
-%I eerste geval (default) worden de margewoorden tegen de
-%I kantlijn geplaatst.
-%P
-%I Vooruitlopend op meer commando's is er al vast het
-%I commando:
-%I
-%I \oplinker{tekst}
-%I
-%I Dit commando kan bijvoorbeeld worden gebruikt binnen
-%I een midden-uitgelijnde tekst. Het commando is nog niet
-%I definitief en robuust.
-
-% %P
-% %I Aanvullend zijn commando's beschikbaar om figuren in
-% %I de marge te plaatsen:
-% %I
-% %I \figuurinmarge{figuur}
-% %I \figuurinlinker{figuur}
-% %I \figuurinrechter{figuur}
-
-%T n=margetitel
-%T m=mar
-%T a=m
-%T
-%T \margetitel{?}
-%T
-
-\newif\iflowinmargin
-
-\def\stelinmargein%
- {\dodoubleempty\dostelinmargein}
-
-\def\dostelinmargein[#1][#2]%
- {\ifsecondargument
- \doifundefinedelse{\??im#1\c!offset}
- {\presetlocalframed
- [\??im#1]%
- \getparameters
- [\??im#1]
- [\c!kader=\v!uit,
- \c!offset=\v!overlay,
- \c!regel=1,
- \c!scheider=,
- \c!breedte=\v!ruim,
- \c!afstand=\!!zeropoint,
- \c!letter=\@@imletter,
- \c!kleur=\@@imkleur,
- \c!plaats=\@@implaats,
- \c!uitlijnen=\@@imuitlijnen,
- \c!voor=\@@imvoor,
- \c!na=\@@imna,
- #2]}
- {\getparameters[\??im#1][#2]}%
- \else
- \getparameters[\??im][#1]%
- \fi}
-
-\let\margetekstafstand = \!!zeropoint
-\def\margetekstregels {1}
-\def\margetekstnummer {0}
-\let\margetekstscheider = \empty
-
-\def\maakmargetekstblok#1#2#3#4#5#6%
- {#4\relax
- \bgroup
- \mindermeldingen
- \hsize#1\relax
- \ifnum\margetekstnummer=0
- \def\margetekstnummer{#2}%
- \fi
- \processaction
- [\getvalue{\??im\margetekstnummer\c!uitlijnen}]
- [ \v!ja=>\setvalue{\??im\margetekstnummer\c!uitlijnen}{#2},
- \v!binnen=>\setvalue{\??im\margetekstnummer\c!uitlijnen}{#2},
- \v!buiten=>\setvalue{\??im\margetekstnummer\c!uitlijnen}{#3},
- \s!default=>\setvalue{\??im\margetekstnummer\c!uitlijnen}{#2}]%
- \setbox0=\vbox\localframed
- [\??im\margetekstnummer]
- [\c!strut=\v!nee]
- {\decrement\margetekstregels
- \@@imvoor
- \doattributes{\??im\margetekstnummer}
- {\dorecurse{\margetekstregels}{\strut\\}%
- \begstrut#6\endstrut\endgraf}%
- \@@imna}%
- \ht0=\ht\strutbox
- \box0
- \egroup
- #5\relax}
-
-\def\plaatsmargetekstscheider%
- {\ifnum\margincontent>0
- \bgroup
- \dimen0=\margetekstregels\lineheight
- \advance\dimen0 by -\lineheight
- \lower\dimen0\hbox{\margetekstscheider}%
- \egroup
- \fi}
-
-\def\linkermargetekstblok#1%
- {\maakmargetekstblok
- {\linkermargebreedte}
- {\v!links}{\v!rechts}
- {\llap{\plaatsmargetekstscheider}}{\hskip\margetekstafstand}
- {#1}}
-
-\def\rechtermargetekstblok#1%
- {\maakmargetekstblok
- {\rechtermargebreedte}
- {\v!rechts}{\v!links}
- {\hskip\margetekstafstand}{\rlap{\plaatsmargetekstscheider}}
- {#1}}
-
-\def\doplacemargintext#1#2#3%
- {\strut
- \setbox0=\hbox{#1}%
- \dimen0=\ht0
- \advance\dimen0 by \dp0
- \ifdim\dimen0>\marginheight
- \global\marginheight=\dimen0
- \fi
- \setbox0=\hbox
- {#2{\hskip#3\strut\iflowinmargin\else\raise\dp\strutbox\fi\box0}}%
- \ht0=\!!zeropoint
- \dp0=\!!zeropoint
- \vadjust{\box0}}
-
-\def\doinlinker#1%
- {\doplacemargintext
- {\linkermargetekstblok{#1}\hskip\linkermargeafstand}
- \llap\!!zeropoint}
-
-\def\doinrechter#1%
- {\doplacemargintext
- {\hskip\rechtermargeafstand\rechtermargetekstblok{#1}}
- \rlap\hsize}
-
-\newcounter \nofmarginnotes
-\newif \iftrackingmarginnotes
-\newif \ifrightmargin % documenteren
-
-\definetwopasslist{\s!margin}
-
-\def\domarginreference%
- {\doglobal\increment\nofmarginnotes\relax
- \edef\writemarref%
- {\writeutilitycommand%
- {\twopassentry%
- {\s!margin}%
- {\nofmarginnotes}%
- {\noexpand\realfolio}}}%
- \writemarref}
-
-\def\dodoinmargenormal#1#2#3#4%
- {\iffirstsidefloatparagraph\geenwitruimte\fi % zo laat mogelijk
- \ifodd#1\relax
- \rightmargintrue
- #3{#4}%
- \else
- \rightmarginfalse
- #2{#4}%
- \fi}
-
-\def\doinmargenormal#1#2#3%
- {\bgroup
- \iftrackingmarginnotes
- \gettwopassdata{\s!margin}%
- \iftwopassdatafound
- \dodoinmargenormal\twopassdata#1#2{#3}%
- \else
- \dodoinmargenormal\realfolio#1#2{#3}%
- \fi
- \domarginreference
- \else
- \dodoinmargenormal\realfolio#1#2{#3}%
- \fi
- \egroup}
-
-\def\doinmargereverse#1#2#3%
- {\dodoinmargenormal\realfolio#2#1{#3}}
-
-\def\doinmarge[#1][#2][#3][#4][#5]#6%
- {\doifcommonelse{+,-,\v!laag}{#4}
- {\dodoinmarge[#1][#2][#3][#4][#5]{#6}}
- {\dodoinmarge[#1][#2][#3][][#4]{#6}}%
- \ignorespaces}
-
-\def\dodoinmarge[#1][#2][#3][#4][#5]#6%
- {\ignorespaces
- \doifinsetelse{\v!laag}{#4}
- {\lowinmargintrue}
- {\lowinmarginfalse}%
- \processaction
- [#1]
- [ \v!links=>#2{#6},
- \v!rechts=>#3{#6},
- \s!unknown=>\ifdubbelzijdig
- \doifcommonelse{+,-}{#4}
- {\doinmargereverse#2#3{#6}}
- {\doinmargenormal#2#3{#6}}%
- \else
- #2{#6}%
- \fi]%
- \rawpagereference{\s!mar}{#5}%
- \ignorespaces}
-
-\def\inlinker%
- {\indentation\doquintupleempty\doinmarge
- [\c!links][\doinlinker][\doinrechter]}
-
-\def\inrechter%
- {\indentation\doquintupleempty\doinmarge
- [\c!rechts][\doinlinker][\doinrechter]}
-
-\def\inmarge%
- {\doquintupleempty\doinmarge
- [\@@implaats][\doinlinker][\doinrechter]}
-
-\def\inanderemarge%
- {\doquintupleempty\doinmarge
- [\@@implaats][\doinrechter][\doinlinker]}
-
-\newcounter\margincontent
-
-\def\flushmargincontent% [#1][#2]#3% hier plaats 'globaal' (geen 1,2 enz)
- {\doinmarge[\@@implaats][\doinlinker][\doinrechter]} % [#1][#2]{#3}}
-
-\newdimen\marginheight
-
-\let\restoreinterlinepenalty=\relax
-
-\def\flushmargincontents% % links + rechts
- {\restoreinterlinepenalty
- \ifnum\margincontent>0
- \bgroup
- \forgetall
- \global\marginheight\!!zeropoint
- \dorecurse{\margincontent}
- {\bgroup
- \edef\margetekstafstand {\getvalue{\??im\recurselevel\c!afstand}}%
- \edef\margetekstregels {\getvalue{\??im\recurselevel\c!regel}}%
- \edef\margetekstscheider{\getvalue{\??im\recurselevel\c!scheider}}%
- \let\margetekstnummer=\recurselevel
- \getvalue{\??im\recurselevel}%
- \global\setvalue{\??im\recurselevel}{}%
- \egroup}%
- \ifdim\marginheight>\lineheight % This is something real dirty!
- \advance\marginheight by \pagetotal
- \advance\marginheight by \lineheight % a sort of bonus
- \ifdim\marginheight>\pagegoal
- \xdef\restoreinterlinepenalty%
- {\global\let\restoreinterlinepenalty\relax
- \global\interlinepenalty=\the\interlinepenalty}%
- \global\interlinepenalty=10000
- \fi
- \else % We need the above because interlinepenalties overrule vadjusted \nobreaks.
- %\vadjust
- % {\forgetall
- % \global\advance\marginheight by \lineheight
- % \global\divide\marginheight by \lineheight
- % \dorecurse{\number\marginheight}
- % {\nobreak\vskip\lineheight}%
- % \kern-\number\marginheight\lineheight}%
- \vadjust{\nobreak}%
- \fi
- \doglobal\newcounter\margincontent
- \egroup
- \fi}
-
-\def\complexmargewoord[#1][#2]#3%
- {\doglobal\increment\margincontent
- \stelinmargein[\margincontent][]%
- \global\setvalue{\??im\margincontent}%
- {\flushmargincontent[#1][#2]{#3}}}
-
-\def\margewoord%
- {\dodoubleempty\complexmargewoord}
-
-\def\margetitel%
- {\margewoord}
-
-\def\margetekst%
- {\margewoord}
-
-\def\margewoordpositie[#1]#2%
- {\ifnum#1>\margincontent
- \xdef\margincontent{#1}%
- \fi
- \stelinmargein[#1][]%
- \global\setvalue{\??im#1}%
- {\flushmargincontent[][]{#2}}}
-
-\def\oplinker#1%
- {\strut
- \vadjust
- {\mindermeldingen
- \setbox0=\vtop{\forgetall\strut#1}%
- \getboxheight\dimen0\of\box0
- \vskip-\dimen0\
- \box0}}
-
-%D \macros
-%D {inleftside,inleftmargin,inrightmargin,inrightside}
-%D {}
-%D
-%D The fast and clean way of putting things in the margin is
-%D using \type{\rlap} or \type{\llap}. Unfortunately these
-%D macro's don't handle indentation, left and right skips. We
-%D therefore embed them in some macro's that (force and)
-%D remove the indentation and restore it afterwards.
-
-\def\inleftmargin#1%
- {\pushindentation
- \llap{#1\hskip\leftskip\hskip\linkermargeafstand}%
- \popindentation
- \ignorespaces}
-
-\def\inrightmargin#1%
- {\pushindentation
- \rlap{\hskip\hsize\hskip-\rightskip\hskip\rechtermargeafstand#1}%
- \popindentation
- \ignorespaces}
-
-\def\inleftside#1%
- {\inleftmargin
- {#1\relax
- \hskip\linkermargebreedte
- \hskip\pageseparation
- \hskip\linkerrandafstand}}
-
-\def\inrightside#1%
- {\inrightmargin
- {\hskip\rechtermargebreedte
- \hskip\rechterrandafstand
- \hskip\pageseparation
- #1}}
-
-%D We want to keep things efficient and therefore only handle
-%D situations like:
-%D
-%D \startbuffer
-%D \inleftside {fine} some text \par
-%D \strut \inleftmargin {fine} some text \par
-%D \noindent \inrightmargin {fine} some text \par
-%D \noindent \strut \inrightside {fine} some text \par
-%D \stopbuffer
-%D
-%D \typebuffer
-%D
-%D which looks like:
-%D
-%D \bgroup
-%D \haalbuffer
-%D \parindent 30pt
-%D \haalbuffer
-%D \egroup
-
-%D \macros
-%D {pushindentation,popindentation}
-%D
-%D The pushing and popping is done by:
-
-\newbox\indentationboxA
-\newbox\indentationboxB
-
-\def\pushindentation%
- {\bgroup
- \ifhmode
- \unskip
- \setbox\indentationboxA=\lastbox % get \strut if present
- \unskip
- \setbox\indentationboxB=\lastbox % get \indent generated box
- \unskip
- \else
- \hskip\!!zeropoint % switch to horizontal mode
- \unskip
- \setbox\indentationboxA=\lastbox % get \indent generated box
- \setbox\indentationboxB=\box\voidb@x
- \fi}
-
-\def\popindentation%
- {\box\indentationboxB\box\indentationboxA % put back the boxes
- \egroup}
-
-%D The only complication lays in \type{\strut}. In \PLAIN\
-%D \TEX\ a \type{\strut} is defined as:
-%D
-%D \starttypen
-%D \def\strut%
-%D {\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
-%D \stoptypen
-%D
-%D But what is a \type{\strut}? Normally it's a rule of width
-%D zero, but when made visual, it's a rule and a negative skip.
-%D The mechanism for putting things in the margins described
-%D here cannot handle this situation very well. One
-%D characteristic of \type{\strut} is that the \type{\unhcopy}
-%D results in entering horizontal mode, which in return leads
-%D to some indentation.
-%D
-%D To serve our purpose a bit better, the macro \type{\strut}
-%D can be redefined as:
-%D
-%D \starttypen
-%D \def\strut%
-%D {\relax\ifmmode\else\hskip0pt\fi\copy\strutbox}
-%D \stoptypen
-%D
-%D Or more compatible:
-%D
-%D \starttypen
-%D \def\strut%
-%D {\relax\ifmmode
-%D \copy\strutbox
-%D \else
-%D \bgroup\setbox\strutbox=\normalhbox{\box\strutbox}\unhcopy\strutbox\egroup
-%D \fi}
-%D \stoptypen
-%D
-%D In \CONTEXT\ however we save some processing time by putting
-%D an extra \type{\hbox} around the \type{\strutbox}.
-
-% dit zijn voorlopig lokale commando's
-
-\def\woordinlinker {\inlinkermarge}
-\def\woordinrechter{\inrechtermarge}
-
-\def\woordinmarge%
- {\doquintupleempty\doinmarge
- [\@@implaats][\woordinlinker][\woordinrechter]}
-
-%I n=Paginanummer
-%I c=\stelpaginanummerin,\stelsubpaginanummerin
-%I
-%I Het paginanummer kan worden ingesteld met het commando:
-%I
-%I \stelpaginanummerin[nummer=,status=]
-%I
-%I Het nummeren kan gedurende een of meerdere pagina's worden
-%I stilgezet door in plaats van een nummer start, stop of
-%I handhaaf mee te geven.
-%I
-%I Het paginanummer is oproepbaar met:
-%I
-%I \paginanummer
-%I
-%I en het totaal aantal paginanummers met:
-%I
-%I \totaalaantalpaginas
-%P
-%I Er zijn subnummers beschikbaar. De wijze van nummeren
-%I wordt ingesteld met:
-%I
-%I \stelsubpaginanummerin[wijze=,status=]
-%I
-%I De status kan 'stop', 'start' of 'geen' zijn. In het
-%I laatste geval wordt gewoon doorgenummerd, maar wordt het
-%I nummer niet geplaatst.
-%I
-%I Standaard wordt 'perdeel' genummerd. De subnummers zijn
-%I oproepbaar met:
-%I
-%I \subpaginanummer
-%I \aantalsubpaginas
-
-% Standaard is \count0 in Plain TeX de paginateller. Omwille
-% van de afhandeling van lokaal nummeren, definieren we
-% echter een eigen nummer.
-
-\definieernummer
- [\s!page]
- [\c!conversie=\@@nmconversie,
- \c!wijze=\@@nmwijze,
- \c!status=\@@nmstatus,
- \c!start=1]
-
-\def\dostelpaginanummerin[#1]%
- {\getparameters
- [\??pn]
- [\c!status=\v!start,
- #1]%
- \doifinstringelse{\c!nummer}{#1}
- {\setnummer[\s!page]{\@@pnnummer}%
- \setuserpageno{\ruwenummer[\s!page]}}%
- {}}
-
-\def\stelpaginanummerin%
- {\dosingleargument\dostelpaginanummerin}
-
-\def\verlaagpaginanummer%
- {\doif{\@@pnstatus}{\v!start}
- {\verlaagnummer[\s!page]%
- \setuserpageno{\ruwenummer[\s!page]}}}
-
-\def\verhoogpaginanummer%
- {\processaction
- [\@@pnstatus]
- [ \v!start=>{\verhoognummer[\s!page]%
- \setuserpageno{\ruwenummer[\s!page]}},
- \v!handhaaf=>{\doassign[\??pn][\c!status=\v!start]}]}
-
-\def\checkpagecounter%
- {\checknummer{\s!page}}
-
-%I n=Pagina
-%I c=\pagina
-%I
-%I Het volgende commando kan worden gebruikt om pagina's af
-%I te dwingen of blokkeren:
-%I
-%I \pagina[instelling]
-%I
-%I Waarbij als instelling kan worden gegeven:
-%I
-%I ja een geforceerde paginaovergang met \vfill
-%I opmaak een geforceerde paginaovergang zonder \vfill
-%I nee bij voorkeur geen paginaovergang
-%I voorkeur bij voorkeur de paginaovergang hier (3)
-%I grotevoorkeur bij voorkeur de paginaovergang hier (7)
-%I links ga naar een linker pagina
-%I rechts ga naar een rechter pagina
-%I leeg een lege pagina
-%I blokkeer blokkeer ja ... grotevoorkeur (1 pagina)
-%I reset het blokkering ja ... grotevoorkeur op
-%I
-%I Als geen instelling wordt meegegeven (\pagina), wordt een
-%I overgang geforceerd. Als een nummer wordt meegegeven, wordt
-%I naar de opgegeven pagina gegaan.
-
-\newif\ifpaginageblokkeerd
-\paginageblokkeerdfalse
-
-\def\testpagina[#1][#2]%
- {\global\!!doneafalse
- \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
- \global\!!doneatrue
- \fi
- \else
- \goodbreak
- \fi
- \fi}
-
-\let\resetcurrentsectionmarks=\relax
-
-% was: \resetsectionmarks[\firstsection], zie \handelpaginaaf
-
-\def\complexpagina[#1]%
- {\flushfootnotes
- \processaction
- [#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!nee=>\ifpaginageblokkeerd\else
- \nobreak
- \fi,
- \v!voorkeur=>{\ifpaginageblokkeerd\else
- \ifbinnenkolommen
- \goodbreak
- \else
- \testpagina[3][\!!zeropoint]%
- \fi
- \fi},
- \v!grotevoorkeur=>{\ifpaginageblokkeerd\else
- \ifbinnenkolommen
- \goodbreak
- \else
- \testpagina[5][\!!zeropoint]%
- \fi
- \fi},
- \v!leeg=>{\ejectinsert
- \ejectpage
- \doifnotvalue{\??tk\v!hoofd\v!tekst\c!status}{\v!stop}
- {\stelhoofdin[\c!status=\v!leeg]}%
- \doifnotvalue{\??tk\v!voet\v!tekst\c!status}{\v!stop}
- {\stelvoetin[\c!status=\v!leeg]}%
- \hardespatie
- \vfill
- \ejectpage},
- \v!links=>{\ejectinsert
- \superejectpage
- \doifbothsidesoverruled
- \orsideone
- \resetcurrentsectionmarks
- \hardespatie
- \vfill
- \ejectpage
- \orsidetwo
- \od},
- \v!rechts=>{\ejectinsert
- \superejectpage
- \doifbothsidesoverruled
- \orsideone
- \orsidetwo
- \resetcurrentsectionmarks
- \hardespatie
- \vfill
- \ejectpage
- \od},
- \v!viertal=>{\ifdubbelzijdig
- \!!counta=\realpageno
- \!!countb=\realpageno
- \divide\!!counta by 4\relax
- \divide\!!countb by 2\relax
- \ifnum\!!counta=\!!countb\relax
- \else
- \pagina
- \pagina[\v!leeg]%
- \pagina[\v!leeg]%
- \fi
- \fi},
- \v!laatste=>{\ejectinsert
- \superejectpage
- \doifbothsidesoverruled
- \naastpagina
- \orsideone
- \orsidetwo
- \stelvoetin[\c!status=\v!leeg]%
- \stelhoofdin[\c!status=\v!leeg]%
- \hardespatie
- \vfill
- \ejectpage
- \od},
- \s!unknown=>\doifnumberelse{#1}
- {\ejectinsert
- \ejectpage
- \loop
- \ifnum\userpageno<#1\relax
- \hardespatie
- \vfill
- \ejectinsert
- \ejectpage
- \repeat}
- {}]}
-
-\def\simplepagina%
- {\complexpagina[\v!ja]}
-
-\def\pagina%
- {\complexorsimple{pagina}}
-
-\def\resetpagina%
- {\global\paginageblokkeerdfalse}
-
-% \getpagestatus
-% \ifrightpage als odd/enkelzijdig
-
-\newif\ifrightpage \rightpagetrue
-
-\newcounter \nofpagesets
-
-\definetwopasslist{\s!page}
-
-\def\dopagesetreference%
- {\doglobal\increment\nofpagesets\relax
- \edef\writepagref%
- {\writeutilitycommand%
- {\twopassentry%
- {\s!page}%
- {\nofpagesets}%
- {\noexpand\realfolio}}}%
- \writepagref}
-
-\def\getpagestatus% hierboven gebruiken
- {\ifdubbelzijdig
- \gettwopassdata{\s!page}%
- \iftwopassdatafound \else
- \let\twopassdata=\realpageno
- \fi
- \ifodd\twopassdata
- \global\rightpagetrue
- \else
- \global\rightpagefalse
- \fi
- \dopagesetreference
- \else
- \global\rightpagetrue
- \fi}
-
-%I n=Hoofdteksten
-%I c=\stelnummeringin
-%I c=\stelhoofdtekstenin,\stelvoettekstenin,\stelhoofdin,\stelvoetin
-%I c=\stelboventekstenin,\stelondertekstenin,\stelbovenin,\stelonderin
-%I
-%I Zogeheten hoofd- en/of voetteksten kan men instellen
-%I met:
-%I
-%I \stelhoofdtekstenin [linker tekst] [rechter tekst]
-%I \stelvoettekstenin [linker tekst] [rechter tekst]
-%I
-%I Bij dubbelzijdig zetten worden de linker en rechter
-%I teksten gespiegeld.
-%I
-%I In plaats van een tekst kunnen de woorden 'hoofdstuk',
-%I 'paragraaf' en 'deel' worden meegegeven. Ook kan het
-%I woord 'datum' worden meegegeven.
-%P
-%I Als men op de even en oneven pagina's een andere tekst
-%I wil hebben, dan kan men een tweede paar meegeven. In dat
-%I geval zijn er dus vier argumenten: [][][][].
-%I
-%I Als men in de marge of randen teksten wil, kan men dat
-%I direct achter het commando aangeven:
-%I
-%I \stelhoofdtekstenin [lokatie] [links] [rechts]
-%I \stelvoettekstenin [lokatie] [links] [rechts]
-%I
-%I Mogelijke lokaties zijn: tekst, marge en rand.
-%P
-%I In de tekst opgenomen commando's kunnen soms voor
-%I problemen zorgen. Commando's kan men daarom laten
-%I voorafgaan \geentest, bijvoorbeeld:
-%I
-%I \stelvoettekstenin[\geentest\lastigcommando][]
-%I
-%I Meestal geven commando's geen problemen. Wel moet men
-%I oppassen met []. Accolades zijn hiervoor de oplossing:
-%I
-%I \stelvoettekstenin[{{\huidigedatum[mm,/,jj]}}][]
-%I
-%I of
-%I
-%I \stelvoettekstenin[\geentest{\huidigedatum[mm,/,jj]}][]
-%P
-%I De wijze van nummeren wordt gedefinieerd met:
-%I
-%I \stelnummeringin[variant=,plaats=,conversie=,
-%I links=,rechts=,tekst=,tekstscheider=,nummerscheider,
-%I wijze=,blok=,status=,letter=,<sectie>nummer=,commando=]
-%I
-%I De plaats van het nummer hangt af van het eerste
-%I meegegeven argument:
-%I
-%I enkelzijdig dubbelzijdig
-%I
-%I links, rechts kantlijn (links of rechts)
-%I marge marge (links of rechts)
-%I midden midden
-%I inlinker, inrechter inlinker, inrechter
-%P
-%I Met plaats geeft men tevens aan of het nummer in het hoofd
-%I of in de voet komt {hoofd,midden}. Met 'nummerscheider' geeft
-%I men aan wat er binnen een (eventueel) samengestelde nummer
-%I als scheider wordt gezet, standaard: 2-3. Met 'tekstscheider'
-%I geeft men aan wat er tussen het paginanummer en een hoofd- of
-%I voettekst wordt gezet (in geval van plaatsen op de marge).
-%I
-%I Liefhebbers kunnen aan 'commando' een eigen commando om het
-%I nummer te zetten meegeven. Dit eigen commando krijgt als
-%I argument het paginanummer mee.
-%I
-%I Het is mogelijk een dubbelzijdige tekst met enkelzijdige
-%I marges te zetten:
-%I
-%I \stelnummeringin[variant={enkelzijdig,dubbelzijdig}]
-%I
-%I In dit geval worden de hoofd- en voetregels dus wel
-%I gespiegeld en hebben commando's als \pagina[rechts] betekenis.
-%P
-%I Als 'conversie' is mogelijk: cijfers, letters, Letters,
-%I romeins en Romeins. Als 'status' kan 'start' of 'stop'
-%I worden meegegeven. Op deze manier kan het aangeven van
-%I een paginanummer worden aan- en uitgezet.
-%I
-%I Er kan per sectienummer (deelnummer, hoofdstuknummer enz.)
-%I worden ingesteld of het zichtbaar is ('ja' of 'nee').
-%I
-%I Mogelijke wijzen van nummeren zijn: perdeel of perhoofdstuk.
-%P
-%I Hoofd- en voetregels blijven achterwege of juist niet na het
-%I commando:
-%I
-%I \geenhoofdenvoetregels
-%I \welhoofdenvoetregels
-%I
-%I of na:
-%I
-%I \stelhoofdin[lokatie][linkerletter=,rechterletter=,
-%I letter=,linkerbreedte=,rechterbreedte=,voor=,na=]
-%I \stelvoetin[locatie][linkerletter=,rechterletter=,
-%I letter=,linkerbreedte=,rechterbreedte=,voor=,na=]
-%I
-%I mogelijke lokaties zijn: tekst, marge en rand. Als [lokatie]
-%I wordt wegelaten, dan wordt tekst verondersteld.
-%I
-%I Als de breedte wordt ingesteld, dan wordt de weergegeven
-%I tekst zonodig ingekort en gevolgd door ...
-%P
-%I Het is mogelijk het plaatsen van hoofd- en voetregels
-%I stop te zetten:
-%I
-%I \stelhoofdin[status=]
-%I \stelvoetin[status=]
-%I
-%I Aan status kunnen de olgende aarden worden toegekend:
-%I
-%I geen de kop/voet vervalt (de tekst schuift omhoog)
-%I leeg de kop/voet blijft 1 pagina leeg
-%I hoog de kop/voet vervalt 1 pagina leeg (idem)
-%I normaal de kop/voet wordt gezet
-%I stop de kop/voet blijft vanaf nu leeg
-%I start de kop/voet wordt vanaf nu weer gevuld
-%I
-%I Het is ook mogelijk bij \stelhoofdin en \stelvoetin als
-%I parameters [voor=] en [na=] mee te geven. De toegekende
-%I commando's worden in dat geval voor en na het hoofd en de
-%I de voet uitgevoerd.
-%P
-%I Boven het hoofd en onder de voet is ook ruimte. Deze kan
-%I worden gedefinieerd met vergelijkbare commando's:
-%I
-%I \stelboventekstenin[...][...][...]
-%I \stelondertekstenin[...][...][...]
-%I
-%I \stelbovenin[...]
-%I \stelonderin[...]
-%I
-%I \geenbovenenonderregels
-%I \welbovenenonderregels
-
-% De onderstaande macro's lijken op het eerste gezicht vrij
-% ingewikkeld en omslachtig. Dit is het gevolg van een
-% dubbel optioneel zijn van argumenten: zowel het eerste als
-% de twee laatste argumenten zijn optioneel. Dit is mede het
-% gevolg van een uitbreiding naar marges en randen, waarbij
-% upward-compatibiliteit zwaar heeft gewogen.
-
-\def\dostellayouttekstin[#1][#2][#3]%
- {\ifthirdargument
- \getparameters[\??tk#1#2][#3]%
- \else
- \getparameters[\??tk#1\v!tekst][#2]%
- \fi
- \calculatevsizes}
-
-\def\stelbovenin {\dotripleempty\dostellayouttekstin[\v!boven]}
-\def\stelhoofdin {\dotripleempty\dostellayouttekstin[\v!hoofd]}
-\def\steltekstin {\dotripleempty\dostellayouttekstin[\v!tekst]}
-\def\stelvoetin {\dotripleempty\dostellayouttekstin[\v!voet]}
-\def\stelonderin {\dotripleempty\dostellayouttekstin[\v!onder]}
-
-\letvalue{\??tk\v!boven\v!tekst\c!status}=\v!normaal
-\letvalue{\??tk\v!hoofd\v!tekst\c!status}=\v!normaal
-\letvalue{\??tk\v!tekst\v!tekst\c!status}=\v!normaal
-\letvalue{\??tk\v!voet \v!tekst\c!status}=\v!normaal
-\letvalue{\??tk\v!onder\v!tekst\c!status}=\v!normaal
-
-\def\geenhoofdenvoetregels%
- {\stelhoofdin[\c!status=\v!leeg]%
- \stelvoetin[\c!status=\v!leeg]}
-
-\def\geenbovenenonderregels%
- {\stelbovenin[\c!status=\v!leeg]%
- \stelonderin[\c!status=\v!leeg]}
-
-\def\dolimitateteksten#1#2%
- {\limitatetext{#2}{\getvalue{#1\c!breedte}}{}}
-
-\def\doteksten#1#2#3#4%
- {\bgroup
- \convertargument#4\to\ascii
- \doifsomething{\ascii}
- {\doattributes{#1#2#3}
- {\doifvalue{#1\v!tekst\c!strut}{\v!ja}{\setstrut\strut}% hier!
- \doifdefinedelse{\??mk\ascii\c!koppeling} % brrr
- {\dolimitateteksten{#1#2#3}{\haalmarkering[\ascii][\v!eerste]}}
- {\ConvertConstantAfter\doifelse{\v!paginanummer}{#4}
- {\@@plaatspaginanummer}
- {\ConvertConstantAfter\doifelse{\v!datum}{#4}
- {\currentdate[\v!dag,\v!maand,\v!jaar]}
- {\opeenregel\dolimitateteksten{#1#2#3}{#4}}}}}}%
- \egroup}
-
-\def\dodoteksten#1#2#3#4#5#6%
- {\doifonevenpaginaelse
- {\doteksten{#1}{#2}{#3}{#4}}
- {\doteksten{#1}{#2}{#5}{#6}}}
-
-\def\dodododoteksten[#1][#2][#3][#4][#5][#6]%
- {\ifsixthargument
- \setvalue{\??tk#1#2\c!linkertekst}%
- {\dodoteksten{\??tk#1}{#2}{\c!linker}{#3}{\c!rechter}{#6}}%
- \setvalue{\??tk#1#2\c!rechtertekst}%
- {\dodoteksten{\??tk#1}{#2}{\c!rechter}{#4}{\c!linker}{#5}}%
- \else\iffifthargument
- \setvalue{\??tk#1\v!tekst\c!linkertekst}%
- {\dodoteksten{\??tk#1}{\v!tekst}{\c!linker}{#2}{\c!rechter}{#5}}%
- \setvalue{\??tk#1\v!tekst\c!rechtertekst}%
- {\dodoteksten{\??tk#1}{\v!tekst}{\c!rechter}{#3}{\c!linker}{#4}}%
- \else\iffourthargument
- \setvalue{\??tk#1#2\c!linkertekst}%
- {\dodoteksten{\??tk#1}{#2}{\c!linker}{#3}{\c!linker}{#3}}%
- \setvalue{\??tk#1#2\c!rechtertekst}%
- {\dodoteksten{\??tk#1}{#2}{\c!rechter}{#4}{\c!rechter}{#4}}%
- \else
- \setvalue{\??tk#1\v!tekst\c!linkertekst}%
- {\dodoteksten{\??tk#1}{\v!tekst}{\c!linker}{#2}{\c!linker}{#2}}%
- \setvalue{\??tk#1\v!tekst\c!rechtertekst}%
- {\dodoteksten{\??tk#1}{\v!tekst}{\c!rechter}{#3}{\c!rechter}{#3}}%
- \fi\fi\fi}
-
-\def\stelboventekstenin {\dosixtupleempty\dodododoteksten[\v!boven]}
-\def\stelhoofdtekstenin {\dosixtupleempty\dodododoteksten[\v!hoofd]}
-\def\stelteksttekstenin {\dosixtupleempty\dodododoteksten[\v!tekst]}
-\def\stelvoettekstenin {\dosixtupleempty\dodododoteksten[\v!voet]}
-\def\stelondertekstenin {\dosixtupleempty\dodododoteksten[\v!onder]}
-
-\def\@@plaatspaginanummer%
- {\doif{\@@nmstatus}{\v!start}%
- {{\@@nmcommando{\doattributes{\??nm}{\volledigepaginanummer}}}}}
-
-\def\@@nmpre#1{\setbox0=\hbox{#1}\ifdim\wd0=\!!zeropoint\else\unhbox0\tfskip\fi}
-\def\@@nmpos#1{\setbox0=\hbox{#1}\ifdim\wd0=\!!zeropoint\else\tfskip\unhbox0\fi}
-
-\def\dodoplaatsteksten#1#2#3#4#5#6% \hsize toegevoegd
- {\hbox
- {\hbox to \linkerrandbreedte
- {\hsize\linkerrandbreedte
- \hss\getvalue{\??tk#1\v!rand#2}}%
- \hskip\linkerrandafstand
- \hskip\pageseparation
- \hbox to \linkermargebreedte
- {\hsize\linkermargebreedte
- \hsmash{\hbox to \linkermargebreedte
- {\hss\getvalue{\??tk#1\v!marge#2}}}%
- \hsmash{\hbox to \linkermargebreedte
- {\hss#5{\??tk#1\v!marge\c!margetekst}}}%
- \hss}% let op: \smashed
- \hskip\linkermargeafstand
- \hbox to \zetbreedte
- {\hsize\zetbreedte
- \hsmash{\hbox to \zetbreedte
- {\@@nmpre{#5{\??tk#1\v!tekst\c!kantlijntekst}}%
- \getvalue{\??tk#1\v!tekst#2}\hss}}%
- \hsmash{\hbox to \zetbreedte
- {\hss\getvalue{\??tk#1\v!tekst#3}\hss}}%
- \hsmash{\hbox to \zetbreedte
- {\hss\getvalue{\??tk#1\v!tekst#4}%
- \@@nmpos{#6{\??tk#1\v!tekst\c!kantlijntekst}}}}%
- \hss}%
- \hskip\rechtermargeafstand
- \hbox to \rechtermargebreedte
- {\hsize\rechtermargebreedte
- \hsmash{\hbox to \rechtermargebreedte
- {\getvalue{\??tk#1\v!marge#4}\hss}}%
- \hsmash{\hbox to \rechtermargebreedte
- {#6{\??tk#1\v!marge\c!margetekst}\hss}}%
- \hss}% let op: \smashed
- \hskip\pageseparation
- \hskip\rechterrandafstand
- \hbox to \rechterrandbreedte
- {\hsize\rechterrandbreedte
- \getvalue{\??tk#1\v!rand#4}\hss}}}
-
-\def\doplaatslayoutregel#1#2%
- {\ifdim#2>\!!zeropoint\relax % prevents pagenumbers when zero height
- \goleftonpage
- \hbox
- {\setbox0=\vbox to #2
- {\forgetall
- \vsize#2
- \normalbaselines
- \def\\{ \ignorespaces}%
- \def\crlf{ \ignorespaces}%
- \getvalue{\??tk#1\v!tekst\c!voor}%
- \doifbothsidesoverruled
- \dodoplaatsteksten#1\c!linkertekst\c!middentekst\c!rechtertekst
- \gobbleoneargument\getvalue
- \orsideone
- \dodoplaatsteksten#1\c!linkertekst\c!middentekst\c!rechtertekst
- \gobbleoneargument\getvalue
- \orsidetwo
- \dodoplaatsteksten#1\c!rechtertekst\c!middentekst\c!linkertekst
- \getvalue\gobbleoneargument
- \od
- \getvalue{\??tk#1\v!tekst\c!na}%
- \kern\!!zeropoint}% keep the \dp, beware of \vtops, never change this!
- \dp0=\!!zeropoint
- \box0}%
- \fi}
-
-% \stelhoofdin[status=normaal] \titel{NORMAAL} \dorecurse{8}{\input tufte} \pagina
-% \stelhoofdin[status=hoog] \titel{HOOG} \dorecurse{8}{\input tufte} \pagina
-% \stelhoofdin[status=leeg] \titel{LEEG} \dorecurse{8}{\input tufte} \pagina
-% \stelhoofdin[status=geen] \titel{GEEN} \dorecurse{8}{\input tufte} \pagina
-% \stelhoofdin[status=stop] \titel{STOP} \dorecurse{8}{\input tufte} \pagina
-
-\def\plaatslayoutregel#1#2% % handelt o.b.v. tekst
- {\ExpandFirstAfter\processaction
- [\getvalue{\??tk#1\v!tekst\c!status}]
- [ \v!geen=>,
- \v!hoog=>, % is reset later on
- \v!start=>\setgvalue{\??tk#1\v!tekst\c!status}{\v!normaal}%
- \doplaatslayoutregel{#1}{#2},
- \v!stop=>\vskip#2\relax,
- \v!leeg=>\setgvalue{\??tk#1\v!tekst\c!status}{\v!normaal}%
- \vskip#2\relax,
- \v!normaal=>\doplaatslayoutregel{#1}{#2},
- \s!default=>\doplaatslayoutregel{#1}{#2},
- \s!unknown=>\doplaatslayoutregel{#1}{#2}]}
-
-\def\resetlayoutregel#1%
- {\doifvalue{\??tk#1\v!tekst\c!status}{\v!hoog}
- {\setgvalue{\??tk#1\v!tekst\c!status}{\v!normaal}% ! global
- \doglobal\calculatevsizes
- \global\newlogostrue
- \global\newbackgroundtrue}}
-
-\def\resetlayoutregels%
- {\resetlayoutregel\v!boven
- \resetlayoutregel\v!hoofd
- \resetlayoutregel\v!tekst
- \resetlayoutregel\v!voet
- \resetlayoutregel\v!onder}
-
-\def\plaatsbovenregel {\plaatslayoutregel\v!boven\bovenhoogte}
-\def\plaatshoofdregel {\plaatslayoutregel\v!hoofd\hoofdhoogte}
-\def\plaatstekstregel {\plaatslayoutregel\v!tekst\teksthoogte}
-\def\plaatsvoetregel {\plaatslayoutregel\v!voet\voethoogte}
-\def\plaatsonderregel {\plaatslayoutregel\v!onder\onderhoogte}
-
-\def\gettextboxes% elders weghalen
- {\bgroup
- \setbox0=\vbox
- {\mindermeldingen
- \calculatereducedvsizes
- \swapmargins
- \forgetall
- \offinterlineskip
- \vskip-\bovenhoogte
- \vskip-\bovenafstand
- \plaatsbovenregel
- \vskip\bovenafstand
- \plaatshoofdregel
- \vskip\hoofdafstand
- \plaatstekstregel
- \vskip\voetafstand
- \plaatsvoetregel
- \vskip\onderafstand
- \plaatsonderregel
- \plaatsversieaanduiding
- \vfilll}%
- \smashbox0
- \box0
- \egroup}
-
-\def\@@plaatspaginascheider%
- {\doif{\@@nmstatus}{\v!start}%
- {\@@nmtekstscheider}}
-
-% ook rand ondersteunen
-
-\def\dodosetpagenumberlocation#1#2%
- {\ExpandFirstAfter\processallactionsinset
- [\@@nmplaats]
- [ \v!links=>\setvalue{\??tk#1\v!tekst\c!linkertekst}{#2},
- \v!rechts=>\setvalue{\??tk#1\v!tekst\c!rechtertekst}{#2},
- \v!midden=>\setvalue{\??tk#1\v!tekst\c!middentekst}{#2},
- \v!inlinker=>\setvalue{\??tk#1\v!marge\c!linkertekst}{#2},
- \v!inrechter=>\setvalue{\??tk#1\v!marge\c!rechtertekst}{#2},
- \v!inmarge=>\setvalue{\??tk#1\v!marge\ifdubbelzijdig\c!margetekst\else\c!rechtertekst\fi}{#2},
- \v!marge=>\setvalue{\??tk#1\v!marge\ifdubbelzijdig\c!margetekst\else\c!rechtertekst\fi}{#2},
- \v!opmarge=>\setvalue{\??tk#1\v!tekst\c!kantlijntekst}{#2},
- \v!kantlijn=>\setvalue{\??tk#1\v!tekst\c!kantlijntekst}{#2}]}
-
-\def\dosetpagenumberlocation#1%
- {\ExpandBothAfter\doifinsetelse{\v!hoofd}{\@@nmplaats,\@@nmin}
- {\dodosetpagenumberlocation{\v!hoofd}{#1}}
- {\dodosetpagenumberlocation{\v!voet}{#1}}}
-
-\def\@@nmin {} % kan vervallen (upward compatibility)
-\def\@@nmplaats {} % mag {plaats, in} zijn
-
-\def\dostelnummeringin[#1]%
- {\dosetpagenumberlocation\relax
- \getparameters[\??nm][#1]%
- \preparepaginaprefix{\??nm}%
- \enkelzijdigfalse
- \dubbelzijdigfalse
- \ExpandFirstAfter\processallactionsinset
- [\@@nmvariant]
- [ \v!enkelzijdig=>\enkelzijdigtrue,
- \v!dubbelzijdig=>\dubbelzijdigtrue]%
- \ifdubbelzijdig
- \trackingmarginnotestrue
- \else
- \trackingmarginnotesfalse
- \fi
- \dosetpagenumberlocation\@@plaatspaginanummer
- \global\newbackgroundtrue
- \global\newlogostrue}
-
-\def\stelnummeringin%
- {\dosingleargument\dostelnummeringin}
-
-\def\preparepaginaprefix#1%
- {\def\dopreparepaginaprefix##1%
- {\doifvalue{#1##1\c!nummer}{\v!ja}
- {\setvalue{#1\getvalue{\??by##1}\c!nummer}{\v!ja}}}%
- \processcommacommand[\@@kolijst]\dopreparepaginaprefix}
-
-\def\dopaginaprefix#1#2%
- {\doifelsevalue{#1#2\c!nummer}{\v!ja}%
- {\@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\paginaprefix#1[#2::#3::#4]% kan wat sneller ####1:0:
- {\bgroup
- \edef\postprefix{#3}%
- \def\donexttrackcommando##1%
- {\dopaginaprefix{#1}{##1}%
- \donexttracklevel{##1}}%
- \donexttrackcommando\firstsection
- \egroup}
-
-\def\@@plaatspaginanummer%
- {\doif{\@@nmstatus}{\v!start}%
- {{\@@nmcommando{\doconvertfont{\@@nmletter}{\volledigepaginanummer}}}}}
-
-\def\@@plaatspaginascheider%
- {\doif{\@@nmstatus}{\v!start}%
- {\@@nmtekstscheider}}
-
-\def\userfolio% naast realfolio
- {\nummer[\s!page]}
-
-\def\paginanummer%
- {\userfolio}
-
-\def\volledigepaginanummer% alleen voor paginanummers !!
- {\@@nmlinks
- \def\donexttrackcommando##1%
- {\doifvalue{\??nm##1\c!nummer}{\v!ja}
- {\ifnum\countervalue{\??se##1}>0\relax
- \getvalue{##1\c!nummer}\@@nmnummerscheider
- \fi}%
- \doifsomething{\@@nmtekst}
- {\@@nmtekst\@@nmnummerscheider}%
- \donexttracklevel{##1}}%
- \donexttrackcommando{\firstsection}%
- \paginanummer
- \@@nmrechts}
-
-\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.
-
-% Het commando \newmark\markering genereert
-%
-% \markering
-%
-% en het commando \getmarks\markering genereert
-%
-% \topmarkering
-% \botmarkering
-% \firstmarkering
-%
-% voor 'interne' doeleinden zijn beschikbaar:
-%
-% \prefetchmark[naam]
-% \fetchmark[naam][plaats]
-
-% nog expansie in hoofdmarkering
-
-\def\hoofdmarkering#1%
- {\getvalue{\??mk#1\c!koppeling}}
-
-\def\dodoresetmarkering#1%
- {\expandafter\newmark\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}
-
-\setvalue{\??mk\v!vorige}{top}
-\setvalue{\??mk\v!eerste}{first}
-\setvalue{\??mk\v!laatste}{bot}
-
-\def\dododefinieermarkering[#1][#2]%
- {\stelmarkeringin[#1]
- [% \c!expansie=\v!nee, scheelt weer een macro
- \c!status=\v!start]%
- \ontkoppelmarkering[#1]% d.w.z. geen koppeling met secties
- \setevalue{\??mk#1\c!koppeling}{#2}%
- \expandafter\newmark\csname\??mk#2\endcsname
- %\setgvalue{\??mk#2\s!check}{0}%
- \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\prefetchmark[#1]%
- {%\ifnum\getvalue{\??mk\hoofdmarkering{#1}\s!check}<\realpageno
- % \setxvalue{\??mk\hoofdmarkering{#1}\s!check}{\the\realpageno}%
- % \expandafter\getmarks\csname\??mk\hoofdmarkering{#1}\endcsname % mag maar eenmaal per pagina
- }%\fi}
-
-\def\fetchmark[#1][#2]%
- {\getvalue{\getvalue{\??mk#2}\??mk\hoofdmarkering{#1}}}
-
-\def\dohaalmarkering[#1][#2]%
- {\doifvalue{\??mk#1\c!status}{\v!start}
- {\bgroup
- %\prefetchmark[#1]%
- \def\geenmarkering##1{\onbekend\ }%
- \doifelsenothing{#2}
- {\fetchmark[#1][\v!eerste]}
- {\fetchmark[#1][#2]}%
- \egroup}}
-
-\def\haalmarkering%
- {\dodoubleargument\dohaalmarkering}
-
-\def\domarkeer[#1]#2%
- {\bgroup
- \doifelsevalue{\??mk#1\c!expansie}{\v!ja}
- {\expandmarkstrue}
- {\expandmarksfalse}%
- \getvalue{\??mk\hoofdmarkering{#1}}{#2}%
- \egroup}
-
-\def\markeer%
- {\dosingleargument\domarkeer}
-
-%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{}
-
-\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}
-
-\def\dostelsectiein[#1][#2]%
- {\getparameters[\??se#1][#2]
- \doifelsevalue{\??se#1\c!vorige\c!nummer}{\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{\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!vorige\c!nummer=\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}}}
-
-% Omdat een markering kan worden herdefinieerd moeten we
-% eerst testen of er wel een keten||afhankelijkheid is.
-
-\def\resetsectionmarks[#1]%
- {\ExpandFirstAfter\doifdefinedelse{\??se#1}
- {\def\donexttrackcommando##1%
- {\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
-
-\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%
- {\bgroup
- \doifelse{#1}{\v!vorige}
- {\global\alllevelstrue
- \xdef\currentlevel{}%
- \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
- \xdef\currentlevel{}}
- {\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
- \xdef\currentlevel{}%
- \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}
-
-\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}
-
-\def\dodosetlocalsectieblok[#1#2][#3]%
- {\def\@@sectiontype{#1}%
- \def\@@sectieblok{#1#2}%
- \def\@@sectieblokken{#3}}
-
-\def\dosetlocalsectieblok#1#2%
- {\@EA\dodosetlocalsectieblok\@EA[#1][#2]}
-
-\def\doaroundsectieblok#1%
- {\doifvaluesomething{\??sb#1\c!pagina}
- {\ExpandFirstAfter\pagina[\getvalue{\??sb#1\c!pagina}]}%
- \resetsectioncounters[\firstsection]%
- \resetsectionmarks[\firstsection]}
-
-\def\dostartsectieblok#1#2%
- {\begingroup
- \doaroundsectieblok{#1}%
- \dosetlocalsectieblok{#1}{#2}%
- \expandafter\csname#2true\endcsname
-\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}
-
-\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
- \setvalue{\??sb#1}%
- {\dosetlocalsectieblok{#1}{#2}}%
- \setvalue{\e!start#2}%
- {\dostartsectieblok{#1}{#2}}%
- \setvalue{\e!stop#2}%
- {\dostopsectieblok}}
-
-\def\definieersectieblok%
- {\dotripleargument\dodefinieersectieblok}
-
-\def\sectiebloklabel#1%
- {\@EA\ifx\csname#1\@@sectieblok\c!label\endcsname\relax
- \else
- \labeltext{\getvalue{#1\@@sectieblok\c!label}}%
- \fi}
-
-% BETER:
-
-\def\sectiebloklabel#1%
- {\@EA\ifx\csname\??ko#1\@@sectieblok\c!label\endcsname\relax
- \labeltext{#1}%
- \else
- \labeltext{\getvalue{\??ko#1\@@sectieblok\c!label}}%
- \fi}
-
-\dosetlocalsectieblok{\v!hoofdtekst}{\v!hoofdteksten}
-
-\def\setsectiontype[#1]%
- {\getvalue{\??sb#1}}
-
-\def\writesection#1#2#3%
- {\bgroup
- \convertargument#3\to\ascii
- \edef\!!stringa{#1}%
- \@EA\writestatus\@EA
- {\!!stringa}
- {\ifsectienummer#2\else(#2)\fi\normalspace\ascii}%
- \egroup}
-
-\def\@@koniveau{1} \def\kopniveau{\@@koniveau}
-
-% \def\dohandelpaginaafA#1%
-% {\ifnum\lastpenalty>0
-% \global\paginageblokkeerdtrue
-% \fi
-% \witruimte
-% \flushsidefloats
-% \getvalue{\??ko#1\c!voor}%
-% \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}]}}}}
-%
-% \def\handelpaginaaf#1%
-% {\dohandelpaginaafA{#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}
-
-\def\dohandelpaginaafAA#1%
- {\ifnum\lastpenalty>0
- \global\paginageblokkeerdtrue
- \fi}
-
-\def\dohandelpaginaafAB#1%
- {\witruimte
- \flushsidefloats
- \getvalue{\??ko#1\c!voor}%
- \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}]}}}}
-
-\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\dolocalkopsetup#1% koppeling met standaard kopcommando
- {\forgetall
- \ExpandFirstAfter\steluitlijnenin[\getvalue{\??ko#1\c!uitlijnen}]%
- \def\\{\crlf\strut}}
-
-\newif\ifplaatskop
-\newif\ifverhoognummer
-\newif\ifkopnummer
-
-\def\setsectieenkoppeling#1%
- {\edef\@@koppeling{\getvalue{\??ko#1\c!koppeling}}%
- \edef\@@sectie{\getvalue{\??ko#1\c!sectie}}%
- \doif{\@@koppeling}{}
- {\edef\@@koppeling{#1}}%
- \doif{\@@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\dosomekop#1[#2]#3%
- {\doifelsevalue{\??ko#1\c!eigennummer}{\v!ja}
- {\def\next{\doquadruplegroupempty\dodosomekop{#1}{#2}{#3}}}
- {\def\next{\fourthargumentfalse\dodosomekop{#1}{#2}{#3}{}}}%
- \next}
-
-\def\dodosomekop#1#2#3#4%
- {\iffourthargument
- \dododosomekop{#1}[#2]{\sectiebloklabel{#1}}{#3}{#4}%
- \else
- \dododosomekop{#1}[#2]{\sectiebloklabel{#1}}{\getvalue{\@@sectie\c!nummer}}{#3}%
- \fi}
-
-\def\dododosomekop#1[#2]#3#4#5% % pas met \ExpandFirstAfter op bij twee||taligheid
- {\setsectieenkoppeling{#1}%
- \doifelsevalue{\??ko#1\c!prefix}{}
- {\kopprefixfalse}
- {\kopprefixtrue}%
- \doifelsevalue{\??ko#1\c!plaatskop}{\v!ja}
- {\plaatskoptrue}
- {\plaatskopfalse}%
- \doifelsevalue{\??ko#1\c!verhoognummer}{\v!ja}
- {\verhoognummertrue}
- {\verhoognummerfalse}%
- \ifsectienummer
- \doifelsevalue{\??sb\@@sectieblok\c!nummer}{\v!ja}
- {\doifelsevalue{\??ko#1\c!nummer}{\v!ja}
- {\kopnummertrue}
- {\kopnummerfalse}}
- {\kopnummerfalse}%
- \else
- \kopnummerfalse
- \fi
- \ifverhoognummer
- \ifplaatskop
- \handelpaginaaf{#1}%
- \ifkopprefix
- \stelrefererenin[\c!prefix=-]%
- \fi
- \getvalue{\e!volgende\@@sectie}%
- \ifkopnummer
- \doplaatskopnummertekst
- {#1}
- {\setsectionlistreference{\@@sectie}{#1}%
- \ExpandFirstAfter\soortpagina[\@@koppeling]%
- \rawreference{\s!sec}{#2}{#4}%
- \resetsectionmarks[\@@sectie]%
- \doschrijfnaarlijst{\@@koppeling}{#4}{#5}{\v!kop}}%
- {#3#4}
- {#5}
- {\markeer[#1]{#5}}%
- \writesection{#1}{#4}{#5}%
- \else
- \doplaatskoptekst
- {#1}
- {\setsectionlistreference{\@@sectie}{#1}%
- \ExpandFirstAfter\soortpagina[\@@koppeling]%
- \rawpagereference{\s!sec}{#2}%
- \resetsectionmarks[\@@sectie]%
- \doschrijfnaarlijst{\@@koppeling}{}{#5}{\v!kop}}
- {#5}
- {\markeer[#1]{#5}}%
- \writesection{#1}{-}{#5}%
- \fi
- \ifkopprefix
- \ExpandFirstAfter\stelrefererenin[\c!prefix=\getvalue{\??ko#1\c!prefix}]%
- \fi
- \dosomebreak\nobreak
- \getvalue{\??ko#1\c!na}%
- \else
-\dohandelpaginaafB{#1}% toegevoegd ivm subpaginanr / tug sheets
- \ifkopprefix
- \stelrefererenin[\c!prefix=-]%
- \fi
- \getvalue{\e!volgende\@@sectie}%
- \setsectionlistreference{\@@sectie}{#1}%
- \resetsectionmarks[\@@sectie]%
- \markeer[#1]{#5}%
- \ExpandFirstAfter\soortpagina[\@@koppeling]%
- \ifkopnummer
- \rawreference{\s!sec}{#2}{#4}%
- \doschrijfnaarlijst{\@@koppeling}{#4}{#5}{\v!kop}%
- \writesection{#1}{#4}{#5}%
- \else
- \rawpagereference{\s!sec}{#2}%
- \doschrijfnaarlijst{\@@koppeling}{}{#5}{\v!kop}%
- \writesection{#1}{-}{#5}%
- \fi
- \ifkopprefix
- \ExpandFirstAfter\stelrefererenin[\c!prefix=\getvalue{\??ko#1\c!prefix}]%
- \fi
- \fi
- \else
- \ifplaatskop
- \handelpaginaaf{#1}%
- \doplaatskoptekst
- {#1}
- {\rawpagereference{\s!sec}{#2}}
- {#5}
- {}%
- \writesection{#1}{-}{#5}%
- \dosomebreak\nobreak
- \getvalue{\??ko#1\c!na}%
- \else
- % do nothing
- \fi
- \fi}
-
-\def\doplaatskoptekst#1#2#3#4%
- {\bgroup
- \forgetall
- %\showcomposition
- \mindermeldingen
- \postponefootnotes
- \def\localkopsetup%
- {\dolocalkopsetup{#1}}%
- \startsynchronisatie
- \getvalue{\??ko#1\c!commando}
- {} % no number
- {\doattributes{\??ko#1}{\doattributes{\??ko#1\c!tekst}
- {\dontconvertfont
- \stelinterliniein
- #2%
- \getvalue{\??ko#1\c!voorcommando}%
- \getvalue{\??ko#1\c!tekstcommando}{\setstrut\begstrut#3\endstrut}%
- \getvalue{\??ko#1\c!nacommando}%
- \endgraf}}}%
- \endgraf
- \nointerlineskip
- \dosomebreak\nobreak
- #4%
- \prevdepth\dp\strutbox
- \stopsynchronisatie
- \egroup
- \noindentation}
-
-% \prevdepth\dp\strutbox is belangrijk, vergelijk naast elkaar:
-%
-% \onderwerp{test} \input tufte
-% \onderwerp{test} \strut \input tufte
-% \onderwerp{test} \plaatslijst[...]
-
-\def\doplaatskopnummertekst#1#2#3#4#5%
- {\bgroup
- \forgetall
- %\showcomposition
- \mindermeldingen
- \postponefootnotes
- \def\localkopsetup%
- {\dolocalkopsetup{#1}}%
- \startsynchronisatie
- \getvalue{\??ko#1\c!commando}%
- {\doattributes{\??ko#1}{\doattributes{\??ko#1\c!nummer}
- {\getvalue{\??ko#1\c!voorcommando}%
- \getvalue{\??ko#1\c!nummercommando}{\setstrut\begstrut#3\endstrut}}}}
- {\doattributes{\??ko#1}{\doattributes{\??ko#1\c!tekst}
- {\dontconvertfont
- \stelinterliniein
- #2%
- \getvalue{\??ko#1\c!tekstcommando}{\setstrut\begstrut#4\endstrut}%
- \getvalue{\??ko#1\c!nacommando}%
- \endgraf}}}%
- \endgraf
- \nointerlineskip
- \dosomebreak\nobreak
- #5%
- \prevdepth\dp\strutbox
- \stopsynchronisatie
- \egroup
- \noindentation}
-
-\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{\getvalue{\@@sectie\c!nummer}}{0} % kan effienter
- {\getvalue{\@@sectie\c!nummer}}%
- \egroup}
-
-\def\kopnummer%
- {\dosingleargument\dokopnummer}
-
-\def\alinea%
- {\par}
-
-\def\plaatskopnormaal#1#2%
- {\doifelsenothing{#1}
- {\vbox
- {\localkopsetup
- \noindent
- #2}}%
- {\setbox0=\hbox{{#1}\hskip0.75em}%
- \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\plaatsgeenkop#1#2%
- {}
-
-% default == instellingen
-% koppeling == koppen, breaks, marks, enz.
-% sectie == nummering
-
-\def\@@kolijst{}
-
-\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!pagina=,
- \c!hoofd=,
- \c!letter=,
- \c!nummercommando=,
- \c!tekstcommando=,
- \c!eigennummer=\v!nee,
- \c!nummer=\v!ja,
- \c!kleur=,
- \c!doorgaan=\v!ja,
- \c!plaatskop=\v!ja,
- \c!verhoognummer=\v!ja,
- \c!commando=\plaatskop,
- #2]%
- \ConvertToConstant\doifnot{#1}{\getvalue{\??ko#1\c!default}}
- {\doifsomething{\getvalue{\??ko#1\c!default}}
- {%\presetlabeltext[#1=\labeltext{\getvalue{\??ko#1\c!default}}]%
- \copyparameters
- [\??ko#1][\??ko\getvalue{\??ko#1\c!default}]
- [\c!voor,\c!na,\c!commando,\c!pagina,\c!doorgaan,\c!hoofd,
- \c!nummer,\c!eigennummer,\c!plaatskop,\c!verhoognummer,\c!letter,\c!kleur,
- \c!nummerletter,\c!tekstletter,\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}]}}%
- \doifundefined{\??li#1}{\definieerlijst[#1]}}
- {\ConvertToConstant\doifelse{#1}{#2}
- {\doifundefined{\??li#1}{\definieerlijst[#1]}}
- {%\presetlabeltext[#1=\labeltext{#2}]%
- \copyparameters
- [\??ko#1][\??ko#2]
- [\c!niveau,\c!sectie,\c!koppeling,\c!prefix,
- \c!voor,\c!na,\c!commando,\c!pagina,\c!doorgaan,\c!hoofd,
- \c!nummer,\c!eigennummer,\c!plaatskop,\c!verhoognummer,\c!letter,\c!kleur,
- \c!nummerletter,\c!tekstletter,\c!nummercommando,\c!tekstcommando]%
- \definieermarkering[#1][#2]%
- \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}%
- {\complexorsimpleempty{#1}}%
- \setvalue{\s!complex#1}[##1]%
- {\dowithpargument{\dosomekop{#1}[##1]}}}
-
-\def\definieerkop%
- {\dodoubleemptywithset\dodefinieerkop}
-
-\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
-
-\def\dostelkoppenin[#1]%
- {\getparameters[\??ko][#1]%
- \doifelse{\@@kosectienummer}{\v!ja}
- {\sectienummertrue}
- {\sectienummerfalse}%
- \processaction
- [\@@kovariant]
- [ \v!normaal=>\def\plaatskop{\plaatskopnormaal},
- \v!marge=>\def\plaatskop{\plaatskopinmarge},
- \v!inmarge=>\def\plaatskop{\plaatskopinmarge}]}
-
-\def\stelkoppenin%
- {\dosingleargument\dostelkoppenin}
-
-\def\systemsuppliedchapter {\getvalue{\v!hoofdstuk}}
-\def\systemsuppliedtitle {\getvalue{\v!titel}}
-
-\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
-%I Het is mogelijk pagina's te markeren en selectief te
-%I verwerken. Markering vindt plaats met het commando:
-%I
-%I \soortpagina[aanduiding]
-%I
-%I en selecteren vindt plaats met:
-%I
-%I \verwerkpagina[aanduiding,...][instelling]
-%I
-%I waarbij de instelling 'ja' of 'nee' is en meerdere
-%I aanduidingen worden gescheiden door een comma.
-%P
-%I Er kunnen commando's worden gekoppeld aan pagina's:
-%I
-%I \koppelpagina[aanduiding,...][voor=,na=,optie=]
-%I
-%I De opgegeven commando's worden voor respectievelijk na het
-%I vrijgeven van de pagina uitgevoerd.
-
-\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}
-
-%I n=Verwijzingen
-%I c=\in,\op,\referentie,\stelrefererenin,\gebruikreferenties
-%I
-%I In elders gedefinieerde commando's opgegeven referenties
-%I kunnen worden opgeroepen met:
-%I
-%I \in[referentie]
-%I \op[referentie]
-%I
-%I Soms kunnen ook commando's als \infiguur[referentie] en
-%I \inhoofdstuk[referentie] worden gebruikt. Bovendien is
-%I het commando \oppagina[referentie] beschikbaar.
-%I
-%I Een verwijzing naar een pagina kan worden aangemaakt met:
-%I
-%I \tekstreferentie[referentie]{nummer of tekst}
-%I \paginareferentie[referentie]
-%I \referentie[referentie]{nummer of tekst}
-%P
-%I Er kunnen tegelijk meerdere referenties worden opgegeven:
-%I
-%I \tekstreferentie[ref1,ref2,ref3]{nummer of tekst}
-%I
-%I Dit kan overigens overal waar een [referentie] kan worden
-%I meegegeven, bijvoorbeeld bij hoofdstukken.
-%P
-%I Het refereren kan (tijdelijk) worden stopgezet met het
-%I commando:
-%I
-%I \stelrefererenin[status=,<sectie>nummer=,prefix=]
-%I
-%I waarbij 'start' en 'stop' mogelijke waarden zijn voor
-%I status. Een sectienummer (deelnummer, hoofdstuknummer
-%I enz.) kan 'ja of 'nee' zijn.
-%I
-%I Om verwarring te voorkomen kunnen binnen subdocumenten die
-%I niet naar elkaar verwijzen de referenties lokaal worden
-%I gehouden door een 'prefix' in te stellen. Eventueel kan een
-%I '+' wordt gebruikt om automatisch een nieuwe prefix in te
-%I stellen. Met '-' wordt de prefix gereset.
-%P
-%I Referenties van andere teksten kunnen worden geladen met
-%I het commando:
-%I
-%I \gebruikreferenties[filenaam]
-
-% hypertext-commando's
-
-% \gotoexternal {external reference} {text}
-% \gotointernal {internal reference} {text} {real pagenumber}
-% \gotorealpage {real pagenumber} {text}
-%
-% \thisisexternal {external reference}
-% \thisisinternal {internal reference}
-% \thisisrealpage {real pagenumber}
-%
-% \executecommand {command} {text}
-
-\def\gotoexternal #1#2{#2}
-\def\gotointernal #1#2#3{#2}
-\def\gotorealpage #1#2{#2}
-
-\def\thisisexternal #1{}
-\def\thisisinternal #1{}
-\def\thisisrealpage #1{}
-
-\def\executecommand #1#2{#2}
-
-% Het onderstaande commando zoekt zelf uit of sprake is van
-% interne verwijzing, een externe verwijzing of een
-% paginaverwijzing.
-%
-% \gotolocation {reference} {text}
-%
-% Beter is: \setreference{tag}{type}{page}{realpage}{text}
-% standaard extref, intref, pagref of nog anders nu
-% \crossref:...
-
-\newif\iflocation
-
-\def\ifinteractief{\iflocation}
-
-% alternatief 1: externe verwijzingen
-
-\def\gotolocation#1#2%
- {\doifreferencefoundelse{#1}
- {\gettextreference{#1}%
- \doifelse{\currenttextreference}{\r!page}
- {\getrealreference{#1}%
- \gotorealpage{\currentrealreference}{#2}}
- {\gotoexternal{#1}{#2}}}
- {\gotointernal{#1}{#2}{}}}
-
-\def\previoussectionformat{}
-\def\currentsectionformat{}
-
-\let\updatelistreferences=\relax
-\def\updatedlistreferences{}
-
-\def\setsectionlistreference#1#2%
- {\ifnum\countervalue{\??se\previoussection{#1}}>0\relax
- \xdef\previoussectionformat{\@@longformatnumber{\previoussection{#1}}}%
- \else
- \xdef\previoussectionformat{}%
- \fi
- \xdef\currentsectionformat{\@@longformatnumber{#1}}}
-
-\def\startlistreferences#1%
- {\paginareferentie[\s!lst:#1\currentsectionformat]%
- \getrealreference{\s!lst:#1\previoussectionformat}%
- \doifnothing{\currentrealreference}{\edef\currentrealreference{\realfolio}}
- \setxvalue{\v!vorige\c!lokale#1}{\currentrealreference}%
- \getrealreference{\s!lst:#1\currentsectionformat}%
- \doifnothing{\currentrealreference}{\edef\currentrealreference{\realfolio}}
- \setxvalue{\c!huidige\c!lokale#1}{\currentrealreference}%
- \setreference{\v!vorige#1}{}{\getvalue{\v!vorige\c!lokale#1}}{\r!page}%
- \def\stoplistreferences{\dostoplistreferences}}
-
-\def\dostoplistreferences#1%
- {\iflijstgeplaatst
- \addtocommalist{#1}\updatedlistreferences % nog global (\doglobal)
- \global\let\updatedlistreferences=\updatedlistreferences % een noodverbandje
- \gdef\updatelistreferences%
- {\def\docommando####1%
- {\setreference
- {\v!vorige####1}{}
- {\getvalue{\c!huidige\c!lokale####1}}{\r!page}}%
- \processcommacommand[\updatedlistreferences]\docommando
- \global\let\updatelistreferences=\relax
- \gdef\updatedlistreferences{}}%
- \fi}
-
-\def\stoplistreferences%
- {\gobbleoneargument}
-
-% alternatief 2: interne verwijzingen
-
-\def\gotolocation#1#2%
- {\doifreferencefoundelse{#1}
- {\gettextreference{#1}%
- \doifelse{\currenttextreference}{\r!page}
- {\getrealreference{#1}%
- \gotorealpage{\currentrealreference}{#2}}
- {\doifelse{\currenttextreference}{\r!exec}
- {\getrealreference{#1}%
- \executecommand{\currentrealreference}{#2}}
- {\doifelse{\currenttextreference}{\r!list} % speciaal
- {\getrealreference{#1}% % voor
- \gotointernal{\currentrealreference}{#2}{}} % lijsten
- {\gotoexternal{#1}{#2}}}}}
- {\gotointernal{#1}{#2}{}}}
-
-\let\gotoinnerlocation=\gotolocation
-
-\def\previoussectionformat{}
-\def\currentsectionformat{}
-
-\let\updatelistreferences=\relax
-\def\updatedlistreferences{}
-
-\def\setsectionlistreference#1#2%
- {\ifnum\countervalue{\??se\previoussection{#1}}>0\relax
- \xdef\previoussectionformat{\@@longformatnumber{\previoussection{#1}}}%
- \else
- \xdef\previoussectionformat{}%
- \fi
- \xdef\currentsectionformat{\@@longformatnumber{#1}}}
-
-\def\startlistreferences#1%
- {\thisisinternal{\s!lst:#1\currentsectionformat}%
- \setxvalue{\v!vorige\c!lokale#1}{\s!lst:#1\previoussectionformat}%
- \setxvalue{\c!huidige\c!lokale#1}{\s!lst:#1\currentsectionformat}%
- \doifelse{\currentsectionformat}{}
- {\setreference
- {\v!vorige#1}{}{\realfolio}{}}
- {\setreference
- {\v!vorige#1}{}{\getvalue{\v!vorige\c!lokale#1}}{\r!list}}%
- \def\stoplistreferences{\dostoplistreferences}}
-
-\def\dostoplistreferences#1%
- {\iflijstgeplaatst
- \addtocommalist{#1}\updatedlistreferences % nog global (\doglobal)
- \global\let\updatedlistreferences=\updatedlistreferences % een noodverbandje
- \gdef\updatelistreferences%
- {\def\docommando####1%
- {\setreference
- {\v!vorige####1}{}
- {\getvalue{\c!huidige\c!lokale####1}}{\r!list}}%
- \processcommacommand[\updatedlistreferences]\docommando
- \global\let\updatelistreferences=\relax
- \gdef\updatedlistreferences{}}%
- \fi}
-
-\def\stoplistreferences%
- {\gobbleoneargument}
-
-% de rest
-
-\newcount\prefixteller
-
-\def\referenceprefix{}
-
-\def\showlocation #1{#1}
-\def\showcontrastlocation#1#2#3{#3}
-\def\showcoloredlocation #1#2{#2}
-
-% Interne verwijzingen worden automatisch gegenereerd met
-%
-% \thisisnextinternal {tag}
-
-\newcount\locationcount
-\locationcount=0
-
-\def\nextinternalreference%
- {\the\locationcount}
-
-\def\thisisnextinternal#1%
- {\global\advance\locationcount by 1
-% \thisisinternal{\s!aut:#1:\nextinternalreference}} debugging
- \thisisinternal{\s!aut:\nextinternalreference}}
-
-\def\gotonextinternal#1#2#3#4%
-% {\gotointernal{\s!aut:#1:#2}{#3}{#4}} debugging
- {\gotointernal{\s!aut:#2}{#3}{#4}}
-
-% Als een interne verwijzing ook vanuit elders toegankelijk
-% moet zij, gebruiken we:
-%
-% \thisissomeinternal {tag} {data}
-% \gotosomeinternal {tag} {data} {} {}
-%
-% let op: geen commalist
-
-\def\thisissomeinternal#1#2% tag data
- {\doifsomething{#2}
- {\thisisinternal{#1:#2}}}
-
-\def\gotosomeinternal#1#2#3#4%
- {\gotointernal{#1:#2}{#3}{#4}}
-
-% Om historische redenen en omdat nog niet duidelijk is welke
-% interactieprogramma's zich nog zullen aandienen, worden
-% referenties zowel op naam als op paginanummer afgehandeld.
-%
-% Verwijzingen en ingangen in een inhoudsopgave en index
-% dienen daarom beide mechanismen te ondersteunen.
-%
-% Het wellicht op het eerste gezicht redundante referentie-format
-% ziet er als volgt uit:
-%
-% [formatted page"realpage"text"]
-
-\newif\ifrefereren
-
-\def\referencepagenumber[#1]%
- {\geentest % nodig i.v.m. scannen {tekst} bij [referentie] in \op
- {\paginaprefix\??rf[#1]%
- \translatednumber[#1]}}
-
-\def\getsomereference#1#2%
- {\edef\somereference{\getvalue{\r!cross\referenceprefix#2}}%
- \expandafter#1\expandafter[\somereference""""]}
-
-\def\currentpagereference{}
-\def\currentrealreference{}
-\def\currenttextreference{}
-
-\def\dogetpagereference[#1"#2"#3"#4]%
- {\doifelsenothing{#2}
- {\def\currentpagereference{}}
- {\def\currentpagereference{\referencepagenumber[#1]}}}
-
-\def\dogetrealreference[#1"#2"#3"#4]%
- {\edef\currentrealreference{#2}}
-
-\def\dogettextreference[#1"#2"#3"#4]%
- {\def\currenttextreference{#3}}
-
-\def\getpagereference{\getsomereference\dogetpagereference}
-\def\getrealreference{\getsomereference\dogetrealreference}
-\def\gettextreference{\getsomereference\dogettextreference}
-
-\def\fileprefix{}
-
-\def\setlocalreference#1#2#3#4%
- {\setevalue{\r!cross\fileprefix#1}{#2"#3"#4}}
-
-\def\setreference%
- {\global\setlocalreference}
-
-\def\setreferences%
- {\def\mainreference##1##2##3##4##5%
- {\doifundefinedelse{\r!cross\fileprefix##1##2}
- {\setxvalue{\r!cross\fileprefix##1##2}{##3"##4"##5}}
- {\showmessage{\m!references}{2}{[##1][##2],##4}}}}
-
-\def\resetreferences%
- {\def\mainreference##1##2##3##4##5{}}
-
-\resetreferences
-
-% beetje vreemde plaats, maar ja
-
-\def\setdummycommandreference#1#2%
- {\setreference{#1}{}{#2}{\r!exec}}
-
-% nog anders
-
-\setdummycommandreference {\v!FirstPage} {first}
-\setdummycommandreference {\v!PreviousPage} {previous}
-\setdummycommandreference {\v!NextPage} {next}
-\setdummycommandreference {\v!LastPage} {last}
-\setdummycommandreference {\v!PreviousJump} {backward}
-\setdummycommandreference {\v!NextJump} {forward}
-\setdummycommandreference {\v!SwapViewer} {swap}
-\setdummycommandreference {\v!ExitViewer} {exit}
-\setdummycommandreference {\v!CloseDocument} {close}
-\setdummycommandreference {\v!ViewerHelp} {help}
-\setdummycommandreference {\v!PrintDocument} {print}
-\setdummycommandreference {\v!SearchDocument} {search}
-\setdummycommandreference {\v!SearchAgain} {searchagain}
-
-%\def\writereference#1#2#3#4%
-% {\ifrefereren%
-% \doifsomething{#1}
-% {\bgroup
-% \reassignreferenceprefix{#1}%
-% \ExpandFirstAfter\thisisexternal{\referencevalues}%
-% \edef\dowritereference%
-% {\writeutilitycommand%
-% {\mainreference%
-% {\referenceprefix}%
-% {\referencevalues}%
-% {#2}%
-% {#3}%
-% {#4}}}%
-% \dowritereference
-% \egroup
-% \@EA\referentieinfo\@EA>\@EA{#1}}%
-% \fi}
-
-\def\writereference#1#2#3#4%
- {\ifrefereren
- \doifsomething{#1}
- {\bgroup
- \def\dowritereference##1%
- {\doifinstringelse{-:}{##1}
- {\removesubstring-:\from##1\to\referencevalues
- \def\referenceprefix{}}
- {\def\referencevalues{##1}}%
- \doifsomething{\referencevalues}
- {\thisisexternal{\referenceprefix\referencevalues}%
- \edef\dodowritereference%
- {\writeutilitycommand%
- {\mainreference%
- {\referenceprefix}{\referencevalues}%
- {#2}{#3}{#4}}}%
- \dodowritereference}}%
- \processcommalist[#1]\dowritereference
- \egroup
- \@EA\referentieinfo\@EA>\@EA{#1}}%
- \fi}
-
-\let\lastreference=\empty
-
-\def\rawpagereference#1#2% #1 kan weg
- {\def\lastreference{#2}%
- \makesectionformat
- \writereference
- {#2}%
- {\sectionformat::\noexpand\paginanummer}%
- {\noexpand\realfolio}%
- {}}
-
-\def\rawtextreference#1#2#3% #1 kan weg
- {\def\lastreference{#2}%
- \writereference
- {#2}%
- {}%
- {}%
- {#3}}%
-
-\def\rawreference#1#2#3% #1 kan weg
- {\def\lastreference{#2}%
- \makesectionformat
- \writereference
- {#2}%
- {\sectionformat::\noexpand\paginanummer}%
- {\noexpand\realfolio}%
- {#3}}
-
-\def\referenceprefix {}
-\def\unharmedreferenceprefix {\referenceprefix}
-
-\newif\ifreferencefound
-
-\def\doifreferencefoundelse#1#2#3%
- {\checkreferences
- \bgroup
- \let\unharmedreferenceprefix=\referenceprefix
- \bgroup
- \doifinstringelse{::}{#1}
- {\referencefoundtrue}
- {\doifdefinedelse{\r!cross\referenceprefix#1}
- {\referencefoundtrue}
- {\def\referenceprefix{}%
- \doifdefinedelse{\r!cross#1}
- {\referencefoundtrue}
- {\referencefoundfalse}}}%
- \doifvalue{\r!cross\referenceprefix#1}{""}
- {\referencefoundfalse}%
- \ifreferencefound
- #2%
- \egroup
- \else
- #3%
- \egroup
- \setreference{\referenceprefix#1}{}{}{}% message only once, uses prefix
- \fi
- \egroup}
-
-\def\dowithreferenceprefix#1#2%
- {\doifreferencefoundelse{#1}{#2}{}}
-
-\def\gebruikreferenties[#1]%
- {\doifundefined{\??rf:#1}
- {\setgvalue{\??rf:#1}{}% signal, nog eens '\v!done'
- \doutilities{references}{#1}{}{}{}}}
-
-\def\dostelrefererenin[#1]%
- {\getparameters[\??rf][#1]%
- \preparepaginaprefix{\??rf#1}%
- \processaction
- [\@@rfstatus]
- [ \v!stop=>\refererenfalse,
- \v!start=>\refererentrue]%
- \processaction % should be in cont-01d
- [\@@rfinteractie]
- [ \v!alles=>\let\dowantedreference=\docompletereference,
- \v!label=>\let\dowantedreference=\dolabelonlyreference,
- \v!tekst=>\let\dowantedreference=\dotextonlyreference,
- \v!symbool=>\let\dowantedreference=\dosymbolreference]%
- \doifinstringelse{\@@rfprefix}{#1} % yeah
- {\doifelsenothing{\@@rfprefix}
- {\edef\referenceprefix{}}
- {\processaction
- [\@@rfprefix]
- [ +=>\advance\prefixteller by 1 %
- \edef\referenceprefix{\the\prefixteller:},
- -=>\edef\referenceprefix{},
- \s!unknown=>\edef\referenceprefix{\@@rfprefix:}]%
- \def\@@rfprefix{}}}
- {}}
-
-%\def\reassignreferenceprefix#1%
-% {\doifinsetelse{-:}{#1}%
-% {\def\referenceprefix{}%
-% \aftersplitstring#1\at-:\to\referencevalues}
-% {\def\referencevalues{#1}}}
-
-\def\stelrefererenin%
- {\dosingleargument\dostelrefererenin}
-
-\def\doreferentie[#1]#2%
- {\rawreference{\s!ref}{#1}{#2}}
-
-\def\referentie%
- {\dosingleargument\doreferentie}
-
-\def\dotekstreferentie[#1]#2%
- {\rawtextreference{\s!txt}{#1}{#2}}
-
-\def\tekstreferentie%
- {\dosingleargument\dotekstreferentie}
-
-\def\dopaginareferentie[#1]%
- {\rawpagereference{\s!pag}{#1}}
-
-\def\paginareferentie%
- {\dosingleargument\dopaginareferentie}
-
-% \def\doreferentie[#1]#2%
-% {\bgroup
-% \convertargument#2\to\ascii
-% \rawreference{\s!ref}{#1}{\ascii}%
-% \egroup}
-%
-% \def\referentie%
-% {\dosingleargument\doreferentie}
-%
-% \def\dotekstreferentie[#1]#2%
-% {\bgroup
-% \convertargument#2\to\ascii
-% \rawtextreference{\s!txt}{#1}{\ascii}%
-% \egroup}
-%
-% \def\tekstreferentie%
-% {\dosingleargument\dotekstreferentie}
-
-% \newif\ifreferencesloaded
-% \referencesloadedfalse
-%
-% \def\checkreferences%
-% {\ifreferencesloaded\else
-% \global\referencesloadedtrue
-% {\setbox0=\hbox{\gebruikreferenties[\jobname]}}% get rid of spaces
-% \checkrealpage
-% \fi}
-%
-% efficienter: (scheelt 3 if-macro's)
-
-\def\checkreferences%
- {\bgroup
- \setbox0=\hbox{\gebruikreferenties[\jobname]}% get rid of spaces
- \checkrealpage
- \global\let\checkreferences=\relax
- \egroup}
-
-% Het referentie-mechanisme zal nog worden aangepast:
-%
-% <prefix><tag><keyword>
-%
-% De gebruikte macros krijgen dan de vorm: {}{}{}
-
-\def\unknownreference#1%
- {\ifvoorlopig
- \doifsomething{#1}
- {\inlinker
- {\infofont
- \dimen0=\linkermargebreedte
- \advance\dimen0 by -2em
- \doboundtext{#1}{\dimen0}{..}->}}%
- \fi
- \doifnotvalue{\r!cross#1}{""}
- {\showmessage{\m!references}{1}{[\unharmedreferenceprefix][#1]}}}
-
-\def\dummyreference%
- {{\tttf ??}}
-
-\let\domathmodein=\in
-
-\def\dotextmodein#1[#2]%
- {\doifreferencefoundelse{#2}
- {\gettextreference{#2}%
- \gotolocation
- {#2}
- {\dotextprefix{#1}\currenttextreference}}
- {\unknownreference{#1}%
- \dotextprefix{#1}\dummyreference}%
- \referentieinfo{<}{#2}}
-
-\def\in%
- {\ifmmode % hier nog eens een macro
- \let\next=\domathmodein % voor maken; zie |
- \else
- \let\next=\dotextmodein
- \fi
- \next}
-
-\def\op#1[#2]% er is een probleempje met spaties, zie ook pragma11.tex
- {\ignorespaces
- \bgroup % !! tijdelijk
- \let\ignorespaces=\relax % !! tijdelijk
- \doifreferencefoundelse{#2}
- {\getpagereference{#2}%
- \gotolocation
- {#2}
- {\dotextprefix{#1}\currentpagereference}}
- {\unknownreference{#1}%
- \dotextprefix{#1}\dummyreference}%
- \referentieinfo{<}{#2}%
- \egroup} % !! tijdelijk
-
-\def\oppagina[#1]% kan uit de pas lopen, checken e!!
- {\doifreferencefoundelse{#1}
- {\getrealreference{#1}%
- \doifelse{\realfolio}{\currentrealreference}
- {\v!hier\v!boven}
- {\c!op\ \op{\v!pagina}[#1]}}%
- {\unknownreference{#1}%
- \v!pagina~\dummyreference}}%
-
-%I n=Regels
-%I c=\startregels,\stelregelsin
-%I c=\startregelnummeren,\stelregelnummerenin
-%I c=\crlf
-%I c=\startregel,\stopregel,\eenregel,\inregel
-%I
-%I Het is mogelijk de indeling in regels zoals die in de ruwe
-%I tekst wordt gehanteerd af te dwingen. Er wordt in dit
-%I geval niet ingesprongen. De regels worden gezet tussen de
-%I twee commando's:
-%I
-%I \startregels
-%I
-%I ...................................................
-%I
-%I \stopregels
-%P
-%I Er kan met betrekking tot regels een en ander worden
-%I ingesteld:
-%I
-%I \stelregelsin[voor=,na=,inspringen=]
-%I
-%I Aan 'inspringen' kan men 'ja', 'nee', 'even' of 'oneven'
-%I toekennen.
-%P
-%I Het is mogelijk regels te nummeren door ze tussen de
-%I volgende commando's te plaatsen:
-%I
-%I \startregelnummeren
-%I \stopregelnummeren
-%I
-%I Als de regelovergangen moeten worden gehandhaafd, dan moet
-%I \startregels voor \startregelnummeren worden gegeven.
-%I
-%I Het nummeren begint steeds opnieuw bij 1. Als verder moet
-%I worden genummeren, dan kan achter \startregelnummeren
-%I [verder] worden meegegeven.
-%I
-%I Standaard worden regels alinea-gewijs genummerd. Als men
-%I over een paginagrens wil nummeren, dan moet [opelkaar]
-%I worden meegegeven.
-%P
-%I De wijze van nummeren kan worden ingesteld met:
-%I
-%I \stelregelnummerenin[conversie=,start=,stap=,letter=,
-%I plaats=,breedte=,letter=]
-%I
-%I Als 'conversie' kan worden meegegeven: cijfers, letters,
-%I Letters, romeins of Romeins. Aan 'start' en 'stap' kan
-%I een getal worden toegekend, aan 'letter' een trefwoord,
-%I aan 'breedte' een maat (bij voorkeur in ex) en aan
-%I 'plaats' het trefwoord 'inmarge' of 'intekst'.
-%P
-%I Er kan worden overgegaan naar een nieuwe regel met:
-%I
-%I \crlf
-%P
-%I .... testfase ...
-%I
-%I \startregel[tag] ... \stopregel[tag]
-%I \eenregel[tag]
-%I
-%I \inregel[tag]
-
-\newif\ifinregels
-\newif\ifregelnummersinmarge
-
-\def\stelregelsin%
- {\dodoubleargument\getparameters[\??rg]}
-
-%\def\startregels%
-% {\@@rgvoor
-% \pagina[\v!voorkeur]%
-% \begingroup
-% \inregelstrue
-% \stelinspringenin[\v!geen]%
-% \ignorespaces
-% \stelwitruimtein[\v!geen]%
-% \obeylines
-% \GotoPar}
-
-\def\startregels%
- {\@@rgvoor
- \pagina[\v!voorkeur]%
- \witruimte
- \begingroup
- \def\@@rgstepyes{\parindent\!!zeropoint}%
- \def\@@rgstepno{\parindent\!!zeropoint}%
- \edef\@@rgparindent{\the\parindent}%
- \def\@@rglinesteptoggle{1}%
- \processaction
- [\@@rginspringen]
- [ \v!ja=>\def\@@rgstepyes{\parindent\@@rgparindent}%
- \def\@@rgstepno{\parindent\@@rgparindent},
- \v!oneven=>\def\@@rgstepyes{\parindent\!!zeropoint}%
- \def\@@rgstepno{\parindent\@@rgparindent},
- \v!even=>\def\@@rgstepno{\parindent\!!zeropoint}%
- \def\@@rgstepyes{\parindent\@@rgparindent}]%
- \inregelstrue
- \stelwitruimtein[\v!geen]%
- \obeylines
- \ignorespaces
- \def\obeyedline%
- {\par
- \ifdim\lastskip>\!!zeropoint
- \def\@@rglinesteptoggle{0}%
- \else
- \increment\@@rglinesteptoggle
- \fi
- \ifodd\@@rglinesteptoggle\relax
- \@@rgstepyes
- \else
- \@@rgstepno
- \fi}%
- \GotoPar}
-
-\def\stopregels%
- {\endgroup
- \@@rgna}
-
-\newcount\linenumber
-\newcount\linestepper
-
-% het gebruik van \setlocalreference scheelt een hash entry
-
-\def\regelweergave%
- {\convertnumber\@@rnconversie\linenumber}%
-
-\def\dostelregelnummerenin[#1]%
- {\getparameters
- [\??rn]
- [\c!start=1,
- \c!stap=1,
- #1]%
- \global\linenumber=1\relax}
-
-\def\stelregelnummerenin%
- {\dosingleargument\dostelregelnummerenin}
-
-\def\dostartnummerenLINE% % !! \everypar !!
- {\EveryPar{\schrijfregelnummer}}
-
-\def\dostopnummerenLINE%
- {\egroup}
-
-\def\dodoschrijfregelnummer%
- {\setbox0=\hbox{\regelweergave}%
- \vsmashbox0
- \ifregelnummersinmarge
- \llap{\hbox{\box0\hskip\linkermargeafstand}}%
- \else
- \hsmash{\hbox to \@@rnbreedte{\box0\hss}}%
- \fi}
-
-\def\complexstartregelnummeren[#1]%
- {\doifnotinset{\v!verder}{#1}
- {\global\linenumber=1\relax}%
- \doifinsetelse{\@@rnplaats}{\v!inmarge,\v!marge}
- {\regelnummersinmargetrue}
- {\regelnummersinmargefalse}%
- \ifregelnummersinmarge\else
- \advance\leftskip by \@@rnbreedte\relax
- \fi
- \ifinregels
- \let\dostartnummeren=\dostartnummerenLINE
- \let\stopregelnummeren=\dostopnummerenLINE
- \def\schrijfregelnummer%
- {\doschrijfregelnummer
- \global\advance\linenumber by 1\relax}%
- \else
- \let\dostartnummeren=\dostartnummerenPAR
- \let\stopregelnummeren=\dostopnummerenPAR
- \def\schrijfregelnummer%
- {\global\advance\linenumber by -1\relax
- \doschrijfregelnummer}%
- \fi
- \dostartnummeren}
-
-\def\startregelnummeren%
- {\bgroup
- \complexorsimpleempty{startregelnummeren}}
-
-\def\doschrijfregelnummer%
- {\ifnum\linenumber<\@@rnstart\relax
- \else
- \!!counta=\linenumber
- \divide\!!counta by \@@rnstap\relax
- \multiply\!!counta by \@@rnstap\relax
- \ifnum\!!counta=\linenumber
- \doattributes{\??rn}{\dodoschrijfregelnummer}%
- \fi
- \fi}
-
-\def\regelreferentie#1[#2]%
- {\bgroup
- \dimen0=\dp\strutbox
- \doif{\@@rnrefereren}{\v!aan}
- {\doglobal\increment\linereference
- \setxvalue{lrf:n:\linereference}{\@@rnprefix#2}%
- \setxvalue{lrf:l:\linereference}{0}%
- \setxvalue{lrf:p:\linereference}{#1}%
- \advance\dimen0 by \linereference sp}%
- \prewordbreak
- \vrule \!!width \!!zeropoint \!!depth \dimen0
- \prewordbreak
- \egroup}
-
-\def\eenregel[#1]%
- {\regelreferentie0[#1]\ignorespaces}
-
-\def\startregel[#1]%
- {\regelreferentie1[#1]\ignorespaces}
-
-\def\stopregel[#1]%
- {\unskip\regelreferentie2[#1]}
-
-\def\inregel#1[#2]%
- {\doifelsenothing{#1}
- {\gettextreference{\@@rnprefix#2}%
- \doifinstringelse{--}{\currenttextreference}
- {\in{\labeltext{\v!regels}}[\@@rnprefix#2]}
- {\in{\labeltext{\v!regel}}[\@@rnprefix#2]}}
- {\in{#1}[\@@rnprefix#2]}}
-
-\def\dostartnummerenPAR%
- {\beginofshapebox
- \doglobal\newcounter\linereference}
-
-\def\dostopnummerenPAR%
- {\endofshapebox
- \linestepper=0
- \reshapebox{\global\advance\linestepper by 1\relax}%
- \global\advance\linenumber by \linestepper
- \doifelse{\@@rnrefereren}{\v!aan}
- {\reshapebox % We are going back!
- {\global\advance\linenumber by -1
- \dimen0=\dp\shapebox
- \advance\dimen0 by -\dp\strutbox
- \ifdim\dimen0>\!!zeropoint\relax
- \dostepwiserecurse{1}{\number\dimen0}{1}
- {\setxvalue{lrf:l:\recurselevel}{\the\linenumber}}%
- \fi}%
- \global\advance\linenumber by \linestepper
- \ifnum\linereference>0 % anders vreemde loop in paragraphs+recurse
- \dorecurse{\linereference}
- {\edef\linereferenceplus{\getvalue{lrf:p:\recurselevel}}%
- \ifnum\linereferenceplus=2
- \edef\linereferencename{\getvalue{lrf:n:\recurselevel}}%
- \edef\linereferenceline{\getvalue{lrf:l:\recurselevel}}%
- \setlocalreference{\referenceprefix\linereferencename}{}{}{\linereferenceline}%
- \fi}%
- \dorecurse{\linereference}
- {\edef\linereferenceplus{\getvalue{lrf:p:\recurselevel}}%
- \ifnum\linereferenceplus<2
- \edef\linereferencename{\getvalue{lrf:n:\recurselevel}}%
- \edef\linereferenceline{\getvalue{lrf:l:\recurselevel}}%
- \ifnum\linereferenceplus=1
- \gettextreference{\linereferencename}%
- \ifnum\linereferenceline<0\currenttextreference\relax % 0 prevents error
- \edef\linereferenceline{\linereferenceline--\currenttextreference}%
- \fi
- \fi
- \setlocalreference{\referenceprefix\linereferencename}{}{}{\linereferenceline}%
- \fi}%
- \global\let\scratchline=\linenumber % We are going back!
- \reshapebox
- {\doglobal\decrement\scratchline
- \hbox
- {\dorecurse{\linereference}
- {\edef\linereferencename{\getvalue{lrf:n:\recurselevel}}%
- \gettextreference{\linereferencename}%
- \beforesplitstring\currenttextreference--\at--\to\firstline
- \ifnum\firstline=\scratchline\relax
- \tekstreferentie[\linereferencename]{\currenttextreference}%
- \setlocalreference{\referenceprefix\linereferencename}{}{}{0}% ==done
- \fi}%
- \dimen0=\dp\shapebox
- \advance\dimen0 by -\dp\strutbox
- \ifdim\dimen0>\!!zeropoint\relax
- \dp\shapebox=\dp\strutbox
- \fi
- \schrijfregelnummer\box\shapebox}}%
- \else
- \reshapebox{\hbox{\schrijfregelnummer\box\shapebox}}%
- \fi}
- {\reshapebox{\global\advance\linenumber by -1}%
- \global\advance\linenumber by \linestepper
- \reshapebox{\hbox{\schrijfregelnummer\box\shapebox}}}%
- \global\advance\linenumber by \linestepper
- \flushshapebox
- \egroup}
-
-\def\crlf%
- {\unskip\hfil\break}
-
-\def\opeenregel%
- {\def\crlf{}%
- \def\\{}}
-
-%I n=Opmaak
-%I c=\definieeropmaak,\testopmaak,\startstandaardopmaak
-%I
-%I Het is mogelijk een lege pagina op te maken. Hiertoe wordt
-%I een blok gereserveerd met het commando:
-%I
-%I \definieeropmaak[naam][breedte=,hoogte=,voffset=,
-%I hoffset=,pagina=,commandos=,voor=,na=,dubbelzijdig=]
-%I
-%I Hierbij wordt bij de eerste vier parameters een getal
-%I meegegeven (5cm, 24pt, enz.). Met 'pagina' geeft men aan
-%I of naar een nieuwe pagina wordt gesprongen (standaard
-%I 'rechts'). Aan de 'commandos' kunnen commando's worden
-%I toekend die tijdens de opmaak gelden. Aan de laatste twee
-%I parameters toegekende commando's worden voor en na het
-%I opmaken van de pagina uitgevoerd. De opgemaakte pagina
-%I kan worden geselecteerd op naam. Met 'dubbelzijdig' geeft
-%I men aan of er een lege achterkant moet worden opgemaakt
-%I (standaard: ja). Dit geldt aleen bij dubbelzijdig zetten.
-%I
-%I Naast het bovenstaande commando is er het commando:
-%I
-%I \stelopmaakin[naam][instellingen]
-%P
-%I Na het geven van dit commando zijn twee commando's
-%I beschikbaar: \startnaamopmaak en \stopnaamopmaak. Tussen
-%I deze twee commando's kunnen zetopdrachten en teksten
-%I worden opgenomen. Een en ander wordt op een lege bladzijde
-%I gezet.
-%I
-%I Met het commando \testopmaak kunnen hulplijnen worden
-%I opgeroepen.
-%I
-%I De commando's \startstandaardopmaak en \stopstandaardopmaak
-%I maken het opmaken binnen de standaard-layout mogelijk.
-%P
-%I Eventueel kunnen de volgende twee commando's worden gebruikt
-%I om een pagina op te maken met hoofd- en voetregels.
-%I
-%I \startopmaak
-%I .....
-%I \stopopmaak
-
-\newbox\opmaak
-
-\def\setopmaaklayout[#1]%
- {\stelvoetin [\c!status=\getvalue{\??do#1\c!voetstatus}]%
- \stelhoofdin[\c!status=\getvalue{\??do#1\c!hoofdstatus}]%
- \steltekstin[\c!status=\getvalue{\??do#1\c!tekststatus}]%
- \stelonderin[\c!status=\getvalue{\??do#1\c!onderstatus}]%
- \stelbovenin[\c!status=\getvalue{\??do#1\c!bovenstatus}]}
-
-\def\dododostartopmaak[#1]%
- {\doifvaluesomething{\??do#1\c!pagina}
- {\ExpandFirstAfter\pagina[\getvalue{\??do#1\c!pagina}]}%
- \soortpagina[#1]%
- \setopmaaklayout[#1]%
- \getvalue{\??do#1\c!commandos}%
- \global\setbox\opmaak=\vbox to \getvalue{\??do#1\c!hoogte}%
- \bgroup
- \hsize=\getvalue{\??do#1\c!breedte}%
- \parskip=\!!zeropoint\relax
- \parindent=\!!zeropoint\relax
- \getvalue{\??do#1\c!boven}}
-
-\def\dododostopopmaak[#1]%
- {\getvalue{\??do#1\c!onder}%
- \egroup}
-
-\def\doshipoutopmaak[#1]%
- {\bgroup
- \dimen0=\getvalue{\??do#1\c!voffset}%
- \dimen2=\getvalue{\??do#1\c!hoffset}%
- \dimen4=\dimen0\advance\dimen4 by \dimen2
- \ifdim\dimen4=\!!zeropoint\relax
- \getvalue{\??do#1\c!voor}%
- \box\opmaak
- \setopmaaklayout[#1]%
- \pagina
- \getvalue{\??do#1\c!na}%
- \ifdubbelzijdig
- \doifvalue{\??do#1\c!dubbelzijdig}{\v!ja}
- {\ifodd\realpageno\else
- \null
- \pagina
- \verlaagpaginanummer
- \fi}%
- \fi
- \verlaagpaginanummer
- \else
- \kopoffset=\dimen0
- \rugoffset=\dimen2
- %\setpagedisplacement
- \myshipout{\box\opmaak}
- \fi
- \egroup}
-
-\def\doflushopmaak[#1]%
- {\ifverwerken
- \ifgeselecteerd
- \doshipoutopmaak[#1]%
- \fi
- \else
- \ifgeselecteerd
- \else
- \doshipoutopmaak[#1]%
- \fi
- \fi
- \ifselecteren
- \global\geselecteerdfalse
- \fi}
-
-\def\dodostartopmaak[#1][#2]%
- {\begingroup
- \stelopmaakin[#1][#2]%
- \dododostartopmaak[#1]}
-
-\def\dodostopopmaak[#1]%
- {\dododostopopmaak[#1]%
- \doflushopmaak[#1]%
- \endgroup}
-
-\def\dostartopmaak[#1][#2]%
- {\iffirstargument
- \dodostartopmaak[#1][#2]%
- \def\stopopmaak%
- {\dodostopopmaak[#1]}%
- \else
- \pagina
- \stelhoofdin[\c!status=\v!leeg]
- \stelvoetin[\c!status=\v!leeg]
- \vbox to \teksthoogte % nog een topskip optie
- \bgroup
- \def\stopopmaak%
- {\egroup
- \eject}%
- \fi}
-
-\def\startopmaak%
- {\dodoubleempty\dostartopmaak}
-
-\def\dodefinieeropmaak[#1][#2]%
- {\getparameters
- [\??do#1]%
- [\c!breedte=\zetbreedte,
- \c!hoogte=\teksthoogte,
- \c!voffset=\!!zeropoint,
- \c!hoffset=\!!zeropoint,
- \c!commandos=,
- \c!pagina=\v!rechts,
- \c!dubbelzijdig=\v!ja,
- \c!voor=,
- \c!boven=\vss,
- \c!onder=\vss,
- \c!na=,
- \c!onderstatus=\v!normaal,
- \c!bovenstatus=\v!normaal,
- \c!tekststatus=\v!normaal,
- \c!hoofdstatus=\v!stop,
- \c!voetstatus=\v!stop,
- #2]%
- \setvalue{\e!start#1\e!opmaak}%
- {\dodoubleempty\dodostartopmaak[#1]}%
- \setvalue{\e!stop#1\e!opmaak}%
- {\dodostopopmaak[#1]}}
-
-\def\definieeropmaak%
- {\dodoubleargument\dodefinieeropmaak}
-
-\def\dostelopmaakin[#1]%
- {\getparameters[\??do#1]}
-
-\def\stelopmaakin%
- {\dodoubleargument\dostelopmaakin}
-
-%I n=Smaller
-%I c=\startsmaller,\stelsmallerin
-%I
-%I Een paragraaf kan smaller gezet worden met behulp van de
-%I commando's:
-%I
-%I \startsmaller[afstand]
-%I \stopsmaller
-%I
-%I Als maat wordt links, rechts, midden of een combinatie
-%I hiervan meegegeven. Eventueel wordt geen afstand meegegeven.
-%I
-%I De linker, rechter of dubbele inspringing kan worden
-%I ingesteld met:
-%I
-%I \stelsmallerin[links=,rechts=,midden=]
-%I
-%I Enkele voorbeelden van smelelr zetten zijn:
-%I
-%I \startsmaller[2*links,rechts]
-%I \stopsmaller
-%I
-%I \startsmaller[midden,rechts]
-%I \stopsmaller
-
-\newskip\linkssmaller
-\newskip\rechtssmaller
-\newskip\middensmaller
-
-\def\dosinglesmaller#1%
- {\dosmaller[#1]}
-
-\def\dosmaller[#1]%
- {\processaction
- [#1]
- [ \v!links=>\global\advance\linkssmaller by \@@sllinks,
- \v!midden=>\global\advance\middensmaller by \@@slmidden,
- \v!rechts=>\global\advance\rechtssmaller by \@@slrechts,
- \s!unknown=>{\herhaalmetcommando[#1]\dosinglesmaller}]}
-
-\def\complexstartsmaller[#1]%
- {\par
- \bgroup
- \global\linkssmaller=\!!zeropoint
- \global\rechtssmaller=\!!zeropoint
- \global\middensmaller=\!!zeropoint
- \processcommalistwithparameters[#1]\dosmaller
- \advance\leftskip by \linkssmaller
- \advance\rightskip by \rechtssmaller
- \advance\leftskip by \middensmaller
- \advance\rightskip by \middensmaller}
-
-\def\simplestartsmaller%
- {\startsmaller[\v!midden]}
-
-\def\startsmaller%
- {\complexorsimple{startsmaller}}
-
-\def\stopsmaller%
- {\par % else skips forgotten
- \egroup}
-
-\def\stelsmallerin%
- {\dodoubleargument\getparameters[\??sl]}
-
-%I n=Boxen
-%I c=\definieerhbox,\cbox,\lbox,\rbox,\sbox
-%I
-%I Het is mogelijk een tekst in een blok met een vaste
-%I omvang te zetten. Dit is vergelijkbaar met het opmaken
-%I van een tabel.
-%I
-%I \hbox?{tekst} (horizontaal blok)
-%I
-%I De box wordt eerst gedefinieerd met:
-%I
-%I \definieerhbox[?][maat]
-%I
-%I Er kan een links, rechts of midden uitgelijnde \vbox worden
-%I gezet met de commando:
-%I
-%I \lbox{tekst\\tekst\\tekst} of \lbox to <maat>{...}
-%I \rbox{tekst\\tekst\\tekst} of \rbox to <maat>{...}
-%I \cbox{tekst\\tekst\\tekst} of \cbox to <maat>{...}
-%I
-%I Het commando \\ forceert een overgang naar een nieuwe regel.
-%I
-%I Een (hoge) box kan een gedwongen hoogte gelijk aan die
-%I van een strut krijgen met:
-%I
-%I \sbox{box}
-
-\def\dodefinieerhbox[#1][#2]%
- {\setvalue{hbox#1}##1%
- {\hbox to #2{\begstrut##1\endstrut\hss}}}
-
-\def\definieerhbox%
- {\dodoubleargument\dodefinieerhbox}
-
-\def\lrcbox#1#2#%
- {\vbox#2\bgroup
- \let\\=\endgraf
- \forgetall#1\let\next=}
-
-\def\lbox%
- {\lrcbox\raggedleft}
-
-\def\rbox%
- {\lrcbox\raggedright}
-
-\def\cbox%
- {\lrcbox\raggedcenter}
-
-\def\dosetraggedbox#1%
- {\processaction
- [#1]
- [ \v!links=>\def\raggedbox{\lbox},
- \v!rechts=>\def\raggedbox{\rbox},
- \v!midden=>\def\raggedbox{\cbox},
- \v!nee=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=},
- \s!default=>\def\raggedbox{\vbox},
- \s!unknown=>\def\raggedbox{\vbox}]}
-
-\def\dosetraggedcommand#1%
- {\processaction
- [#1]
- [ \v!links=>\def\raggedcommand{\raggedleft},
- \v!rechts=>\def\raggedcommand{\raggedright},
- \v!midden=>\def\raggedcommand{\raggedcenter},
- \v!nee=>\def\raggedcommand{\raggedright},
- \s!default=>\def\raggedcommand{\raggedcenter},
- \s!unknown=>\def\raggedcommand{}]}
-
-%I n=Blokken
-%I c=\stelplaatsblokkenin,\stelblokkopjesin
-%I c=\definieerplaatsblok,\stelplaatsblokin
-%I c=\reserveer,\leeg,\plaats,\volledigelijstmet,\plaatslijstmet
-%I
-%I Figuren, tabellen, grafieken enz. kunnen in de tekst
-%I worden geplaatst met het commando:
-%I
-%I \plaats<bloknaam>[voorkeur][referentie]{titel}{blok}
-%I
-%I Als voorkeur kan worden opgegeven:
-%I
-%I hier bij voorkeur op deze plaats in de tekst
-%I forceer per se op deze plaats in de tekst
-%I pagina op een nieuwe pagina
-%I boven bovenaan de huidige pagina
-%I onder onderaan de huidige pagina
-%I
-%I links links in de paragraaf
-%I rechts rechts in de paragraaf
-%I
-%I inlinker in linker marge (gelijke hoogte)
-%I inrechter in rechter marge (gelijke hoogte)
-%I inmarge in linker/rechter marge (gelijke hoogte)
-%I marge in de marge
-%P
-%I Als er op de huidige bladzijde geen plaats is, dan wordt
-%I standaard de figuur verplaatst (eerste vier opties) en/of
-%I wordt overgegaan naar een nieuwe bladzijde (laatste twee
-%I opties.
-%I
-%I Men kan plaatsen afdwingen door het trefwoord altijd
-%I mee te geven: \plaats[hier,altijd][]{}{}. Er zijn dan
-%I twee runs nodig, omdat de nummering van de blokken moet
-%I worden aangepast.
-%I
-%I Als in plaats van een titel 'geen' wordt meegegeven, wordt
-%I geen titel geplaatst.
-%I
-%I Als het blok nog onbekend is, kan in plaats van het blok
-%I een van de volgende commando's worden meegegeven:
-%I
-%I \leeg<bloknaam>
-%I \lege<bloknaam>
-%P
-%I Het is mogelijk ruimte voor een blok te reserveren:
-%I
-%I \reserveer<bloknaam>[hoogte=,breedte=,kader=][voorkeur]
-%I [referentie]{titel}
-%I
-%I Beide commando's kunnen ook gegeven worden zonder [],
-%I dus in de vorm
-%I
-%I \plaats<bloknaam>{titel}{blok}
-%I \reserveer<bloknaam>{titel}
-%I
-%I Ten behoeve van een consistente verwijzing wordt het
-%I commando:
-%I
-%I \in<bloknaam>[referentie]
-%I
-%I gedefinieerd. Dit levert in de tekst op:
-%I
-%I 'in <bloknaam> <nummer>'
-%P
-%I Blokken kunnen worden gedefinieerd met het commando:
-%I
-%I \definieerplaatsblok[blok][blokken]
-%I
-%I Hierna zijn de volgende commando's beschikbaar:
-%I
-%I \plaatsblok[plaats][referentie]{titel}{blok}
-%I \reserveerblok[afmetingen][plaats][referentie]{titel}
-%I \leegblok
-%I
-%I Het is mogelijk een en ander in te stellen met het
-%I commando:
-%I
-%I \stelplaatsblokin[blok][hoogte=,breedte=,kader=,
-%I bovenkader=,onderkader=,linkerkader=,rechterkader=,
-%I paginaovergangen=]
-%I
-%I De hoogte en breedte hebben betrekking op de te reserveren
-%I ruimte.
-%P
-%I Naast de eerder genoemde commando's zijn nog beschikbaar:
-%I
-%I \plaatslijstmetblokken
-%I \volledigelijstmetblokken
-%I
-%I en een (extra) commando om tekst naast een blok (hier met
-%I de naam 'blok') te plaatsen:
-%I
-%I \startbloktekst[plaats][referentie]{kop}{blok}
-%I ...
-%I \stopbloktekst
-%I
-%I Mogelijke plaatsen zijn 'links', 'rechts', 'hoog', 'laag' en
-%I 'midden'. Ook is een combinatie van deze instellingen
-%I mogelijk, bijvoorbeeld [links,hoog]. De instelling 'offset'
-%I resulteert in een verschuiving van 1 regel.
-%P
-%I Blokken die tussen de tekst staan kunnen links, rechts of in
-%I het midden worden uitgelijnd. De plaats wordt ingesteld met:
-%I
-%I \stelplaatsblokkenin[plaats=,breedte=,kader=,bovenkader=,
-%I onderkader=,linkerkader=,rechterkader=,offset=,voorwit=,
-%I nawit=,marge=]
-%I
-%I De genummerde kopjes bij blokken kunnen worden ingesteld
-%I met:
-%I
-%I \stelblokkopjesin[plaats=,voor=,tussen=,na=,letter=,
-%I kopletter=,breedte=,nummer=,uitlijnen=]
-%I
-%I waarbij als plaats kan worden meegegeven: 'boven', 'onder',
-%I 'geen', 'hoog', 'laag' of 'midden'. Als breedte kan 'passend'
-%I of 'max' worden meegegeven. De parameter nummer kan 'ja' of
-%I 'nee' zijn. Als breedte=max, dan wordt het kopje over de
-%I hele breedte geplaatst. In dat geval kan uitlijnen worden
-%I ingesteld: 'links', 'midden' of 'rechts'.
-%P
-%I Als er geen plaats is, worden plaatsblokken tijdelijk
-%I achtergehouden. De opgespaarde blokken worden op de
-%I volgende bladzijde(n) geplaatst. Dit plaatsen is te
-%I beinvloeden met:
-%I
-%I \stelplaatsblokkenin[nboven=,nonder=,nregels=]
-%I
-%I Standaard worden maximaal 2 blokken bovenaan de
-%I bladzijde geplaatst en 0 blokken onder. Er wordt overgegaan
-%I op een nieuwe bladzijde als het aantal regels groter is
-%I dan 4. Deze waarden kunnen worden ingesteld.
-%P
-%I Kopjes boven lijsten en labels voor nummers kunnen worden
-%I ingesteld met de elders beschreven commando's:
-%I
-%I \stellabeltekstin[label=...]
-%I \stelkoptekstin[tekst=...]
-%I
-%I Standaard zijn deze ingesteld op de opgegeven namen.
-
-\def\stelplaatsblokkenin%
- {\dodoubleargument\getparameters[\??bk]}
-
-\def\stelblokkopjesin%
- {\dodoubleargument\getparameters[\??kj]}%
-
-\def\dostelplaatsblokin[#1][#2]%
- {\getparameters[\??fl#1][#2]}
-
-\def\stelplaatsblokin%
- {\dodoubleargument\dostelplaatsblokin}
-
-\def\dostelblokkopjein[#1][#2]%
- {\getparameters[\??kj#1][#2]}
-
-\def\stelblokkopjein%
- {\dodoubleargument\dostelblokkopjein}
-
-\def\doleegblok#1%
- {\localframed
- [\??fl#1][\c!kader=\v!aan]%
- {\getmessage{\m!floatblocks}{12}}}
-
-\def\docomplexplaatsblok[#1][#2][#3]#4%
- {\ifmargeblokken
- \doifinset{\v!marge}{#2}
- {\bgroup
- \everypar{\egroup\the\everypar}%
- \hsize=\@@mbbreedte}%
- \fi
- \global\insidefloattrue
- \dowithnextbox
- {\docompletefloat
- {#1}{#3}{#1}{#2}{\labeltext{#1}}{#4}
- {\box\nextbox}}%
- \vbox}
-
-\def\docomplexstarttekstblok[#1][#2][#3]%
- {\flushsidefloats % hoort eigenlijk niet hier
- \docomplexplaatsblok[#1][\v!tekst,#2,\v!links][#3]}
-
-\def\docomplexreserveerblok[#1][#2][#3][#4]#5%
- {\getvalue{\e!plaats#1}[#3][#4]{#5}{\localframed[\??fl#1][#2]{#1}}}
-
-\def\docomplexstartreserveertekstblok[#1][#2][#3][#4]%
- {\flushsidefloats % hoort eigenlijk niet hier
- \docomplexreserveerblok[#1][#2][\v!tekst,#3,\v!links][#4]}
-
-\def\dodefinieerplaatsblok[#1][#2]% #1=naam #2=meervoud
- {\presetlocalframed[\??fl#1]%
- \stelplaatsblokin
- [#1]
- [\c!breedte=15\korpsgrootte,
- \c!hoogte=10\korpsgrootte,
- \c!kader=\@@bkkader,
- \c!straal=\@@bkstraal,
- \c!hoek=\@@bkhoek,
- \c!achtergrond=\@@bkachtergrond,
- \c!achtergrondraster=\@@bkachtergrondraster,
- \c!achtergrondkleur=\@@bkachtergrondkleur,
- \c!bovenkader=\@@bkbovenkader,
- \c!onderkader=\@@bkonderkader,
- \c!linkerkader=\@@bklinkerkader,
- \c!rechterkader=\@@bkrechterkader,
- \c!paginaovergangen=]%
- \stelblokkopjein
- [#1]
- [\c!plaats=\@@kjplaats,
- %\c!voor=\@@kjvoor,
- \c!tussen=\@@kjtussen,
- %\c!na=\@@kjna,
- \c!breedte=\@@kjbreedte,
- \c!kopletter=\@@kjkopletter,
- \c!letter=\@@kjletter,
- \c!kleur=\@@kjkleur,
- \c!uitlijnen=\@@kjuitlijnen,
- \c!nummer=\@@kjnummer,
- \c!wijze=\@@kjwijze,
- \c!blokwijze=\@@kjblokwijze,
- \c!sectienummer=\@@kjsectienummer,
- \c!conversie=\@@kjconversie]%
- \doorlabelen
- [#1]
- [\c!tekst=#1,
- \c!plaats=\v!intekst,
- \c!wijze=\getvalue{\??kj#1\c!wijze},
- \c!blokwijze=\getvalue{\??kj#1\c!blokwijze},
- \c!sectienummer=\getvalue{\??kj#1\c!sectienummer},
- \c!conversie=\getvalue{\??kj#1\c!conversie}]%
- \presetlabeltext[#1=\Woord{#1}~]%
- \presetheadtext[#2=\Woord{#2}]%
- \definieerlijst[#1]%
- \setvalue{\e!plaats\e!lijstmet#2}%
- {\dodoubleempty\doplaatslijst[#1]}%
- \setvalue{\e!volledige\e!lijstmet#2}%
- {\dotripleempty\dodovolledigelijst[#1][#2]}%
- \setvalue{\e!plaats#1}%
- {\dotripleempty\docomplexplaatsblok[#1]}%
- \setvalue{\e!reserveer#1}%
- {\doquadrupleempty\docomplexreserveerblok[#1]}%
- \setvalue{\e!start#1\e!tekst}%
- {\dotripleempty\docomplexstarttekstblok[#1]}%
- \setvalue{\e!stop#1\e!tekst}%
- {\stoptextfloat{#1}}%
- \setvalue{\e!start\e!reserveer#1\e!tekst}%
- {\doquadrupleempty\docomplexstartreserveertekstblok[#1]}%
- \setvalue{\e!stop\e!reserveer#1\e!tekst}%
- {\stoptextfloat{#1}}%
- \setvalue{\e!lege#1}%
- {\doleegblok{#1}}%
- \setvalue{\e!leeg#1}%
- {\doleegblok{#1}}}
-
-%\setvalue{\c!in#1}[##1]%
-% {\c!in\normalspace\in{\labeltext{#1}}[##1]}}
-
-\def\definieerplaatsblok%
- {\dodoubleargument\dodefinieerplaatsblok}
-
-% De onderstaande macro's ondersteunen het zetten van tekst
-% rond figuren. De macro's zijn ontworpen door Daniel Comenetz
-% en gepubliceerd in TUGBoat Volume 14 (1993), No. 1: Anchored
-% Figures at Either Margin. De macro's zijn slechts op enkele
-% punten door mij aangepast.
-
-% afhankelijke variabelen
-%
-% \overgap vervangen door \floatsidetopskip
-% \sidegap vervangen door \floatsideskip
-% \undergap vervangen door \floatsidebottomskip
-%
-% \prskp vervangen door \tussenwit
-
-% toegevoegde macro's/aanroepen
-%
-% \logsidefloat : loginformatie
-% \flushsidefloats : nodig voor koppen
-
-% recente wijzigingen:
-%
-% namen aangepast: \float... enz. i.p.v. \pic
-
-% Pas op: \EveryPar{\EveryPar{}\margetitel{whatever}}
-% \plaatsfiguur[links]{}{} moet goed gaan. In dat geval
-% begint de tekst terecht wat lager.
-
-\newdimen\sidefloatheight % includes the topskip
-\newdimen\sidefloatwidth
-\newdimen\sidefloathsize
-\newdimen\sidefloatvsize \def\nofloatvsize{-1pt }
-
-\newbox\floatbottom
-
-\newif\ifrightfloat
-\newif\ifmarginfloat
-\newif\ifroomforfloat
-\newif\iffloatshort
-\newif\iffloatflag
-\newif\iffloatrighteqo
-\newif\iffloatlefteqo
-
-\let\floatrighteqo=\eqno
-\let\floatleftleqo=\leqno
-
-% Watch it!
-
-\everypar ={\flushfootnotes\checksidefloat\checkindentation}
-
-% Watch it even more! In inner, gaat't mis omdat daar
-% pagetotal enz niet zijn aangepast. Inner kan overigens niet
-% betrouwbaar worden getest!
-
-\everypar ={\flushfootnotes\ifinner\else\checksidefloat\fi\flushmargincontents\checkindentation}
-\neverypar ={}%\autopostponefootnotes}
-\everydisplay={\flushfootnotes\adjustsidefloatdisplaylines}
-
-\def\flushsidefloats%
- {\par
- \!!heighta=\sidefloatvsize
- \advance\!!heighta by -\pagetotal
- \ifdim\!!heighta>\!!zeropoint\relax
- \witruimte % nog cheken op interferentie
- \kern\!!heighta\relax
- \fi
- \global\sidefloatvsize=\nofloatvsize
- \floatflagfalse}
-
-\def\flushsidefloatsafterpar%
- {\xdef\oldpagetotal{\the\pagetotal}%
- \gdef\checksidefloat%
- {\dochecksidefloat
- \ifdim\oldpagetotal=\pagetotal \else
- \xdef\checksidefloat{\dochecksidefloat}%
- \flushsidefloats
- \fi}}
-
-\let\logsidefloat=\relax
-
-\def\pushpenalties%
- {\let\oldwidowpenalty=\widowpenalty
- \let\oldclubpenalty=\clubpenalty
- \let\oldbrokenpenalty=\brokenpenalty
- \widowpenalty=1
- \clubpenalty=2
- \brokenpenalty=1
- \let\pushpenalties=\relax
- \def\poppenalties%
- {\widowpenalty=\oldwidowpenalty
- \clubpenalty=\oldclubpenalty
- \brokenpenalty=\oldbrokenpenalty}}
-
-\let\poppenalties=\relax
-
-\def\restorepenalties%
- {\ifnum\outputpenalty=\!!tenthousand\relax
- \else
- \penalty\outputpenalty
- \fi}
-
-\def\sidefloatoutput%
- {\iffloatshort
- \unvbox255\relax
- \setbox\floatbottom=\lastbox
- \ifdim\wd\floatbottom>\sidefloathsize
- \penalty-201\relax
- \box\floatbottom
- \else
- \ifvoid\floatbottom
- \else
- \restoreleftindent
- \ifdim\wd\floatbottom<\sidefloathsize
- \parskip=\!!zeropoint
- %\noindent
- \vadjust{\penalty-1}%
- \iffloatlefteqo
- \global\floatlefteqofalse
- \else
- \advance\sidefloathsize by -\wd\floatbottom
- \iffloatrighteqo
- \global\floatrighteqofalse
- \else
- \divide\sidefloathsize by 2\relax
- \fi
- \hskip\sidefloathsize
- \fi
- \fi
- \box\floatbottom
- \restorepenalties
- \fi
- \fi
- \global\holdinginserts=0\relax
- \global\floatshortfalse
- \else
- \finaloutput{\unvbox255}%
- \global\sidefloatvsize=\nofloatvsize
- \poppenalties
- \fi}
-
-\def\restoreleftindent%
- {\ifrightfloat
- \else
- \parskip=\!!zeropoint
- \noindent
- \vadjust{\penalty-1}%
- \hskip\sidefloatwidth
- \fi}
-
-\def\eqno%
- {\iffloatshort
- \global\floatrighteqotrue
- \fi
- \floatrighteqo}
-
-\def\leftmarginfloat#1%
- {\rightfloatfalse\marginfloattrue\putsidefloat{#1}}
-
-\def\rightmarginfloat#1%
- {\rightfloattrue\marginfloattrue\putsidefloat{#1}}
-
-\def\leftfloat#1%
- {\rightfloatfalse\marginfloatfalse\putsidefloat{#1}}
-
-\def\rightfloat#1%
- {\rightfloattrue\marginfloatfalse\putsidefloat{#1}}
-
-\def\putsidefloat#1%
- {\par
- \witruimte
- \previoussidefloat
- \stallsidefloat
- \setbox\floatbox=\hbox{\vbox{\vskip\sidefloattopoffset#1}}
- \measuresidefloat
- \ifroomforfloat
- \setsidefloat
- \else
- \tosssidefloat
- \measuresidefloat
- \stallsidefloat
- \setsidefloat
- \fi}
-
-\def\progresssidefloat%
- {\!!heighta=\sidefloatvsize
- \iffloatflag
- \advance\!!heighta by -\dimen3\relax
- \floatflagfalse
- \else
- \advance\!!heighta by -\pagetotal
- \fi}
-
-\def\tosssidefloat%
- {\vfill\eject}
-
-\def\measuresidefloat%
- {\floatflagtrue
- \dimen3=\pagetotal
- \ifmarginfloat
- \sidefloatwidth=\!!zeropoint
- \else
- \sidefloatwidth=\wd\floatbox
- \advance\sidefloatwidth by \floatsideskip
- \fi
- \sidefloathsize=\hsize
- \advance\sidefloathsize by -\sidefloatwidth
- \sidefloatheight=\ht\floatbox
- %\advance\sidefloatheight by \dp\floatbox % NJET
- \advance\sidefloatheight by \sidefloattopskip
- \global\sidefloatvsize=\sidefloatheight
- \global\advance\sidefloatvsize by \dimen3\relax
- \dimen0=\sidefloatvsize
- \advance\dimen0 by -\baselineskip
- \ifdim\dimen0>.99\pagegoal
- \roomforfloatfalse
- \else
- \dimen0=\pagegoal
- \advance\dimen0 by -\sidefloatvsize
- \ifdim\dimen0<\sidefloatbottomskip
- \global\advance\sidefloatvsize by \dimen0\relax
- \floatshorttrue
- \pushpenalties
- \holdinginserts=1\relax
- \else
- \global\advance\sidefloatvsize\sidefloatbottomskip
- \floatshortfalse
- \fi
- \roomforfloattrue
- \fi}
-
-\def\setsidefloat%
- {\kern\sidefloattopskip
- \oldprevdepth=\prevdepth
- \nointerlineskip
- \bgroup
- \everypar={}\relax
- \parskip=\!!zeropoint
- \logsidefloat
- \ifrightfloat
- \hfill
- \ifmarginfloat
- \rlap{\hskip\rechtermargeafstand\unhbox\floatbox}%
- \else
- \unhbox\floatbox
- \fi
- \else
- \noindent
- \ifmarginfloat
- \llap{\unhbox\floatbox\hskip\linkermargeafstand}%
- \else
- \unhbox\floatbox
- \fi
- \hfill
- \fi
- \egroup
- \par
- \kern-\sidefloatheight
- \penalty10001\relax
- \normalbaselines
- \prevdepth=\oldprevdepth
- %\noindent
- \resetsidefloatparagraph
- \ignorespaces}
-
-\newcount\sidefloatparagraph
-
-\def\iffirstsidefloatparagraph%
- {\ifnum\sidefloatparagraph=1\relax}
-
-\def\setsidefloatparagraph%
- {\global\advance\sidefloatparagraph by 1\relax}
-
-\def\resetsidefloatparagraph%
- {\global\sidefloatparagraph=0\relax}
-
-\def\dochecksidefloat%
- {\progresssidefloat
- \ifdim\!!heighta>\!!zeropoint\relax
- \advance\!!heighta by \sidefloatbottomskip
- \!!counta=\!!heighta\relax
- \divide\!!counta by \baselineskip
- \ifnum\!!counta>0\relax
- \ifrightfloat
- \hangindent=-\sidefloatwidth
- \else
- \hangindent=\sidefloatwidth
- \fi
- \hangafter=-\!!counta
- \fi
- \setsidefloatparagraph
- \else
- \resetsidefloatparagraph
- \fi
- \parskip=\tussenwit}
-
-\def\checksidefloat%
- {\dochecksidefloat}
-
-\def\doadjustsidefloatdisplaylines%
- {\par
- \vskip-\parskip
- \noindent
- \ignorespaces}
-
-\def\adjustsidefloatdisplaylines%
- {\aftergroup\doadjustsidefloatdisplaylines}
-
-\def\previoussidefloat%
- {\progresssidefloat
- \ifdim\!!heighta>\!!zeropoint\relax
- \iffloatshort
- \floatshortfalse
- \tosssidefloat
- \else
- \kern\!!heighta\relax
- \fi
- \fi}
-
-\def\stallsidefloat%
- {\!!counta=\pageshrink
- \divide\!!counta by \baselineskip
- \advance\!!counta by 1\relax
- \parskip=\!!zeropoint
- \dorecurse{\!!counta}{\line{}}
- \kern-\!!counta\baselineskip
- \penalty0\relax}
-
-% De onderstaande macro's zijn verantwoordelijk voor het plaatsen
-% van floats. De macro's moeten nog worden aangepast en
-% uitgebreid:
-%
-% - nofloatpermitted : top, bot en mid counters en geen topins
-% als reeds midfloat of botfloat
-%
-% - links, rechts, midden als niet hangend
-
-\newif\ifsomefloatwaiting \somefloatwaitingfalse
-\newif\ifroomforfloat \roomforfloattrue
-\newif\ifnofloatpermitted \nofloatpermittedfalse
-\newif\iffloatsonpage \floatsonpagefalse
-
-\newcount\totalnoffloats \totalnoffloats=0
-\newcount\savednoffloats \savednoffloats=0
-\newcount\noffloatinserts \noffloatinserts=0
-
-\newbox\floatlist
-
-\newinsert\botins
-
-\skip\botins=\!!zeropoint
-\count\botins=\!!thousand
-\dimen\botins=\maxdimen
-
-\newdimen\topinserted
-\topinserted=\!!zeropoint
-
-\newdimen\botinserted
-\botinserted=\!!zeropoint
-
-\newif\ifflushingfloats
-\flushingfloatsfalse
-
-\newbox\floattext
-
-\newdimen\floattextwidth
-\newdimen\floattextheight
-
-\newbox\floatbox
-
-\newdimen\floatwidth
-\newdimen\floatheight
-
-% Er wordt bij \v!altijd als dat nodig is hernummerd.
-% Daarbij wordt gebruik gemaakt van de opgeslagen nummers en
-% volgorde.
-
-\definetwopasslist{\s!float}
-
-\def\dofloatreference%
- {\doglobal\increment\numberedfloat
- \edef\dodofloatreference%
- {\writeutilitycommand%
- {\twopassentry%
- {\s!float}%
- {\numberedfloat}%
- {\hetnummer}}}%
- \dodofloatreference}
-
-\def\redofloatorder#1%
- {\doglobal\increment\nofplacedfloats\relax
- \gettwopassdata{\s!float}%
- \iftwopassdatafound
- \doifnot{\hetnummer}{\twopassdata}
- {\edef\oldhetnummer{\hetnummer}%
- \xdef\hetnummer{\twopassdata}%
- \showmessage
- {\m!floatblocks}{1}
- {\nofplacedfloats,#1 \oldhetnummer,\hetnummer}}%
- \fi}
-
-% In \dofloatinfomessage wordt {{ }} gebruikt omdat anders
-% binnen \startuitstellen...\stopuitstellen geen goede
-% melding in de marge volgt: \ifinner is dan namelijk true.
-
-\def\dofloatinfomessage#1#2#3%
- {\bgroup
- \showmessage{\m!floatblocks}{#2}{#3}%
- \@EA\floatinfo\@EA#1\@EA{\currentmessagetext}%
- \egroup}
-
-\def\dosavefloatinfo%
- {\dofloatinfomessage{>}{2}{\the\totalnoffloats}}
-
-\def\dofloatflushedinfo%
- {\!!counta=\totalnoffloats\relax
- \advance\!!counta by -\savednoffloats\relax%
- \dofloatinfomessage{<}{3}{\the\!!counta}}
-
-\def\doinsertfloatinfo%
- {\dofloatinfomessage{<}{4}{\the\totalnoffloats}}
-
-% ook voetnoten saven
-
-\def\dosavefloat%
- {\global\setbox\floatlist=\vbox
- {\nointerlineskip
- \box\floatbox\relax
- \unvbox\floatlist}%
- \global\advance\savednoffloats by 1\relax
- \global\somefloatwaitingtrue
- \dosavefloatinfo}
-
-\def\doresavefloat%
- {\global\setbox\floatlist=\vbox
- {\nointerlineskip
- \unvbox\floatlist
- \box\floatbox}%
- \global\advance\savednoffloats by 1\relax
- \global\somefloatwaitingtrue}
-
-\def\doreversesavefloat%
- {\global\setbox\floatlist=\vbox
- {\nointerlineskip
- \unvbox\floatlist
- \box\floatbox}%
- \global\advance\savednoffloats by 1\relax
- \global\somefloatwaitingtrue
- \dosavefloatinfo}
-
-\def\checkwaitingfloats#1%
- {\ifsomefloatwaiting
- \doifinsetelse{\v!altijd}{#1}
- {\showmessage{\m!floatblocks}{5}{}}
- {\doflushfloats}%
- \fi}
-
-\def\doflushfloats%
- {\global\floatsonpagefalse
- \global\flushingfloatstrue
- \ifsomefloatwaiting
- \par
- \ifvmode\prevdepth=\maxdimen\fi % prevents whitespace
- \dodoflushfloats
- \fi
- \global\savednoffloats=0
- \global\somefloatwaitingfalse
- \global\flushingfloatsfalse}
-
-\def\dodoflushfloats% moet nog beter: als precies passend, niet onder baseline
- {\ifsomefloatwaiting
- \bgroup % \box\floatbox can be in use!
- \dogetfloat
- %\forgetall % NJET!
- \witruimte
- \blanko[\@@bkvoorwit]
- \flushfloatbox
- %\ifnum\savednoffloats>1 % REMOVED
- %\else
- \blanko[\@@bknawit]
- %\fi
- \egroup
- \dofloatflushedinfo
- \expandafter\dodoflushfloats
- \fi}
-
-\newbox\globalscratchbox
-
-\def\dogetfloat%
- {\ifsomefloatwaiting
- \global\setbox\floatlist=\vbox
- {\unvbox\floatlist
- \global\setbox\globalscratchbox=\lastbox}%
- \setbox\floatbox=\box\globalscratchbox % local !
- \global\advance\savednoffloats by -1\relax
- \ifnum\savednoffloats=0\relax
- \global\somefloatwaitingfalse
- \fi
- \else
- \global\savednoffloats=0\relax
- \global\setboxfloatbox=\box\voidb@x
- \fi}
-
-\def\dotopfloat%
- {\ifdim\topinserted=\!!zeropoint\relax
- \topofinserttrue
- \else
- \topofinsertfalse
- \fi
- \global\advance\topinserted by \ht\floatbox
- \global\advance\topinserted by \dp\floatbox
- \global\advance\topinserted by \floatbottomskip
- \insert\topins
- {\forgetall
- \iftopofinsert
- \kern-\lineskip\par\prevdepth=\maxdimen
- \else
- %\blanko[-\@@bknawit,\@@bkvoorwit]% inserts can't look back
- \betweenfloatblanko
- \fi
- \flushfloatbox
- \blanko[\@@bknawit]}%
- \doinsertfloatinfo}
-
-% \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
- \ifdim\topinserted=\!!zeropoint\relax
- \topofinserttrue
- \else
- \topofinsertfalse
- \fi
- \global\advance\topinserted by \ht\floatbox
- \global\advance\topinserted by \dp\floatbox
- \global\advance\topinserted by \floatbottomskip\relax
- \ifdim\topinserted<\teksthoogte\relax
- \xdef\totaltopinserted{\the\topinserted}%
- \insert\topins
- {\forgetall
- \iftopofinsert
- \kern-\lineskip\par\prevdepth=\maxdimen
- \else
- %\blanko[-\@@bknawit,\@@bkvoorwit]% inserts can't look back
- \betweenfloatblanko
- \fi
- \flushfloatbox
- \blanko[\@@bknawit]}%
- \ifsomefloatwaiting
- \advance\noffloatinserts by 1
- \else
- \noffloatinserts=\noftopfloats\relax
- \fi
- \dofloatflushedinfo
- \else
- \doresavefloat
- \noffloatinserts=\noftopfloats\relax
- \fi
- \else
- \ifsomefloatwaiting
- \showmessage{\m!floatblocks}{6}{\the\noftopfloats}%
- \fi
- \let\dodosettopinserts=\relax
- \fi
- \dodosettopinserts}
-
-\def\dosettopinserts%
- {\bgroup
- \ifsomefloatwaiting
- \noffloatinserts=0\relax
- \let\totaltopinserted=\!!zeropoint\relax
- \dodosettopinserts
- \ifnum\@@bknonder=0\relax
- \ifnum\@@bknregels>0\relax
- \ifdim\totaltopinserted>\!!zeropoint\relax
- \dimen0=\lineheight
- \dimen0=\@@bknregels\dimen0\relax
- \advance\dimen0 by \totaltopinserted\relax
- \ifdim\dimen0>\teksthoogte
- \showmessage{\m!floatblocks}{8}{\@@bknregels}%
- \null\vfilll\eject
- \fi
- \fi
- \fi
- \fi
- \fi
- \egroup}
-
-\def\dodosetbotinserts%
- {\ifnum\noffloatinserts<\nofbotfloats\relax
- \dogetfloat
- \global\advance\botinserted by \ht\floatbox\relax
- \global\advance\botinserted by \dp\floatbox\relax
- \global\advance\botinserted by \floattopskip\relax
- \ifdim\botinserted<\pagegoal\relax
- \insert\botins
- {\forgetall
- \blanko[\@@bkvoorwit]%
- \flushfloatbox}%
- \ifsomefloatwaiting
- \advance\noffloatinserts by 1
- \else
- \noffloatinserts=\nofbotfloats
- \fi
- \dofloatflushedinfo
- \else
- \doresavefloat
- \noffloatinserts=\nofbotfloats\relax
- \fi
- \global\nofloatpermittedtrue % vgl topfloats s!
- \else
- \ifsomefloatwaiting
- \showmessage{\m!floatblocks}{7}{\the\nofbotfloats}%
- \fi
- \let\dodosetbotinserts=\relax
- \fi
- \dodosetbotinserts}
-
-\def\dosetbotinserts%
- {\bgroup
- \ifsomefloatwaiting
- \noffloatinserts=0\relax
- \dodosetbotinserts
- \fi
- \egroup}
-
-\def\dobotfloat%
- {\global\advance\botinserted by \ht\floatbox
- \global\advance\botinserted by \dp\floatbox
- \global\advance\botinserted by \floattopskip
- \insert\botins
- {\forgetall
- \blanko[\@@bkvoorwit]%
- \flushfloatbox}%
- %\global\nofloatpermittedtrue
- \doinsertfloatinfo}
-
-\def\dosetbothinserts%
- {\ifflushingfloats
- \global\topinserted=\!!zeropoint\relax
- \global\botinserted=\!!zeropoint\relax
- \else
- \global\topinserted=\!!zeropoint\relax
- \dosettopinserts
- \global\botinserted=\topinserted\relax
- \dosetbotinserts
- \fi}
-
-\def\dotopinsertions%
- {\ifvoid\topins\else
- \unvbox\topins
- \fi
- \global\topinserted=\!!zeropoint\relax}
-
-\def\dobotinsertions%
- {\ifvoid\botins\else
- \ifr@ggedbottom % \vfill is nieuw
- \unvbox\botins\vfill
- \else
- \vfill\unvbox\botins
- \fi
- \fi
- \global\botinserted=\!!zeropoint\relax
- \global\nofloatpermittedfalse}
-
-\newif\iftopofinsert
-\newif\iftestfloatbox %\testfloatboxtrue
-
-\def\flushfloatbox% nog verder doorvoeren en meer info in marge
- {\iftestfloatbox
- \ruledhbox{\box\floatbox}%
- \else
- \box\floatbox
- \fi}
-
-% beter de laatste skip buiten de \insert uitvoeren,
-% bovendien bij volle flush onder baseline.
-
-\def\betweenfloatblanko% assumes that \@@bknawit is present
- {\bgroup
- \setbox0=\vbox{\strut\blanko[\@@bkvoorwit]\strut}%
- \setbox2=\vbox{\strut\blanko[\@@bknawit]\strut}%
- \ifdim\ht0>\ht2
- \blanko[-\@@bknawit,\@@bkvoorwit]
- \fi
- \egroup}
-
-\def\doroomfloat%
- {\ifnofloatpermitted
- \global\roomforfloatfalse
- \else
- \dimen0=\pagetotal
- \advance\dimen0 by \ht\floatbox
- \advance\dimen0 by \dp\floatbox
- \advance\dimen0 by \floattopskip
- \advance\dimen0 by -\pageshrink % toegevoegd
- \ifdim\dimen0>\pagegoal
- \global\roomforfloatfalse
- \else
- \global\roomforfloattrue
- \fi
- \fi}
-
-\def\doexecfloat% spacing between two successive must be better
- {\baselinecorrection
- \witruimte
- \blanko[\@@bkvoorwit]%
- \flushfloatbox
- \blanko[\@@bknawit]%
- \doinsertfloatinfo}
-
-\def\somefixdfloat[#1]%
- {\doroomfloat
- \ifroomforfloat\else
- \goodbreak
- \fi
- \showmessage{\m!floatblocks}{9}{}%
- \doexecfloat}
-
-\def\somesidefloat[#1]% links, rechts NOG TESTEN EN AANPASSEN
- {\checkwaitingfloats{#1}%
- \def\logsidefloat%
- {\doinsertfloatinfo}%
- \setbox\floatbox=\vbox{\box\floatbox}%
- \wd\floatbox=\floatwidth
- \processfirstactioninset
- [#1]
- [ \v!links=>\leftfloat{\box\floatbox},
- \v!rechts=>\rightfloat{\box\floatbox},
- \v!inlinker=>\leftmarginfloat{\box\floatbox},
- \v!inrechter=>\rightmarginfloat{\box\floatbox},
- \v!inmarge=>{\doinmargenormal\leftmarginfloat\rightmarginfloat[]{\box\floatbox}}]%
- \doifinset{\v!lang}{#1}
- {\flushsidefloatsafterpar}}
-
-\def\sometextfloat[#1]% lang, links, rechts, hoog, midden, laag, offset
- {\checkwaitingfloats{#1}%
- \global\floattextwidth=\hsize
- \global\floatwidth=\wd\floatbox
- \global\floatheight=\ht\floatbox
- \global\advance\floattextwidth by -\floatwidth
- \global\advance\floattextwidth by -\@@bkmarge\relax % was \tfskipsize
- \doifinsetelse{\v!lang}{#1}
- {\floattextheight=\pagegoal
- \advance\floattextheight by -\pagetotal
- \advance\floattextheight by -\bigskipamount % lelijk
- \ifdim\floattextheight>\teksthoogte
- \floattextheight=\teksthoogte
- \fi
- \boxmaxdepth=\!!zeropoint\relax % toegevoegd
- \ifdim\floattextheight<\floatheight
- \floattextheight=\floatheight
- \fi
- \setbox\floattext=\vbox to \floattextheight}
- {\setbox\floattext=\vbox}%
- \bgroup
- \blanko[\v!blokkeer]
- \hsize\floattextwidth
- \ignorespaces}
-
-\def\stoptextfloat#1%
- {\egroup
- \doifnotinset{\v!lang}{#1}%
- {\ifdim\ht\floattext<\floatheight
- \floattextheight=\floatheight
- \else
- \floattextheight=\ht\floattext
- \fi}%
- \setbox\floatbox=\vbox to \floattextheight
- {\hsize\floatwidth
- \box\floatbox
- \vfill}%
- \setbox\floattext=\vbox to \floattextheight
- {\hsize\floattextwidth
- \doifinsetelse{\v!laag}{#1}
- {\vfill
- \box\floattext
- \doifinset{\c!offset}{#1}{\witruimte\blanko}}
- {\doifinsetelse{\v!midden}{#1}
- {\vfill
- \box\floattext
- \vfill}
- {\doifinset{\c!offset}{#1}{\witruimte\blanko}%
- \box\floattext
- \vfill}}}%
- \doifinsetelse{\c!rechts}{#1}%
- {\setbox\floatbox=\hbox to \hsize
- {\box\floattext
- \hfill
- \box\floatbox}}
- {\setbox\floatbox=\hbox to \hsize
- {\box\floatbox
- \hfill
- \box\floattext}}%
- \baselinecorrection
- \witruimte
- \blanko[\@@bkvoorwit]%
- \doifnotinset{\v!lang}{#1}%
- {\dp\floatbox=\dp\strutbox}% % toegevoegd
- \box\floatbox
- \blanko[\@@bknawit]%
- \doinsertfloatinfo}
-
-\def\somefacefloat[#1]% links, rechts, midden, hoog, midden, laag
- {\checkwaitingfloats{#1}%
- \startnaast\box\floatbox\stopnaast
- \doinsertfloatinfo}
-
-\def\somepagefloat[#1]% links, rechts, midden, hoog, midden, laag
- {\checkwaitingfloats{#1}%
- \vbox to \teksthoogte
- {\doifnotinset{\v!hoog}{#1}{\vfill}%
- \box\floatbox
- \doifnotinset{\v!laag}{#1}{\vfill}}%
- \doinsertfloatinfo
- \pagina} % toegevoegd
-
-\def\someelsefloat[#1]%
- {\doifinsetelse{\v!hier}{#1}
- {\doifinsetelse{\v!altijd}{#1}
- {\pagina[\v!voorkeur]%
- \doroomfloat
- \ifroomforfloat
- \doexecfloat
- \else
- \showmessage{\m!floatblocks}{9}{}%
- \doreversesavefloat
- \fi}
- {\ifsomefloatwaiting
- \dosavefloat
- \else
- \pagina[\v!voorkeur]%
- \doroomfloat
- \ifroomforfloat
- \doexecfloat
- \else
- \dosavefloat
- \fi
- \fi}}
- {\doifinsetelse{\v!altijd}{#1}
- {\doroomfloat
- \ifroomforfloat
- \processallactionsinset
- [#1]
- [ \v!boven=>\dotopfloat,
- \v!onder=>\dobotfloat,
- \s!default=>\doexecfloat]%
- \else
- \showmessage{\m!floatblocks}{9}{}%
- \doreversesavefloat
- \fi}
- {%\ifsomefloatwaiting % from before the renumbering time
- % \doflushfloats
- %\fi
- \doroomfloat
- \ifroomforfloat
- \processallactionsinset
- [#1]
- [ \v!boven=>%%\ifdim\topinserted=\!!zeropoint\relax
- %\iffloatsonpage
- % \dosavefloat
- %\else
- \dotopfloat
- %\fi
- %%\else
- %% \dosavefloat
- %%\fi
- ,
- \v!onder=>%\ifdim\botinserted=\!!zeropoint\relax
- \dobotfloat
- %\else
- % \dosavefloat
- %\fi
- ,
- \s!default=>\doexecfloat]%
- \else
- \dosavefloat
- \fi}}}
-
-% De onderstaande macro wordt gebruikt bij de macros
-% voor het plaatsen van tabellen en figuren (klopt niet
-% meer).
-%
-% \dofloat {plaats} {label1} {label2} {kader}
-%
-% \docompletefloat {nummer} {referentie} {lijst}
-% {plaats} {label1} {label2} {inhoud}
-%
-% \box\floatbox inhoud+referentie
-%
-% \do???float#1 #1 = boxnummer
-%
-% \ifinsidefloat wordt \true gezet voor \docompletefloat en \false
-% na float plaatsen; kan worden gebruikt om in
-% andere commando's witruimte te onderdrukken
-
-\newdimen\floattopskip \floattopskip=12pt
-\newdimen\floatbottomskip \floatbottomskip=12pt
-\newdimen\floatsideskip \floatsideskip=12pt
-
-\newdimen\sidefloattopskip \sidefloattopskip=\floattopskip
-\newdimen\sidefloatbottomskip \sidefloatbottomskip=\floatbottomskip
-\def\sidefloattopoffset {\dp\strutbox}
-
-\newcount\noftopfloats \noftopfloats=2
-\newcount\nofbotfloats \nofbotfloats=0
-
-\def\calculatefloatskips%
- {{\def\calculatefloatskips##1##2%
- {\doifelsenothing{##2}
- {\global##1=\!!zeropoint}
- {\doifelse{##2}{\v!geen}
- {\global##1=\!!zeropoint}
- {\setbox0=\vbox{\witruimte\@EA\blanko\@EA[##2]}%
- \global##1=\ht0}}}%
- \calculatefloatskips\floattopskip\@@bkvoorwit
- \calculatefloatskips\floatbottomskip\@@bknawit
- \calculatefloatskips\sidefloattopskip\@@bkzijvoorwit
- \calculatefloatskips\sidefloatbottomskip\@@bkzijnawit
- \def\sidefloattopoffset{\dp\strutbox}%
- \global\floatsideskip=\@@bkmarge\relax
- \global\noftopfloats=\@@bknboven\relax
- \global\nofbotfloats=\@@bknonder\relax}}
-
-\newif\ifinsidefloat
-\insidefloatfalse
-
-\def\floatcaptionsuffix{} % an optional suffix
-\def\floatcaptionnumber{} % a logical counter
-
-\def\dosetfloatcaption#1#2#3%
- {\def\dofloattekst%
- {{\doattributes{\??kj#1}{#3}}}%
- \doifelsevalue{\??kj#1\c!nummer}{\v!ja}
- {\def\dofloatnummer%
- {{\xdef\floatcaptionnumber{#1}%
- \hbox{\doattributes{\??kj#1\v!kop}{\strut#2\floatcaptionsuffix}}}%
- \ConvertToConstant\doifnot{#3}{}
- {\tfskip
- \emergencystretch=.5em}}}
- {\def\dofloatnummer%
- {}}}
-
-\def\putborderedfloat#1\in#2\\%
- {\setbox#2=\vbox
- {\localframed
- [\??fl#1]
- [\c!breedte=\@@bkbreedte,
- \c!hoogte=\@@bkhoogte,
- \c!offset=\@@bkoffset]%
- {\box\floatbox}}}
-
-\newbox\captionbox
-
-\def\putcompletecaption%
- {\mindermeldingen
- \begstrut\dofloatnummer\dofloattekst\endstrut}
-
-\def\dosetpagfloat#1#2#3#4%
- {\bgroup
- \forgetall
- %\showcomposition
- \putborderedfloat#4\in4\\%
- \def\locatefloat%
- {\doregelplaats\@@bkplaats}%
- \ConvertToConstant\doifelse{#3}{\v!geen}
- {\global\setbox\floatbox=\vbox
- {\locatefloat{\box4}}}
- {\dosetfloatcaption{#4}{#2}{#3}%
-% at another level, prevents reprocessing of footnotes
-\setbox\captionbox=\hbox{\putcompletecaption}%
-\def\putcompletecaption{\unhcopy\captionbox}%
-%
- \setbox2=\hbox
- {\forgetall
- \putcompletecaption}%
- \doifinsetelse{\@@kjkjplaats}{\v!hoog,\v!midden,\v!laag}
- {\dimen0=\hsize
- \advance\dimen0 by -\wd4\relax
- \advance\dimen0 by -\@@bkmarge\relax % \was tfskipsize\relax
- \ifdim\wd2>\dimen0\relax
- \dimen2=1.3\dimen0\relax
- \ifdim\wd2<\dimen2\relax
- \dimen0=0.8\dimen0\relax
- \fi
- \fi
- \setbox2=\vbox
- {\forgetall
- \hsize=\dimen0\relax
- \raggedright
- \begstrut\dofloatnummer
- \ifx\@@kjkjtussen\empty \else
- \unskip\@@kjkjtussen
- \fi
- \dofloattekst
- \endstrut}}
- {\doifelse{\@@kjkjbreedte}{\v!max}
- {\dosetraggedbox{\@@kjkjuitlijnen}%
- \setbox2=\raggedbox
- {\hsize\wd4\relax
- \putcompletecaption}}
- {\ifdim\wd2>\wd4\relax
- \doifelse{\@@kjkjbreedte}{\v!passend}
- {\ifdim\wd4<15\korpsgrootte\relax
- \dimen0=15\korpsgrootte\relax
- \else
- \dimen0=\wd4\relax
- \fi
- \ifdim\wd4>\hsize
- \setbox0=\vbox
- {\forgetall
- \hsize=1.0\wd4
- \putcompletecaption}%
- \ifdim\ht0>\lineheight\relax
- \setbox2=\vbox
- {\forgetall
- \hsize=0.9\wd4
- \putcompletecaption}%
- \fi
- \else
- \setbox0=\vbox
- {\forgetall
- \dimen2=1.5\dimen0\relax
- \ifdim\dimen2<\hsize
- \hsize=\dimen2\relax
- \fi
- \putcompletecaption}%
- \ifdim\ht0>\lineheight\relax
- \setbox2=\vbox
- {\forgetall
- \dimen2=1.2\dimen0\relax
- \ifdim\dimen2<\hsize
- \hsize=\dimen2\relax
- \fi
- \putcompletecaption}%
- \fi
- \fi}
- {\dosetraggedbox{\@@kjkjuitlijnen}%
- \setbox2=\raggedbox
- {\hsize\@@kjkjbreedte
- \putcompletecaption}}%
- \fi}}%
- \global\setbox\floatbox=\vbox
- {\processaction
- [\@@kjkjplaats]
- [ \v!boven=>\locatefloat{\copy2}%
- \@@kjkjtussen
- \locatefloat{\copy4},
- \v!onder=>\locatefloat{\copy4}%
- \@@kjkjtussen
- \locatefloat{\copy2},
- \v!hoog=>\locatefloat
- {\doifelse{\@@bkplaats}{\v!links}
- {\copy4
- \tfskip
- \vbox to\ht4{\@@kjkjtussen\copy2\vfill}}
- {\vbox to\ht4{\@@kjkjtussen\copy2\vfill}%
- \tfskip
- \copy4}},
- \v!laag=>\locatefloat
- {\doifelse{\@@bkplaats}{\v!links}
- {\copy4
- \tfskip
- \vbox to\ht4
- {\vfill\copy2\@@kjkjtussen}}
- {\vbox to\ht4
- {\vfill\copy2\@@kjkjtussen}%
- \tfskip
- \copy4}},
- \v!midden=>\locatefloat
- {\doifelse{\@@bkplaats}{\v!links}
- {\copy4
- \tfskip
- \vbox to\ht4{\vfill\copy2\vfill}}
- {\vbox to\ht4{\vfill\copy2\vfill}%
- \tfskip
- \copy4}},
- \v!geen=>\locatefloat{\copy4}]}}%
- \ifdim\wd2>\wd4
- \global\wd\floatbox=\wd2
- \else
- \global\wd\floatbox=\wd4
- \fi
- \egroup}
-
-\def\dosetparfloat#1#2#3#4%
- {\bgroup
- %\showcomposition
- \forgetall
- \putborderedfloat#4\in4\\
- \ConvertToConstant\doifelse{#3}{\v!geen}
- {\global\setbox\floatbox=\vbox{\box4}}
- {\dosetfloatcaption{#4}{#2}{#3}%
- \setbox2=\hbox
- {\forgetall
- \putcompletecaption}%
- \doifelse{\@@kjkjbreedte}{\v!max}
- {\dosetraggedbox{\@@kjkjuitlijnen}%
- \setbox2=\raggedbox
- {\hsize\wd4
- \putcompletecaption}}
- {\doifelse{\@@kjkjbreedte}{\v!passend}
- {\ifdim\wd2>\wd4\relax
- \setbox2=\vbox
- {\forgetall
- \hsize\wd4
- \putcompletecaption}%
- \else
- \setbox2=\hbox to \wd4
- {\hss\box2\hss}%
- \fi}
- {\dosetraggedbox{\@@kjkjuitlijnen}%
- \setbox2=\raggedbox
- {\hsize\wd4
- \putcompletecaption}}}%
- \global\setbox\floatbox=\vbox
- {\processaction
- [\@@kjkjplaats]
- [ \v!boven=>\box2
- \@@kjkjtussen
- \box4,
- \v!onder=>\box4
- \@@kjkjtussen
- \box2,
- \v!geen=>\box4]}}%
- \egroup}
-
-\newif\ifparfloat
-
-\long\def\dosetfloatbox#1#2#3#4%
- {\ifvisible
- \par
- \doifcommonelse
- {#1}{\v!links,\v!rechts,\v!inlinker,\v!inrechter,\v!inmarge}
- {\global\parfloattrue}
- {\global\parfloatfalse}%
- \edef\@@kjkjbreedte {\getvalue{\??kj#4\c!breedte}}%
- \def\@@kjkjtussen {\getvalue{\??kj#4\c!tussen}}% geen \edef
- \edef\@@kjkjplaats {\getvalue{\??kj#4\c!plaats}}%
- \edef\@@kjkjuitlijnen {\getvalue{\??kj#4\c!uitlijnen}}%
- \ifparfloat
- \dosetparfloat{#1}{#2}{#3}{#4}%
- \else
- \dosetpagfloat{#1}{#2}{#3}{#4}%
- \fi
- \global\floatheight=\ht\floatbox
- \global\advance\floatheight by \dp\floatbox
- \global\floatwidth=\wd\floatbox
- \global\advance\totalnoffloats by 1\relax
- \doifnotinset{\v!marge}{#1} % gaat namelijk nog fout
- {\setbox\floatbox=\vbox
- {\parindent\!!zeropoint
- \ifvoorlopig
- \inlinker{\framed{\infofont\the\totalnoffloats}}%
- \fi
- \box\floatbox}}%
- \wd\floatbox=\floatwidth
- \dimen0=\floatheight
- \advance\dimen0 by \lineheight
- \ifdim\dimen0<\teksthoogte
- \else
- \global\floatheight=\teksthoogte
- \global\advance\floatheight by -\lineheight
- \ht\floatbox=\floatheight
- \dp\floatbox=\!!zeropoint
- \showmessage{\m!floatblocks}{10}{\the\totalnoffloats}%
- \fi
- \fi}
-
-\def\dogetfloatbox#1%
- {\ifvisible
- \def\next##1{\global\floatsonpagetrue\def\next{##1}}%
- \processfirstactioninset
- [#1]
- [ \v!hier=>\next{\someelsefloat[#1]},
- \v!forceer=>\next{\somefixdfloat[#1]},
- \v!links=>\next{\somesidefloat[#1]},
- \v!rechts=>\next{\somesidefloat[#1]},
- \v!tekst=>\next{\sometextfloat[#1]},
- \v!boven=>\def\next{\someelsefloat[#1]}, % !
- \v!onder=>\next{\someelsefloat[#1]},
- \v!marge=>\def\next{\somenextfloat[#1]}, % !
- \v!pagina=>\next{\somepagefloat[#1]},
- \v!naast=>\next{\somefacefloat[#1]},
- \v!inmarge=>\next{\somesidefloat[#1]},
- \v!inlinker=>\next{\somesidefloat[#1]},
- \v!inrechter=>\next{\somesidefloat[#1]},
- \s!default=>\next{\someelsefloat[\v!hier,#1]},
- \s!unknown=>\next{\someelsefloat[\v!hier,#1]}]%
- \next
- \fi}
-
-\long\def\dofloat#1#2#3#4%
- {\dosetfloatbox{#1}{#2}{#3}{#4}%
- \dogetfloatbox{#1}}%
-
-\long\def\docompletefloat#1#2#3#4#5#6#7%
- {\flushsidefloats
- \calculatefloatskips
- \setbox\floatbox=\vbox{#7}%
- \dimen0=\ht\floatbox
- \advance\dimen0 by \dp\floatbox
- \ifdim\dimen0=\!!zeropoint\relax
- \showmessage{\m!floatblocks}{11}{}%
- \setbox\floatbox=\vbox{\getvalue{\e!lege#3}}%
- \fi
- \ConvertToConstant\doifelse{#6}{\v!geen}
- {\setbox\floatbox=\vbox
- {\unvbox\floatbox
- \rawpagereference{\s!flt}{#2}}%
- \dofloat{#4}{}{#6}{#1}}
- {\doifelsevalue{\??kj#1\c!nummer}{\v!ja}
- {\verhoognummer[#1]%
- \maakhetnummer[#1]%
- \setbox\floatbox=\vbox
- {\unvbox\floatbox
- \dofloatreference
- \redofloatorder{#1}%
- \rawreference{\s!flt}{#2}{\hetnummer}%
- \doschrijfnaarlijst{#3}{\hetnummer}{#6}{#3}}%
- \dofloat{#4}{#5\hetnummer}{#6}{#1}}
- {\setbox\floatbox=\vbox
- {\unvbox\floatbox
- \rawpagereference{\s!flt}{#2}}%
- \dofloat{#4}{}{#6}{#1}}}%
- \global\insidefloatfalse}
-
-\def\plaatsvolledig#1#2#3#4% kop, ref, tit, do
- {#1[#2]{#3}%
- #4%
- \pagina[\v!ja]}
-
-%I n=Figuren
-%I c=\plaatsfiguur,\reserveerfiguur,\startfiguurtekst
-%I c=\leegfiguur,\volledigelijstmetfiguren
-%I c=\plaatstabel,\reserveertabel,\starttabeltekst
-%I c=\legetabel,\volledigelijstmettabellen
-%I
-%I Figuren en tabellen (gebruik ..tabel.. in plaats van
-%I ..figuur..) kunnen in de tekst worden geplaatst met het
-%I commando:
-%I
-%I \plaatsfiguur[plaats][referentie]{titel}{figuur}
-%I
-%I Als voorkeur kan worden opgegeven 'hier', 'forceer',
-%I 'pagina', 'boven', 'onder', 'links' en 'rechts'. In plaats
-%I van een titel kan 'geen' worden meegegeven, in dat geval
-%I wordt geen titel geplaatst. Eventueel kan in combinatie
-%I met links en rechts 'lang' worden opgegeven.
-%I
-%I De volgorde kan worden afgedwongen met 'altijd',
-%I bijvoorbeeld [hier,altijd]. In dat geval wordt bij een
-%I volgende run zonodig de nummering aangepast.
-%I
-%I In plaats van een titel kan {geen} worden ingevuld. In
-%I dat geval blijft de titel achterwege.
-%P
-%I Het is mogelijk ruimte voor een figuur te reserveren:
-%I
-%I \reserveerfiguur[hoogte=,breedte=,kader=][voorkeur]
-%I [referentie]{titel}
-%P
-%I Een lijst met figuren kan worden opgeroepen met:
-%I
-%I \plaatslijstmetfiguren
-%I \volledigelijstmetfiguren
-%I
-%I Men kan een tekst naast een figuur zetten met:
-%I
-%I \startfiguurtekst[plaats][referentie]{kop}{figuur}
-%I ...
-%I \stopfiguurtekst
-%I
-%I Mogelijke plaatsen zijn (combinaties van) 'links', 'rechts',
-%I 'hoog', 'laag' en 'midden'. Met 'offset' dwingt men een
-%I verschuiving omlaag van van 1 regel af.
-%I
-%I Zie verder onder plaatsblokken.
-
-%I n=Tabellen
-%I
-%I Zie figuren.
-
-%I n=Intermezzo
-%I
-%I Zie figuren.
-
-%I n=Grafieken
-%I
-%I Zie figuren.
-
-%T n=figuur
-%T m=fig
-%T a=f
-%T
-%T \plaatsfiguur
-%T [hier]
-%T [fig:]
-%T {}
-%T {\naam{?}}
-%T
-
-\definieernummer
- [\??si]
- [\c!wijze=\v!per\v!tekst,
- \c!conversie=\@@siconversie]
-
-\def\stelplaatsbloksplitsenin%
- {\dodoubleargument\getparameters[\??si]}
-
-\def\dosplitsplaatsblok[#1]#2% nog dubbele refs
- {\ifbinnenkolommen % tzt ook nog figuren splitten
- % not yet supported
- \else
- \bgroup
- \insidefloattrue
- \getparameters[\??si][#1]%
- \resetnummer[\??si]%
- \def\floatcaptionsuffix{\nummer[\??si]}%
- \TableCaptionHeight=\@@siregels\lineheight
- \dowithnextbox
- {\forgetall
- \mindermeldingen
- \doloop
- {\setbox2\vsplit\nextbox to \lineheight
- \setbox2=\vbox{\unvbox2}
- \ifdim\ht2>\lineheight
- \verhoognummer[\??si]%
- \bgroup
- #2{\unvbox2}
- \egroup
- \pagina
- \ifdim\ht\nextbox>\!!zeropoint
- \verlaagnummer[\floatcaptionnumber]%
- \fi
- \fi
- \ifdim\ht\nextbox>\!!zeropoint\else
- \expandafter\exitloop
- \fi}%
- \egroup}
- \vbox
- \fi}
-
-\def\splitsplaatsblok%
- {\dosingleempty\dosplitsplaatsblok}
-
-%I n=Formules
-%I c=\plaatsformule,\plaatssubformule,\stelformulesin
-%I
-%I Formules kunnen in de tekst worden geplaatst met
-%I het commando:
-%I
-%I \plaatsformule[referentie]subnummer$$formule$$
-%I
-%I Dit commando handelt de witruimtes om de formules af en
-%I plaatst nummers. Als geen nummer nodig is, en dus ook
-%I geen referentie, dan moet met het commando als volgt
-%I gebruiken:
-%I
-%I \plaatsformule-$$...$$ of \plaatsformule[-]$$...$$
-%I
-%I Als het nummer niet moet worden opgehoogd, gebruikt men
-%I
-%I \plaatssubformule[referentie]subnummer$$formule$$
-%P
-%I PAS OP:
-%I
-%I Binnen een aantal wiskundige commando's, zoals
-%I \displaylines, moet men het nummer zelf plaatsen. Dit
-%I kan gebeuren met: \formulenummer of \subformulenummer.
-%I Ook hier kan een [referentie] en een {subnummer} worden
-%I meegegeven.
-%I
-%I \plaatsformule
-%I $$\displaylines
-%I {x \hfill\formulenummer[eerste]{}\cr
-%I y \hfill\cr
-%I z \hfill\formulenummer[derde]{}\cr}
-%I $$
-%P
-%I De wijze waarop formules worden genummerd kan worden
-%I be‹nvloed door het commando:
-%I
-%I \stelformulesin[links=,rechts=,plaats=]
-%I
-%I De nummers kunnen links en rechts worden gezet. Standaard
-%I worden de symbolen ( en ) gebruikt.
-%I
-%I Tussen twee formules kan witruimte worden geforceerd met
-%I het commando:
-%I
-%I \blanko[formule]
-
-\abovedisplayskip = \!!zeropoint\relax
-\abovedisplayshortskip = \!!zeropoint\relax % evt. 0pt minus 3pt
-\belowdisplayskip = \!!zeropoint\relax
-\belowdisplayshortskip = \!!zeropoint\relax % evt. 0pt minus 3pt
-
-\predisplaypenalty = 0
-\postdisplaypenalty = 0 % -5000 gaat mis, zie penalty bij \paragraaf
-
-\doorlabelen
- [\v!formule]
- [\c!tekst=\v!formule,
- \c!wijze=\@@fmwijze,
- \c!blokwijze=\@@fmblokwijze,
- \c!plaats=\v!intekst]
-
-\def\stelformulesin%
- {\dodoubleargument\getparameters[\??fm]}
-
-\def\dodoplaatsformule#1[#2]#3$$#4$$%
- {\begingroup
- \setdisplayskips
- \!!doneafalse
- \doif{#2}{-}{\!!doneatrue}%
- \doif{#3}{-}{\!!doneatrue}%
- \if!!donea % no number
- \def\complexformulenummer[##1]##2%
- {}%
- \def\formulenummer%
- {\complexorsimpleempty{formulenummer}}%
- \def\subformulenummer%
- {\formulenummer}%
- $$#4$$
- \else
- \doifelse{#1}{\v!ja}
- {\def\verhoogformulenummer{\verhoognummer[\v!formule]}}
- {\let\verhoogformulenummer=\relax}%
- \def\simpleformulenummer%
- {\gdef\doeqno{}%
- \gdef\doleqno{}%
- \gdef\formulenummer{\doformulenummer}%
- \doformulenummer[#2]{#3}}%
- \def\complexformulenummer%
- {\gdef\doeqno{}%
- \gdef\doleqno{}%
- \gdef\formulenummer{\doformulenummer}%
- \doformulenummer}%
- \def\formulenummer%
- {\complexorsimple{formulenummer}}%
- \def\subformulenummer%
- {\let\verhoogformulenummer=\relax
- \complexorsimple{formulenummer}}%
- \gdef\doleqno{\leqno{\formulenummer}}%
- \gdef\doeqno{\eqno{\formulenummer}}%
- \doifelse{\@@fmplaats}{\v!links}
- {$$#4\doleqno$$}
- {$$#4\doeqno$$}
- \fi
- \par
- \ignorespaces
- \endgroup}
-
-\def\complexdoformulenummer[#1]#2%
- {\verhoogformulenummer
- \doifelse{#2}{ }
- {\def\hetsubnummer{}}
- {\def\hetsubnummer{#2}}%
- {\rm\strut\@@fmlinks\lossenummer[\v!formule]\hetsubnummer\@@fmrechts}%
- \rawreference{\s!for}{#1}{\hetnummer\hetsubnummer}}
-
-\letvalue{\e!start\e!formule}=\undefined
-\letvalue{\e!stop \e!formule}=\undefined
-
-%\def\dodoplaatsstartformule#1[#2]#3\startformule#4\stopformule%
-% {\dodoplaatsformule#1[#2]#3$$#4$$}
-
-\expanded
- {\def\noexpand\dodoplaatsstartformule##1[##2]##3\csname\e!start\e!formule\endcsname##4\csname\e!stop\e!formule\endcsname%
- {\noexpand\dodoplaatsformule##1[##2]##3$$##4$$}}
-
-\setvalue{\e!start\e!formule}{$$}
-\setvalue{\e!stop \e!formule}{$$}
-
-\def\doplaatsformule#1[#2]#3% % #3 gobbles spaces between [] and $$ or \startformule
- {\def\redoplaatsformule% % we can't lose {} after $$
- {\expandafter\ifx\csname\e!start\e!formule\endcsname\next
- \let\next=\dodoplaatsstartformule
- \else
- \let\next=\dodoplaatsformule
- \fi
- \next#1[#2]}%
- \futurelet\next\redoplaatsformule#3}
-
-\def\complexplaatsformule%
- {\doplaatsformule{\v!ja}}
-
-\def\complexplaatssubformule%
- {\doplaatsformule{\v!nee}}
-
-\definecomplexorsimpleempty\doformulenummer
-\definecomplexorsimpleempty\plaatsformule
-\definecomplexorsimpleempty\plaatssubformule
-
-%I n=Naast
-%I c=\startnaast,\stelnaastplaatsenin
-%I
-%I Experiment:
-%I
-%I \startnaast
-%I ...
-%I \stopnaast
-%I
-%I \stelnaastplaatsenin[status=]
-%I
-
-\newbox\facingbox
-\newbox\facingpage
-
-\newdimen\facingboxsize
-\newdimen\facingpagetotal
-
-\facingpagetotal=\!!zeropoint
-
-\newif\iffacingpages \facingpagesfalse
-\newif\iffirstpagedone \firstpagedonefalse
-
-\def\shipoutfacingpage%
- {\iffacingpages
- \iffirstpagedone
- \setbox\facingpage=\vbox to \zethoogte
- {\kern\hoofdhoogte
- \kern\ht\topins % ?
- \kern\dp\topins % ?
- \kern\dp\strutbox % checken
- \box\facingpage
- \vfill}%
- \myshipout{\box\facingpage}%
- \fi
- \fi
- \global\setbox\facingpage=\box\voidb@x
- \global\firstpagedonetrue
- \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}
-
-%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\paginanummer}}
- {\def\dopaginanummer{0}}%
- \edef\schrijfwegnaarlijst%
- {\writeutilitycommand%
- {\listentry%
- {#1}%
- {\nextinternalreference}%
- {#2}%
- {\ascii}%
- {\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\paginanummer}}
- {\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\@@livariantb% nr - tit - fill - pag
- {\def\lijstfill{\hfill}%
- \def\lijstskip{5em}}
-
-\def\@@livariantc% nr - tit - dots - pag
- {\def\lijstfill{\leaders\hbox to .5em{\hss.\hss}\hfill\hskip.5em}%
- \def\lijstskip{5em}}
-
-\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%
- {\setvalue{#1\c!tussen}{\dotussenlijst{#1}}%
- \setvalue{#1\c!lijst}{\dolijstelement{#1}}}
-
-\def\dodoresetlijst#1%
- {\setvalue{#1\c!tussen}{\gobblefourarguments{#1}}%
- \setvalue{#1\c!lijst}{\gobblesixarguments{#1}}}
-
-%\def\dodoresetlijst#1%
-% {\setvalue{#1\c!tussen}{\gobblethreearguments}%
-% \setvalue{#1\c!lijst}{\gobblefivearguments}}
-
-\def\dodefinieerlijst[#1][#2][#3]%
- {\presetlocalframed[\??li#1]%
- \getparameters
- [\??li#1]
- [\c!hoogte=\v!ruim,
- \c!diepte=\v!ruim,
- \c!offset=0.25em,
- %
- \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!symbool=,
- \c!interactie=\v!sectienummer,
- \v!deel\c!nummer=\v!ja, % nodig ?
- \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,\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\doplaatslijst[#1][#2]%
- {\begingroup
- \startopelkaar[\v!blanko]%
- \getfromcommalist[#1][1]%
- \let\firstlistelement=\commalistelement
- \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}%
- \stopopelkaar
- \endgroup}
-
-\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%
- {\doifvalue{\??li#1\c!label}{\v!ja}{\labeltext{#1}}%
- \strut\splitlistsymbol
- \getvalue{\??li#1\c!scheider}}]}
-
-\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}{\let\dosomelijstelement\dodofreelijstelement}
-
-% 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\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#2}
- {\stelinteractiein[\c!kleur=,\c!contrastkleur=]}%
- \doattributes
- {\??li#1#3}}
-
-\def\dodofreelijstelement#1#2#3#4#5#6%
- {\def\makelijstelement##1##2%
- {\hbox
- {\doifelsevalue{\??li#1\c!interactie}{##1}
- {\setbox0=\hbox{\showcontrastlocation{\??ia}{#6}{##2}}%
- \gotonextinternal{#1}{#2}{\copy0}{#6}}
- {##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]}}}
- {\ifvmode\nointerlineskip\fi % recently added
- \vbox
- {\forgetall
- \makelijstelement\v!alles
- {\makelijstelement\v!sectienummer
- {\dolistattributes{#1}\c!nummerkleur\c!nummer
- {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}}%
- \makelijstelement\v!tekst
- {\dolistattributes{#1}\c!tekstkleur\c!tekst
- {\def\\{ }%
- \dontconvertfont
- \getvalue{\??li#1\c!tekstcommando}{#4}}}%
- \doifvalue{\??li#1\c!paginanummer}{\v!ja}
- {\doifsomething{#5}
- {\makelijstelement\v!paginanummer
- {\dolistattributes{#1}\c!paginakleur\c!pagina
- {\getvalue{\??li#1\c!paginacommando}
- {\paginaprefix\??li#1[#5]%
- \translatednumber[#5]}}}}}}}%
-\nointerlineskip % anders verkeerde spatiering bij multi-line
- \endgraf}%
- \getvalue{\??li#1\c!na}}
-
-\def\dodofixdlijstelementABC#1#2#3#4#5#6% weeden
- {\endgraf
- \leftskip=\getvalue{\??li#1\c!marge}% na de \endgraf !
- \getvalue{\??li#1\c!voor}%
- \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}}%
- \gotonextinternal{#1}{#2}{\copy0}{#6}}
- {\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!nummerkleur\c!nummer
- {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}%
- \hfill}}%
- \setbox4=\hbox
- {\doifvalue{\??li#1\c!paginanummer}{\v!ja}
- {\doifsomething{#5}
- {\hbox to 2em
- {\hfill
- \makelijstelement\v!paginanummer
- {\dolistattributes{#1}\c!paginakleur\c!pagina
- {\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!tekstkleur\c!tekst
- {\def\\{ }%
- \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
- \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}%
- \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}}%
- \gotonextinternal{#1}{#2}{\copy0}{#6}}
- {\hbox{##2}}}%
- \setbox4=\hbox
- {\doifvalue{\??li#1\c!paginanummer}{\v!ja}
- {\doifsomething{#5}
- {\makelijstelement\v!paginanummer
- {\dolistattributes{#1}\c!paginakleur\c!pagina
- {\getvalue{\??li#1\c!paginacommando}
- {\paginaprefix\??li#1[#5]%
- \translatednumber[#5]}}}}}}%
- \hbox
- {\getvalue{\??li#1\c!links}%
- \makelijstelement\v!sectienummer
- {\dolistattributes{#1}\c!nummerkleur\c!nummer
- {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}}%
- \getvalue{\??li#1\c!rechts}%
- \hskip.5em}%
- \nobreak
- \tolerance3500
- \dolistattributes{#1}\c!tekstkleur\c!tekst
- {\def\\{ }%
- \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{\localframed[\??li#1][\c!kleur=]}{#1}}
-
-\def\dodofixdlijstelementF%
- {\dodofixdlijstelementEFG\relax}
-
-\def\dodofixdlijstelementG#1%
- {\dodofixdlijstelementEFG\regelmidden{#1}}
-
-\def\dodofixdlijstelementEFG#1#2#3#4#5#6#7%
- {\hbox
- {\let\\=\relax
- \dontconvertfont
- \setbox0=\hbox
- {#1{\dolocationattributes{\??li#2}
- {\ignorespaces\showcontrastlocation{\??ia}{#7}{#5}}}}%
- \gotonextinternal{#2}{#3}{\copy0}{#7}}}
-
-\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!tekst}
- {\def\\{ }%
- \dontconvertfont
- \getvalue{\??li##1\c!tekstcommando}{##4}}}%
- \global\utilitydonetrue}
- {}}%
- \dostellijstin[#1][#2]%
- \getfromcommalist[#1][1]%
- \dosettoclevel{\getvalue{\??li\commalistelement\c!criterium}}%
- \setbox0=\vbox
- {\doutilities{#1}{\jobname}{#1}{}{\par}}%
- \xdef\utilitylistheight {\the\ht0}%
- \xdef\utilitylistwidth {\the\wd0}%
- \endgroup}
-
-\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%
-% {\switchtocorps[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}{\switchtcorps[5pt]\haalbuffer[kanweg]}
-%
-% \plaatsreferentielijst
-% [externalfigure,externaltable]
-
-% algemeen
-
-\def\referentiebutton#1[#2]%
- {\bgroup
- \def\referenceprefix{}%
- \setbox0=\hbox{\ignorespaces#1}%
- \doifreferencefoundelse{#2}
- {\hbox{\gotolocation{#2}{\copy0}}}
- {\unknownreference{#2}%
- \hbox{\copy0}}%
- \egroup}
-
-\newcounter\referencecounter
-
-\def\doreferentielijstelement#1#2#3#4#5%
- {\doiftoclevelelse[#4]
- {\getvalue{\??rl#1\c!voor}%
- \referentiebutton%
- {\getvalue{\??rl#1\c!commando}{#3}%
- \paginareferentie[\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]%
- \getfromcommalist[#1][1]%
- \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\paginanummer}}
- {\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}
- {\referentiebutton%
- {#3%
- \doglobal\increment\referencecounter
- \paginareferentie[\r!from\referencecounter]%
- \doschrijfnaarreferentielijst{#1}{\referencecounter}{#2}}%
- [\r!to\referencecounter]}
- {#3}}
-
-\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\dodoplaatssamengesteldelijst[#1][#2]%
- {\startopelkaar[\v!blanko]%
- \dostellijstin[#1][#2]%
- \doutilities{#1}{\jobname}{#1}{}{\par}%
- \stopopelkaar}
-
-\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}
-
-%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%
- {\bgroup
- \syndef
- {\doattributes{\??sm#1\c!tekst}{#2}}
- \ConvertToConstant\doifelse{#3}{}{\onbekend}{#3}
- \par
- \egroup}
-
-\def\synonymentry#1%
- {\executeifdefined{#1\s!entry}\gobblethreearguments}
-
-\def\dosetsynonym#1%
- {\doifdefinedelse{\??sm#1\c!commando}
- {\global\utilitydonetrue
- \setvalue{#1\s!entry}{\getvalue{\??sm#1\c!commando}}}
- {\global\utilitydonetrue
- \setvalue{#1\s!entry}{\dohandlesynonymentry}}%
- \doordefinieren
- [syndef]
- [\c!plaats=\synplaats,
- \c!breedte=\synbreedte,
- \c!kopletter=,
- \c!voor=,
- \c!tussen=,
- \c!na=]}
-
-\def\doplaatslijstmetsynoniemen#1#2%
- {\witruimte
- \begingroup
- \def\currentsynonym{#1}%
- \def\synplaats{\getvalue{\??sm#1\c!plaats}}%
- \def\synbreedte{\getvalue{\??sm#1\c!breedte}}%
- \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!synoniem}{\synonymmeaningfalse#3}%
- \else
- \explicithmode
- \doattributes{\??sm#1\c!tekst}{#2}%
- \fi
- \endgroup}
-
-\def\getsynonymmeaning#1#2%
- {\doifdefinedelse{#2}
- {{\synonymmeaningtrue\getvalue{#2}}}
- {\showmessage{\m!systems}{18}{#1,#2}}}
-
-\def\dowritesynonym#1#2#3#4%
- {\begingroup % anders in mathmode lege \hbox
- \doifelsevalue{\??sm#1\c!expansie}{\v!ja}
- {\immediate\write\uti{s e {#1} {#2} {#3} {#4}}}
- {\convertargument#3\to\asciia
- \convertargument#4\to\asciib
- \immediate\write\uti{s e {#1} {#2} {\asciia} {\asciib}}}%
- \endgroup}
-
-\def\preexecutesynonym#1#2#3#4%
- {\ifdoinpututilities \else
- \dowritesynonym{#1}{#2}{#3}{#4}%
- \setgvalue{#2}{\donottest\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%
- {\getvalue{\s!check#1}{#2}%
- \doifelsevalue{\??sm#1\c!conversie}{\v!ja}
- {\setgvalue{#2}{\geentest\expandsynonym{#1}{#2}{#3}{#4}}}
- {\doifelsevalue{\??sm#1\c!status}{\v!start}
- {\doifelsevalue{\??sm#1\c!criterium}{\v!alles}
- {\preexecutesynonym{#1}{#2}{#3}{#4}}
- {\setgvalue{#2}{\donottest\executesynonym{#1}{#2}{#3}{#4}}}}
- {\setgvalue{#2}{\donottest\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!plaats=\v!links,
- \c!criterium=,
- \c!breedte=5em]%
- \presetheadtext
- [#2=\Woord{#2}]%
- \setvalue{\e!stel#2\e!in}%
- {\dodoubleargument\getparameters[\??sm#1]}%
- \iffourthargument
- \def#4##1%
- {\geentest\getsynonymmeaning{#1}{\??sm:#1:##1}}%
- \def#3##1%
- {\geentest\getvalue{\??sm:#1:##1}}%
- \setvalue{#1}%
- {\dotripleempty\docomplexsynonym[\??sm:#1:][#1]}%
- \else
- \def#3##1%
- {\geentest\getsynonymmeaning{#1}{##1}}%
- \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}}
- {\getvalue{\??so#1\c!voor}%
- \doattributes{\??so#1}{##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}{#2}%
- \egroup}
-
-\def\dowritesort#1#2#3%
- {\bgroup
- \doifelsevalue{\??so#1\c!expansie}{\v!ja}
- {\immediate\write\uti{s e {#1} {#2} {#3} {}}}
- {\convertargument#3\to\asciia
- \immediate\write\uti{s e {#1} {#2} {\asciia} {}}}%
- \egroup}
-
-\def\synonymentry#1%
- {\executeifdefined{#1\s!entry}\gobblethreearguments}
-
-\def\preexecutesort#1#2#3%
- {\ifdoinpututilities \else
- \dowritesort{#1}{#2}{#3}%
- \setgvalue{#2}{\donottest\processsort{#1}{#3}{#2}}%
- \fi}
-
-\def\executesort#1#2#3%
- {\preexecutesort{#1}{#2}{#3}%
- \processsort{#1}{#3}{#2}}
-
-\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%
- {\getvalue{\s!check#1}{#2}%
- \doifelsevalue{\??so#1\c!status}{\v!start}
- {\doifelsevalue{\??so#1\c!criterium}{\v!alles}
- {\preexecutesort{#1}{#2}{#3}}
- {\setgvalue{#2}{\donottest\executesort{#1}{#2}{#3}}}}
- {\setgvalue{#2}{\donottest\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=,
- \c!status=\v!start,
- \c!criterium=,
- \c!letter=,
- \c!voor=,
- \c!na=\endgraf]%
- \presetheadtext[#2=\Woord{#2}]%
- \setvalue{\e!stel#2\e!in}[##1]%
- {\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}
-
-% documenteren \bmath ..\emath
-
-\def\bmath%
- {\begingroup
- \ifmmode
- \let\emath=\endgroup
- \else
- $\def\emath{$\endgroup}%
- \fi}
-
-\def\mathematics#1% % \bmath ...\emath kan ook maar
- {\ifmmode#1\else$#1$\fi} % dit alternatief scheelt grouping
-
-\def\dimensionsignal{0.000058pt}
-
-\def\dimension#1%
- {\def\dodimensionsignal{\kern\dimensionsignal}%
- \ifdim\lastskip=\!!zeropoint\relax
- \ifdim\lastkern=\!!zeropoint\relax
- \ifmmode
- \mathematics{\,\,\tf#1}%
- \else
- \mathematics{\tf#1}%
- \fi
- \else\ifdim\lastkern=\dimensionsignal
- \mathematics{\,\tf#1}%
- \else
- \unkern\mathematics{\,\,\tf#1}%
- \fi\fi
- \else
- \unskip\mathematics{\,\,\tf#1}%
- \fi
- \dodimensionsignal}
-
-\def\nodimension#1%
- {\unskip#1\gdef\dodimensionsignal{}}
-
-%I n=Registers
-%I c=\definieerregister,\stelregisterin
-%I c=\volledigregister,\plaatsregister
-%I
-%I Er kunnen registers worden gedefinieerd met het commando:
-%I
-%I \definieerregister[naam][namen]
-%I
-%I Vanaf dat moment zijn de volgende commando's beschikbaar:
-%I
-%I \naam[ascii]{ingang+ingang+ingang}
-%I \zienaam[ascii]{ingang+ingang+ingang}{andere ingang}
-%I \plaatsnaam
-%I \volledigenaam
-%I
-%I of
-%I
-%I \plaatsregister[naam]
-%I \volledigregister[naam]
-%I
-%I De commando's rond de standaard index zijn gedefinieerd
-%I met de waarden: [index][indices]
-%P
-%I In de tekst dient een registerverwijzing voor het woord
-%I te staan, dus: we verwijzen naar \index{woord}woord.
-%I
-%I Bij koppen daarentegen plaatsen we \index na de kop:
-%I
-%I \subparagraaf{dat is dat}
-%I \index{ziezo}
-%I
-%I ........... tekst .....
-%I
-%I of
-%I
-%I \margewoord{ziezo}
-%I \index{ziezo}
-%I
-%I ........... tekst .....
-%I
-%I Ongewenste spaties na \index worden verwijderd! Wil men
-%I dus een spatie, dan moet dit worden afgedwongen met \ .
-%P
-%I Mocht het hierboven beschreven mechanisme interfereren
-%I met andere mechanismen, dan kan ook het volgende commando
-%I worden gebruikt:
-%I
-%I \schrijfnaarregister[naam][ascii]{ingang+ingang+ingang}
-%I
-%I waarbij [ascii] optioneel is.
-%P
-%I De registers kunnen worden ingesteld met het commando:
-%I
-%I \stelregisterin[naam][letter=,aanduiding=,n=,
-%I balanceren=,uitlijnen=,criterium=,afstand=,symbool=,
-%I expansie=]
-%I
-%I waarbij 'aanduiding' betrekking heeft op het al dan niet
-%I plaatsen van een letter ('ja' of 'nee') en 'letter' op de
-%I weergave van de letter.
-%I
-%I Met 'criterium' kan een subindex worden opgeroepen,
-%I bijvoorbeeld 'deel' of 'hoofdstuk', of als het niveau
-%I onbekend is: 'lokaal'. Standaard wordt een volledige index
-%I gegenereerd ('alles').
-%I
-%I In plaats van een paginanummer kan een symbool worden
-%I gezet: n (1,2,3,..), a (a,b,c,..), 1 (bolletjes) en
-%I 2 (rechthoekjes). Een symbool heeft alleen zin bij
-%I interactieve teksten.
-%I
-%I Voor eigen gebruik is \ifregistergeplaatst beschikbaar.
-%P
-%I In plaats van een + als scheider kan ook & worden
-%I gebruikt. Bovendien kan als eerste karakter worden opgegeven
-%I wat de scheider is:
-%I
-%I \index[abcformule]{&formule&$ax^2+bx+c$}
-%I
-%I Overigens gaat de & voor de +, zodat hier de specificatie
-%I niet per se nodig is. Let wel: dit is een kenmerk van
-%I texutil, en niet zozeer van ConTeXt.
-
-% Formaat tex-utility-input-file <jobname.tui>:
-%
-% i e {tag} {loc} {pure} {entry+..} {p:c:p:sp:ssp=>page} {realpage}
-% i s {tag} {loc} {pure} {entry+..} {other entry}
-%
-% In plaats van + kan een & worden gebruikt. Ook kan als
-% eerste karakter worden opgegeven wat de scheider is.
-%
-% Deze file wordt met het programma TeXUtil omgezet in
-% een in te lezen TeXFile met de commando's:
-%
-% \registerentrya {tag} {ingang}
-% \registerentryb {tag} {subingang}
-% \registerentryc {tag} {subsubingang}
-%
-% \registerpage {tag} {volgnummer} {paginanummer} {volgnummer}
-%
-% \registersee {tag} {andere ingang}
-%
-% \registerentry {tag} {letter}
-
-\def\dostelregisterin[#1][#2]%
- {\getparameters[\??id#1][#2]%
- \preparepaginaprefix{\??id#1}}
-
-\def\stelregisterin%
- {\dodoubleargumentwithset\dostelregisterin}
-
-\def\getlastregisterentry#1%
- {\def\docommando##1%
- {\def\!!stringa{##1}}%
- \processconcanatedlist[#1][+]\docommando
- \!!stringa}
-
-\def\doprocessregister[#1]#2%
- {\begingroup
- \thisisnextinternal{\s!ind}%
- \ifduplicate\getlastregisterentry{#2}\fi
- \doifelsevalue{\??id\currentregister\c!expansie}{\v!ja}
- {\edef\ascii{#2}}
- {\convertargument#2\to\ascii}%
- \makesectionformat
- \edef\schrijfwegnaarregister%
- {\write\uti%
- {r e %
- {\currentregister} %
- {\nextinternalreference} %
- {#1} %
- {\ascii} %
- {\sectionformat::\noexpand\paginanummer} %
- {\noexpand\realfolio}}}%
- \schrijfwegnaarregister
- \getfirstcharacter\currentregister
- \registerinfo{> \firstcharacter}{#2}%
- \endgroup}
-
-\def\complexdoregister[#1]#2%
- {\doprocessregister[#1]{#2}%
- \ifvmode\nobreak\fi
- \GotoPar}
-
-\def\doregister#1%
- {\def\currentregister{#1}%
- \complexorsimpleempty{doregister}}
-
-\def\complexdozieregister[#1]#2#3%
- {\begingroup
- \thisisnextinternal{\s!ind}%
- \ifduplicate\getlastregisterentry{#2}\fi
- \doifelsevalue{\??id\currentregister\c!expansie}{\v!ja}
- {\edef\ascii{#2}}
- {\convertargument#2\to\ascii}%
- \makesectionformat
- \edef\schrijfwegnaarregister%
- {\write\uti%
- {r s %
- {\currentregister} %
- {\nextinternalreference} %
- {#1} %
- {\ascii} %
- {#3} %
- {\sectionformat}}}%
- \schrijfwegnaarregister
- \endgroup
- \registerinfo{> zie}{#2}%
- \GotoPar}
-
-\def\dozieregister#1%
- {\def\currentregister{#1}%
- \complexorsimpleempty{dozieregister}}
-
-\def\doschrijfnaarregister[#1]% % de twee-traps-aanroep is nodig
- {\edef\currentregister{#1}% % om gebruik van \ExpandBothAfter
- \doprocessregister} % mogelijk te maken
-
-\def\schrijfnaarregister%
- {\dodoubleempty\doschrijfnaarregister}
-
-\def\ifregistergeplaatst{\ifutilitydone}
-
-\newif\iffirstregisterpage
-
-\def\c!entrya{}
-\def\c!entryb{}
-\def\c!entryc{}
-
-\def\nextregisterpage%
- {\iffirstregisterpage
- \doglobal\newcounter\registerpagenumber
- \fi
- \doglobal\increment\registerpagenumber}
-
-\def\doregisterpagelocation#1%
- {\nextregisterpage
- \hbox to 1em{\hss#1\hss}}
-
-\def\setregisterpage#1%
- {\let\registerpageseparator=\relax
- \processaction
- [\getvalue{\??id#1\c!symbool}]
- [ \c!n=>{\def\doregisterpage##1[##2]%
- {\doregisterpagelocation{\sl\registerpagenumber}\/}},
- \c!a=>{\def\doregisterpage##1[##2]%
- {\doregisterpagelocation{\sl\character{\registerpagenumber}\/}}},
- 1=>{\def\doregisterpage##1[##2]%
- {\doregisterpagelocation{$\bullet$}}},
- 2=>{\def\doregisterpage##1[##2]%
- {\doregisterpagelocation{\vrule\!!width1em\!!height1ex\!!depth\!!zeropoint}}},
- \s!unknown=>{\def\registerpagesymbol{\getvalue{\??id#1\c!symbool}}%
- \def\doregisterpage##1[##2]%
- {\doregisterpagelocation{\registerpagesymbol}}},
- \s!default=>{\def\registerpageseparator%
- {{\sl,}}%
- \def\doregisterpage##1[##2]%
- {{\strut\sl\paginaprefix{\??id##1}[##2]\translatednumber[##2]}}}]}
-
-\def\doresetregister#1%
- {\letvalue{#1\s!entrya}=\gobbleoneargument
- \letvalue{#1\s!entryb}=\gobbleoneargument
- \letvalue{#1\s!entryc}=\gobbleoneargument
- \letvalue{#1\s!see}=\gobbletwoarguments
- \letvalue{#1\s!page}=\gobblethreearguments
- \letvalue{#1\s!entry}=\gobbleoneargument}
-
-\def\registerentrya#1{\executeifdefined{#1\s!entrya}\gobbleoneargument}
-\def\registerentryb#1{\executeifdefined{#1\s!entryb}\gobbleoneargument}
-\def\registerentryc#1{\executeifdefined{#1\s!entryc}\gobbleoneargument}
-\def\registersee #1{\executeifdefined{#1\s!see}\gobbletwoarguments}
-\def\registerpage #1{\executeifdefined{#1\s!page}\gobblethreearguments}
-\def\registerentry #1{\executeifdefined{#1\s!entry}\gobbleoneargument}
-
-\newif\iffirstsubentry
-\newif\iffirstsubsubentry
-
-\newcounter\currententrylevel
-
-\def\dosetpageregister#1%
- {\dosetreglevel{\getvalue{\??id#1\c!criterium}}%
- \setregisterpage{#1}%
- \setvalue{#1\s!entrya}##1%
- {\edef\currententrylevel{1}%
- \global\let\c!entryb=\relax
- \global\let\c!entryc=\relax
- \gdef\c!entrya%
- {\global\firstregisterpagetrue
- \endgraf
- \hangindent1em\noindent
- \dohandleregisterentry{##1}%
- \global\firstsubentrytrue
- \global\firstsubsubentrytrue}}%
- \setvalue{#1\s!entryb}##1%
- {\edef\currententrylevel{2}%
- \global\let\c!entryc=\relax
- \global\def\c!entryb%
- {\global\firstregisterpagetrue
- \endgraf
- \iffirstsubentry\nobreak\fi
- \hangindent2em\noindent\hskip1em\relax
- \dohandleregisterentry{##1}%
- \global\firstsubentryfalse
- \global\firstsubsubentrytrue}}%
- \setvalue{#1\s!entryc}##1%
- {\edef\currententrylevel{3}%
- \gdef\c!entryc%
- {\global\firstregisterpagetrue
- \endgraf
- \iffirstsubsubentry\nobreak\fi
- \hangindent3em\noindent\hskip2em\relax
- \dohandleregisterentry{(##1)}%
- \global\firstsubsubentryfalse}}%
- \setvalue{#1\s!page}##1##2##3%
- {\doifreglevelelse[##2]
- {\global\utilitydonetrue
- \c!entryletter
- \def\dohandleregisterentry####1%
- {\bgroup
- \if!!donea
- \setbox0=\hbox{\showlocation{\getvalue{\??id#1\c!tekstcommando}{####1}}}%
- \gotonextinternal{\s!ind}{##1}{\copy0}{##3}%
- \else
- \getvalue{\??id#1\c!tekstcommando}{####1}%
- \fi
- \egroup
- \!!doneafalse}%
- \!!doneafalse
- \doifelsevalue{\??id#1\c!interactie}{\v!tekst}
- {\ifcase\currententrylevel
- \or
- \!!doneatrue\c!entrya\c!entryb\c!entryc
- \or
- \c!entrya\!!doneatrue\c!entryb\c!entryc
- \or
- \c!entrya\c!entryb\!!doneatrue\c!entryc
- \fi}
- {\c!entrya\c!entryb\c!entryc}%
- \global\let\c!entrya=\relax
- \global\let\c!entryb=\relax
- \global\let\c!entryc=\relax
- \global\let\c!entryletter=\relax
- \iffirstregisterpage
- \expandafter\hskip\getvalue{\??id#1\c!afstand}\relax
- \else
- \registerpageseparator % || Moet anders
- |\spatie|\relax % \relax needed because | looks ahead
- \fi
- \doifelsevalue{\??id#1\c!interactie}{\v!paginanummer}
- {\bgroup
- \setbox0=\hbox{\showlocation{\doregisterpage{#1}[##2]}}%
- \gotonextinternal{\s!ind}{##1}{\copy0}{##3}%
- \egroup}
- {\hbox{\doregisterpage{#1}[##2]}}%
- \ignorespaces
- \global\firstregisterpagefalse}
- {}}%
- \setvalue{#1\s!see}##1##2%
- {\doifreglevelelse[##2::0]
- {{\global\utilitydonetrue
- \endgraf
- \noindent\hskip\getvalue{\??id#1\c!afstand}%
- \sl\e!zie: ##1}}
- {}}%
- \setvalue{#1\s!entry}##1%
- {\gdef\c!entryletter%
- {\global\let\c!entryletter=\relax
- \global\utilitydonetrue
- \getvalue{\??id#1\c!voor}%
- %\vskip\lineheight\vskip-\lineheight\goodbreak
- \vskip\lineheight\goodbreak\vskip-\lineheight
- \doifelsevalue{\??id#1\c!aanduiding}{\v!ja}
- {\ifhmode\unskip\else\noindent\fi
- \getvalue{\??id#1\c!commando}% % needed
- {\doattributes{\??id#1}
- {\doifvalue{\??id#1\c!refereren}{\v!aan}
- {\paginareferentie[#1:##1]}%
- \strut\ignorespaces##1}}%
- \getvalue{\??id#1\c!na}%
- \par\nobreak} % don't use \string##1, other hack
- {\goodbreak % needed ##1 can be \string...
- \doifvalue{\??id#1\c!refereren}{\v!aan}
- {\paginareferentie[#1:##1]}}}}}
-
-\def\getalllistreferences#1#2%
- {\convertargument#2\to\currentregisterentry
- \doifdefinedelse{\??id#1\??id\currentregisterentry}
- {\edef\alllistreferences%
- {\getvalue{\??id#1\??id\currentregisterentry}}%
- \beforesplitstring\alllistreferences\at::\to\internallistreference
- \aftersplitstring\alllistreferences\at::\to\alllistreferences}
- {\let\alllistreferences=\empty
- \def\internallistreference{0}}}
-
-\def\dosetlinkregister#1%
- {\dosetreglevel{\getvalue{\??id#1\c!criterium}}%
- \setregisterpage{#1}%
- \setvalue{#1\s!entrya}##1%
- {\global\utilitydonetrue
- \c!entryletter
- \iflocation
- \getalllistreferences{#1}{##1}%
- \endgraf\hangindent1em\noindent
- %
- %\thisisinternal{\s!lin:\internallistreference}%
- %
- \paginareferentie[\s!lin:\internallistreference]%
- %
- \getcommacommandsize[\alllistreferences]%
- \getfromcommacommand[\alllistreferences][1]%
- \ifnum\commalistsize=1
- \let\firstlistreference=\empty
- \let\midlistreference=\commalistelement
- \let\lastlistreference=\empty
- \else
- \let\firstlistreference=\commalistelement
- \getfromcommacommand[\alllistreferences][\commalistsize]%
- \let\lastlistreference=\commalistelement
- \ifnum\commalistsize=2
- \let\midlistreference=\empty
- \else
- \!!counta=\commalistsize
- \divide\!!counta by 2
- \getfromcommacommand[\alllistreferences][\!!counta]%
- \let\midlistreference=\commalistelement
- \fi
- \fi
- \hskip-.25em\relax
- \getvalue{\??id#1\c!tekstcommando}{##1}%
- \hskip\getvalue{\??id#1\c!afstand}%
- \def\dodocommando[####1-####2]%
- {\gotonextinternal{\s!ind}{####1}{\copy0}{####2}}%
- \def\docommando####1####2%
- {\setbox0=\hbox{\showlocation{\hbox to 1em{\hss####2\hss}}}%
- \ifx####1\empty
- % \hskip\wd0 % (optioneel maken)
- \else
- \expandafter\dodocommando\expandafter[####1]%
- \fi}%
- {\docommando\firstlistreference\gobackwardcharacter}%
- {\docommando\midlistreference\gotosomewherecharacter}%
- {\docommando\lastlistreference\goforwardcharacter}%
- \else
- ##1%
- \fi}%
- \setvalue{#1\s!entry}##1% hetzelfde dus gemeenschappelijk
- {\gdef\c!entryletter%
- {\global\utilitydonetrue
- \global\let\c!entryletter=\relax
- \getvalue{\??id#1\c!voor}%
- %\vskip\lineheight\vskip-\lineheight\goodbreak
- \vskip\lineheight\goodbreak\vskip-\lineheight
- \doifelsevalue{\??id#1\c!aanduiding}{\v!ja}
- {\ifhmode\unskip\else\noindent\fi
- \getvalue{\??id#1\c!commando}% % needed
- {\doattributes{\??id#1}
- {\doifvalue{\??id#1\c!refereren}{\v!aan}
- {\paginareferentie[#1:##1]}%
- \strut##1}}%
- \getvalue{\??id#1\c!na}%
- \par\nobreak} % don't use \string##1, other hack
- {\goodbreak % needed ##1 can be \string...
- \doifvalue{\??id#1\c!refereren}{\v!aan}
- {\paginareferentie[#1:##1]}}}}}
-
-\def\dosetregister#1%
- {\doifelsevalue{\??id#1\c!koppeling}{\v!ja}
- {\dosetlinkregister{#1}}
- {\dosetpageregister{#1}}}
-
-\newcounter\internallistreference
-
-\def\doloadregisterlinks#1%
- {\dosetreglevel{\getvalue{\??id#1\c!criterium}}%
- \setregisterpage{#1}%
- \setvalue{#1\s!entrya}##1%
- {\global\firstregisterpagetrue
- \doglobal\convertargument##1\to\currentregisterentry % \doglobal nodig?
- \doglobal\increment\internallistreference}%
- \setvalue{#1\s!page}##1##2##3%
- {\doifreglevelelse[##2]
- {\global\utilitydonetrue
- \iffirstregisterpage
- \global\firstregisterpagefalse
- \setxvalue{\??id#1\??id\currentregisterentry}%
- {\internallistreference::##1-##3}%
- \else
- \setxvalue{\??id#1\??id\currentregisterentry}%
- {\getvalue{\??id#1\??id\currentregisterentry},##1-##3}%
- \fi}
- {}}}
-
-\def\dokoppelregister[#1][#2]%
- {\iflocation
- \begingroup
- \let\dosetregister=\doloadregisterlinks
- \stelregisterin[#1][#2]%
- \doutilities{#1}{\jobname}{#1}{}{}%
- \endgroup
- \fi}
-
-\def\koppelregister%
- {\dodoubleempty\dokoppelregister}
-
-\def\doprocesslinkedregister[#1][#2]#3%
- {\hbox
- {\doprocessregister[#2]{#3}%
- \let\firstlistreference=\empty
- \let\lastlistreference=\empty
- \let\selflistreference=\empty
- \let\prevlistreference=\empty
- \let\nextlistreference=\empty
- \getalllistreferences{#1}{#3}%
- \doifnot{\alllistreferences}{}
- {\def\dodocommando[##1-##2]%
- {\ifx\firstlistreference\empty
- \def\firstlistreference{##1-##2}%
- \fi
- \def\lastlistreference{##1-##2}%
- \ifnum##1<\nextinternalreference\relax
- \def\prevlistreference{##1-##2}%
- \else\ifnum##1>\nextinternalreference\relax
- \def\nextlistreference{##1-##2}%
- \def\dodocommando[####1-####2]%
- {\def\lastlistreference{####1-####2}}%
- \else
- \def\selflistreference{##1-##2}%
- \fi\fi}%
- \def\docommando##1%
- {\dodocommando[##1]}%
- \processcommacommand[\alllistreferences]\docommando}%
- \ifx\prevlistreference\empty
- \let\prevlistreference=\lastlistreference
- %\let\gobackwardcharacter=\gotoendcharacter
- \fi
- \ifx\nextlistreference\empty
- \let\nextlistreference=\firstlistreference
- %\let\goforwardcharacter=\gotobegincharacter
- \fi
- \ifx\prevlistreference\selflistreference
- \let\prevlistreference=\empty
- \let\nextlistreference=\empty
- \fi
- \def\dodocommando[##1-##2]%
- {\gotonextinternal{\s!ind}{##1}{\copy0}{##2}}%
- \def\docommando##1##2%
- {\setbox0=\hbox to 1em{\hss\showlocation{##2}\hss}%
- \ifx##1\empty
- \hskip\wd0 % (optioneel maken)
- \else
- \expandafter\dodocommando\expandafter[##1]%
- \fi}%
- \bgroup
- \docommando\prevlistreference{\gobackwardcharacter}%
- \egroup
- \bgroup
- \doifreferencefoundelse{\s!lin:\internallistreference}
- {\getrealreference{\s!lin:\internallistreference}%
- \gotointernal
- {\s!lin:\internallistreference}
- {\showlocation{#3}}
- {\currentrealreference}}
- {\hbox{#3}}%
- \egroup
- \bgroup
- \docommando\nextlistreference{\goforwardcharacter}%
- \egroup}}
-
-\def\dodolinkedregister[#1][#2]#3%
- {\bgroup
- \def\currentregister{#1}%
- \iflocation
- \doifelsevalue{\??id#1\c!koppeling}{\v!ja}
- {\def\next{\doprocesslinkedregister[#1][#2]{#3}}}
- {\def\next{\doprocessregister[#2]{#3}}}% ook hier [#1]
- \else
- \def\next{\doprocessregister[#2]{#3}}%
- \fi
- \next
- \egroup
- \ifvmode\nobreak\fi
- \GotoPar}
-
-\def\dolinkedregister#1%
- {\dodoubleempty\dodolinkedregister[#1]}
-
-\def\complexdoplaatsregister[#1]%
- {\begingroup
- \stelregisterin[\currentregister][#1]%
- \raggedright
- \startkolommen
- [\c!n=\getvalue{\??id\currentregister\c!n},
- \c!balanceren=\getvalue{\??id\currentregister\c!balanceren},
- \c!uitlijnen=\getvalue{\??id\currentregister\c!uitlijnen}]%
- \mindermeldingen
- \startopelkaar[\v!blanko]%
- \doutilities{\currentregister}{\jobname}{\currentregister}{}{\par}%
- \stopopelkaar
- \stopkolommen
- \endgroup}
-
-\def\doplaatsregister[#1]%
- {\def\currentregister{#1}%
- \complexorsimpleempty{doplaatsregister}}
-
-\def\plaatsregister%
- {\dosingleargument\doplaatsregister}
-
-\def\complexdovolledigregister[#1]% \@EA's kunnen weg
- {\@EA\plaatsvolledig\@EA{\@EA\systemsuppliedchapter\@EA}%
- \@EA{\@EA\currentregister\@EA}%
- \@EA{\@EA\headtext\@EA{\currentregister}}%
- {\complexdoplaatsregister[#1]}}
-
-\def\dovolledigregister[#1]%
- {\def\currentregister{#1}%
- \complexorsimpleempty{dovolledigregister}}
-
-\def\volledigregister%
- {\dosingleargument\doplaatsregister}
-
-\def\dodefinieerregister[#1][#2]%
- {\stelregisterin[#1]%
- [\c!n=2,
- \c!balanceren=\v!ja, % \v!nee komt niet zo vaak voor
- \c!uitlijnen=\v!nee,
- \c!voor=\blanko, % binnen kolommen: \blanko[\v!regel]
- \c!na=,
- \c!symbool=,
- \c!interactie=\v!paginanummer,
- \c!afstand=1em,
- \c!letter=\v!vet,
- \c!aanduiding=\v!ja,
- \v!deel\c!nummer=\v!ja,
- \v!hoofdstuk\c!nummer=\v!nee,
- \c!criterium=\v!alles,
- \c!commando=,
- \c!refereren=\v!aan]%
- \presetheadtext[#1=\Woord{#1}]%
- \setvalue{#1}%
- {\doregister{#1}}%
- \setvalue{\e!gekoppelde#1}%
- {\dolinkedregister{#1}}%
- \setvalue{\s!set#1}%
- {\dosetregister{#1}}%
- \setvalue{\s!reset#1}%
- {\doresetregister{#1}}%
- \addutilityreset{#1}%
- \setvalue{\e!zie#1}%
- {\dozieregister{#1}}%
- \setvalue{\e!plaats#1}%
- {\doplaatsregister[#1]}%
- \setvalue{\e!volledige#1}%
- {\dovolledigregister[#1]}%
- \setvalue{\e!stel#1\e!in}[##1]%
- {\getparameters[\??id#1][##1]}}
-
-\def\definieerregister%
- {\dodoubleargument\dodefinieerregister}
-
-\def\registerlengte {\utilityregisterlength}
-
-\def\utilityregisterlength {0}
-
-\def\dobepaalregisterkenmerken[#1][#2]%
- {\begingroup
- \stelregisterin[#1][#2]%
- \dosetreglevel{\getvalue{\??id#1\c!criterium}}%
- \setvalue{#1\s!page}##1##2##3%
- {\doifreglevelelse[##2]
- {\doglobal\increment\utilitylistlength
- \global\utilitydonetrue}
- {}}%
- \doglobal\newcounter\utilityregisterlength
- \setbox0=\vbox
- {\doutilities{#1}{\jobname}{#1}{}{}}%
- \endgroup}
-
-\def\bepaalregisterkenmerken%
- {\dodoubleempty\dobepaalregisterkenmerken}
-
-%I n=Index
-%I c=\index,\zieindex,\volledigeindex
-%I
-%I Een ingang naar de index wordt gecreeerd met:
-%I
-%I \index[ascii]{ingang+ingang+ingang}
-%I
-%I Een verwijzing wordt gecreerd met:
-%I
-%I \zieindex[ascii]{ingang+ingang+ingang}{andere ingang}
-%I
-%I Een index kan (vooralsnog) alleen een eenvoudig
-%I zetcommando afhandelen, bijvoorbeeld: \index{\bf{test}} of
-%I \index{\kap{anwb}}. Meer is vaak niet nodig.
-%I
-%I Als een ingang niet goed gesorteerd wordt, dient [ascii]
-%I te worden meegegeven: \index[anwb]{\kap{anwb}}.
-%I
-%I Een index wordt gegenereerd met:
-%I
-%I \plaatsindex
-%I \volledigeindex
-
-%T n=index
-%T m=ind
-%T a=i
-%T
-%T \index{?}
-
-%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.
-
-% nog \definieerbuffer[naam]
-%
-% \startnaam == \startbuffer[#1][naam]
-
-% \EveryPar%
-% {\doglobal\newcounter\NOfLines}
-%
-% \EveryLine%
-% {\doglobal\increment\NOfLines%
-% \hskip-3em%
-% \hbox to 3em{\hss\NOfLines\hskip1em}}
-
-\def\dostartbuffer[#1][#2]%
- {\showmessage{\m!systems}{15}{#1}%
- \doifelse{#2}{}
- {\let\stopbuffer=\relax % \undefined
- \convertargument\stopbuffer\to\endofblock}
- {\letvalue{#2}=\relax % \undefined
- \@EA\convertargument\csname#2\endcsname\to\endofblock}%
- \def\closeblock%
- {\immediate\closeout\tmpblocks
- \egroup
- \getvalue{#2}}%
- \doifelsenothing{#1}
- {\immediate\openout\tmpblocks=\jobname.\f!temporaryextension}
- {\immediate\openout\tmpblocks=#1.\f!temporaryextension}%
- \setupcopyblock
- \def\writeoutblocks##1{}%
- \copyblockline}
-
-\def\startbuffer%
- {\bgroup
- \obeylines % nodig, anders gaat 't fout als direct \starttabel (bv)
- \dodoubleempty\dostartbuffer}
-
-\def\dobuffer[#1]#2%
- {\doifelsenothing{#1}
- {#2{\jobname.\f!temporaryextension}{}{}}
- {#2{#1.\f!temporaryextension}{}{}}}
-
-\def\dohaalbuffer[#1]%
- {\@@buvoor
-\beginrestorecatcodes
- \showmessage{\m!systems}{16}{#1}%
- \dobuffer[#1]\readjobfile
-\endrestorecatcodes
- \@@buna}
-
-\def\haalbuffer%
- {\dosingleempty\dohaalbuffer}
-
-\def\dotypebuffer[#1]%
- {\bgroup
- % no, just like \starttyping % \setuptyping[\c!voor=\@@buvoor,\c!na=\@@buna]%
- \showmessage{\m!systems}{17}{#1}%
- \dobuffer[#1]\typefile
- \egroup}
-
-\def\typebuffer%
- {\dosingleempty\dotypebuffer}
-
-\def\stelbufferin%
- {\dodoubleargument\getparameters[\??bu]}
-
-%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 kom tneer 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.
-
-\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=\f!utilityfilename.\f!temporaryextension}
-
-\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
- \def\copynextline{}%
- \fi
- \copynextline}%
- \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%
- {\!!counta=1\relax
- \loop
- \catcode\!!counta=\@@other
- \advance\!!counta by 1\relax
- \ifnum\!!counta<255\relax
- \repeat
- \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%
- {\def\opentmpblock{}%
- \def\closetmpblock{}%
- \def\writetmpblock##1{}%
- \saveblock}
-
-\def\loadoneblock%
- {\readjobfile{\f!utilityfilename.\f!temporaryextension}{}{}}
-
-\def\dodefinieerblok[#1]%
- {\passeerblok[#1]%
- \handhaafblokken[#1]%
- \stelblokin
- [#1]
- [\c!voor=\blanko,
- \c!na=\blanko,
- \c!binnen=,
- \c!letter=,
- \c!file=\jobname]}
-
-\def\definieerblok%
- {\dosingleargument\dodefinieerblok}
-
-\def\dostelblokin[#1][#2]%
- {\getparameters[\??tb#1][#2]}
-
-\def\stelblokin%
- {\dodoubleargument\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}{}%
- \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\relax
- \doifinsetelse{-}{#3}
- {\showwarning{\m!textblocks}{10}{\bloktitel}%
- \setvalue{\s!thiswasblock#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}{}%
- \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
- \getfromcommalist[#1][1]%
- \doifdefined{\??tb\commalistelement\c!file}
- {\loadallblocks{\getvalue{\??tb\commalistelement\c!file}}}%
- \endgroup}
-
-\def\gebruikblokken%
- {\begingroup
- \doassign[\??bs][\c!criterium=\v!alles]%
- \dodoubleempty\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
-%I Achter de tekst kan een achtergrond worden geplaatst.
-%I Voor de afzonderlijke elementen van een tekst wordt een
-%I achtergrond gedefinieerd met het commando:
-%I
-%I \stelachtergrondenin
-%I [boven,hoofd,tekst,voet,onder]
-%I [linkerrand,rechterrand,linkermarge,reachtermarge,tekst]
-%I [achtergrond=,kleur=,raster=]
-%I
-%I Voor de hele bladzijde gebruiken we:
-%I
-%I \stelachtergrondenin
-%I [pagina]
-%I [achtergrond=,kleur=,raster=]
-%P
-%I Het is mogelijk elk blok iets ruimer om de tekst te
-%I plaatsen met:
-%I
-%I \stelachtergrondenin
-%I [pagina]
-%I [offset=,diepte=]
-%I
-%I Een offset van .25\korpsgrootte en een diepte van
-%I .5\korpsgrootte voldoen aardig.
-%I
-%I Er kunnen ronde hoeken worden gezet met:
-%I
-%I \stelachtergrondenin
-%I [pagina]
-%I [hoek=,straal=]
-%I
-%I Hierbij kan voor hoek de instelling rond of recht worden
-%I meegegeven en voor straal een dimensie.
-
-% Don't use \@@mawhatevercommand directly, use \getvalue instead.
-
-\newif\ifnewbackground
-\newif\ifsomebackground
-
-\newbox\leftbackground
-\newbox\rightbackground
-
-\def\addpagebackground#1%
- {\doifvaluesomething{\??ma\v!pagina\c!achtergrond}
- {\setbox2=\vbox
- {\offinterlineskip
- \localframed
- [\??ma\v!pagina]
- [\c!breedte=\papierbreedte,\c!hoogte=\papierhoogte]%, \c!offset=\v!overlay]
- {\getvalue{\??ma\v!pagina\c!commando}}}%
- \wd2=\!!zeropoint
- \dp2=\!!zeropoint
- \setbox#1=\vbox
- {\hbox{\box2\box#1}}}}
-
-\let\pagebackgroundhoffset = \!!zeropoint
-\let\pagebackgroundvoffset = \!!zeropoint
-\let\pagebackgrounddepth = \!!zeropoint
-
-% #1 = breedte
-% #2 = hoogte
-% #3 = pos
-% #4 = pos
-
-\def\dododopagebodybackground#1#2#3#4%
- {\doifelsevaluenothing{\??ma#3#4\c!achtergrond}
- {\doifelsevalue{\??ma#3#4\c!kader}{\v!aan} % niet waterdicht, ook deelkaders
- {\!!doneatrue}
- {\!!doneafalse}}
- {\!!doneatrue}%
- \if!!donea
- \localframed
- [\??ma#3#4]
- [\c!breedte=#1,\c!hoogte=#2,\c!offset=\v!overlay]
- {\getvalue{\??ma#3#4\c!commando}}%
- \else
- \hskip#1%
- \fi}
-
-\def\dodopagebodybackground#1#2%
- {\setbox0=\vbox to #2
- \bgroup\hbox\bgroup
- \swapmargins
- \goleftonpage
- \dododopagebodybackground\linkerrandbreedte#2#1\v!linkerrand
- \hskip\linkerrandafstand
- \hskip\pageseparation
- \dododopagebodybackground\linkermargebreedte#2#1\v!linkermarge
- \hskip\linkermargeafstand
- \dododopagebodybackground\zetbreedte#2#1\v!tekst
- \hskip\rechtermargeafstand
- \dododopagebodybackground\rechtermargebreedte#2#1\v!rechtermarge
- \hskip\pageseparation
- \hskip\rechterrandafstand
- \dododopagebodybackground\rechterrandbreedte#2#1\v!rechterrand
- \egroup\egroup
- \wd0=\!!zeropoint\relax
- \box0\relax}
-
-\def\setbackgroundbox#1#2%
- {\global\setbox#1=\vbox
- {\offinterlineskip
- \mindermeldingen
- \calculatereducedvsizes
- #2\relax
- \vskip-\bovenhoogte
- \vskip-\bovenafstand
- \dodopagebodybackground\v!boven\bovenhoogte
- \vskip\bovenafstand
- \dodopagebodybackground\v!hoofd\hoofdhoogte
- \vskip\hoofdafstand
- \dodopagebodybackground\v!tekst\teksthoogte
- \vskip\voetafstand
- \dodopagebodybackground\v!voet\voethoogte
- \vskip\onderafstand
- \dodopagebodybackground\v!onder\onderhoogte
- \vfilll}%
- \smashbox#1}
-
-\def\setbackgroundboxes%
- {\ifsomebackground\ifnewbackground
- \showmessage{\m!layouts}{8}{}%
- \docheckbackgrounddefinitions
- \setbackgroundbox\leftbackground\relax
- \ifdubbelzijdig
- \setbackgroundbox\rightbackground\doswapmargins
- \fi
- \global\newbackgroundfalse
- \doifelsevaluenothing{\??ma\v!tekst\v!tekst\c!achtergrond}
- {\global\let\pagebackgroundhoffset=\!!zeropoint
- \global\let\pagebackgroundvoffset=\!!zeropoint
- \global\let\pagebackgrounddepth=\!!zeropoint}
- {\bgroup
- \dimen0=\getvalue{\??ma\v!pagina\c!offset}%
- \doifnothing
- {\getvalue{\??ma\v!boven\v!tekst\c!achtergrond}%
- \getvalue{\??ma\v!onder\v!tekst\c!achtergrond}}
- {\xdef\pagebackgroundhoffset{\the\dimen0}}%
- \doifnothing
- {\getvalue{\??ma\v!tekst\v!rechterrand\c!achtergrond}%
- \getvalue{\??ma\v!tekst\v!linkerrand\c!achtergrond}}
- {\xdef\pagebackgroundvoffset{\the\dimen0}%
- \dimen0=\getvalue{\??ma\v!pagina\c!diepte}%
- \xdef\pagebackgrounddepth{\the\dimen0}}%
- \egroup}%
- \fi\fi}
-
-\def\getbackgroundbox%
- {\ifsomebackground
- \setbackgroundboxes
- \startinteractie
- \doifmarginswapelse
- {\copy\leftbackground}
- {\copy\rightbackground}%
- \stopinteractie
- \fi}
-
-% saves us hundreds of unused hash entries if not needed
-
-\def\docheckbackgrounddefinitions% allocates about 1000 hash-entries
- {\doifdefined{\??ma\v!pagina\c!achtergrond}% skip first pass
- {\def\dodocommando##1##2%
- {\copylocalframed[\??ma##1##2][\??ma\v!pagina]%
- \getparameters[\??ma##1##2]
- [\c!achtergrond=,\c!kader=,\c!kleur=,\c!raster=]%
- \copyparameters
- [\??ma##1##2\c!kader][\??ma##1##2]
- [\c!kleur,\c!raster]%
- \copyparameters
- [\??ma##1##2\c!achtergrond][\??ma##1##2]
- [\c!kleur,\c!raster]}%
- \def\docommando##1%
- {\dodocommando##1\v!linkerrand \dodocommando##1\v!linkermarge
- \dodocommando##1\v!tekst
- \dodocommando##1\v!rechtermarge \dodocommando##1\v!rechterrand}%
- \docommando\v!boven \docommando\v!hoofd
- \docommando\v!tekst
- \docommando \v!voet \docommando\v!onder
- \def\docheckbackgrounddefinitions%
- {\global\somebackgroundtrue}}}
-
-\def\dostelachtergrondenin[#1][#2][#3]%
- {\docheckbackgrounddefinitions
- \global\newbackgroundtrue
- \iffirstargument % \dostelachtergrondenin zonder arg mag
- \ifthirdargument
- \def\docommando##1%
- {\doifelse{##1}{\v!pagina}
- {\getparameters[\??ma\v!pagina][#3]%
- \dosetpageseparation}
- {\def\dodocommando####1%
- {\getparameters[\??ma##1####1][#3]}
- \processcommalist[#2]\dodocommando}}%
- \processcommalist[#1]\docommando
- \else
- \doifelse{#1}{\v!pagina}
- {\getparameters[\??ma\v!pagina][#2]%
- \dosetpageseparation}
- {\dostelachtergrondenin
- [#1]
- [\v!linkerrand,\v!linkermarge,\v!tekst,\v!rechtermarge,\v!rechterrand]
- [#2]}%
- \fi
- \fi}
-
-\def\stelachtergrondenin%
- {\dotripleempty\dostelachtergrondenin}
-
-% a lot of setups, including short ones
-
-\presetlocalframed [\??ma\v!pagina]
-
-\copyparameters
- [\??ma\v!pagina\c!kader][\??ma\v!pagina]
- [\c!offset,\c!diepte,\c!straal,\c!hoek,\c!kleur,\c!raster]
-
-\copyparameters
- [\??ma\v!pagina\c!achtergrond][\??ma\v!pagina]
- [\c!offset,\c!diepte,\c!straal,\c!hoek,\c!kleur,\c!raster]
-
-\def\@@pageseparation {6pt}
-\def\pageseparation {0pt}
-
-\def\paginascheiding {\pageseparation}
-
-\def\dosetpageseparation%
- {\let\pageseparation=\!!zeropoint
- \let\showpageseparation=\relax
- \processaction
- [\getvalue{\??ma\v!pagina\c!scheider}]
- [ \v!ruim=>\let\pageseparation=\@@pageseparation
- \let\showpageseparation=\showloosepageseparation,
- \v!passend=>\let\pageseparation=\@@pageseparation
- \let\showpageseparation=\showtightpageseparation]}
-
-\def\showloosepageseparation%
- {\ifdim\pageseparation>\!!zeropoint\relax
- \bgroup
- \setbox0=\hbox
- {\vrule
- \!!width\pageseparation
- \!!depth\papierhoogte
- \!!height\papierhoogte}%
- \ht0=\!!zeropoint
- \dp0=\!!zeropoint
- \box0
- \egroup
- \fi}
-
-\def\showtightpageseparation%
- {\ifdim\pageseparation>\!!zeropoint\relax
- \bgroup
- \dimen0=\teksthoogte
- \advance\dimen0 by \kopwit
- \doifsometextlineelse{\v!hoofd}
- {\advance\dimen0 by \hoofdhoogte
- \advance\dimen0 by \hoofdafstand}
- {}%
- \dimen2=\papierhoogte
- \advance\dimen2 by -\dimen0
-%\advance\dimen0 by -1cm % nog eens optie
-%\advance\dimen2 by -1cm % nog eens optie
- \setbox0=\hbox
- {\vrule
- \!!width\pageseparation
- \!!depth\dimen2
- \!!height\dimen0}%
- \ht0=\!!zeropoint
- \dp0=\!!zeropoint
- \box0
- \egroup
- \fi}
-
-%I n=File-management
-%I c=\starttekst,\startprojekt,\startonderdeel,\startprodukt
-%I c=\startomgeving,\startdeelomgeving
-%I
-%I Een eenvoudige tekst wordt gestart en gestopt met de
-%I commando's:
-%I
-%I \starttekst
-%I \stoptekst
-%P
-%I Het is mogelijk een projektstructuur op te zetten. Per
-%I projekt wordt een file aangemaakt waarin de volgende
-%I commando's voorkomen:
-%I
-%I \startprojekt naam
-%I \stopprojekt
-%I
-%I Als deze file in TeX wordt geladen, dan worden alle
-%I produkten achter elkaar gezet.
-%I
-%I Een produkt wordt gedefinieerd met:
-%I
-%I \startprodukt naam
-%I \stopprodukt
-%I
-%I Deze file kan zelfstandig door TeX worden gehaald.
-%P
-%I Een omgeving wordt gedefinieerd door:
-%I
-%I \startomgeving naam
-%I \stopomgeving
-%I
-%I Een onderdeel wordt gedefinieerd door:
-%I
-%I \startonderdeel naam
-%I \stoponderdeel
-%I
-%I Files worden eerst gezocht op het actuele gebied. Als een
-%I file niet aanwezig is wordt op de 'roots' gezocht.
-%I
-%I Een onderdeel kan zelfstandig door TeX worden gehaald.
-%P
-%I Binnen een projekt, produkt, omgeving of onderdeel komen
-%I de volgende instellingen voor (tussen haakjes=facultatief):
-%I
-%I projekt omgeving produkt onderdeel
-%I
-%I \projekt naam * *
-%I \omgeving naam (*) (*) (*) (*)
-%I \produkt naam *
-%I \onderdeel naam (*) (*)
-%I
-%I Binnen een omgeving kunnen deelomgevingen worden gedefinieerd
-%I die alleen voor bepaalde produkten, onderdelen enz. gelden.
-%I
-%I \startdeelomgeving[naam,...,naam]
-%I commando's
-%I \stopdeelomgeving
-%P
-%I Het programma TeXEdit doorzoekt bij het aanmaken van een
-%I file-menu de hele tekst op de genoemde commando's. Bij een
-%I lange tekst kan dit misschien 'te' lang duren. Met het
-%I commando:
-%I
-%I \geenfilesmeer
-%I
-%I kan worden aangegeven dat er geen structuurcommando's meer
-%I volgen.
-%I
-%I Ten behoeve van TeXUtil moet in plaats van het commando
-%I \input het commando \verwerkfile{naam} worden gebruikt.
-%P
-%I Als men standaard een en ander wil instellen, dan kan men
-%I dit doen in de file 'cont-sys.tex'. Deze file wordt direkt
-%I na het opstarten geladen cq. uitgevoerd. Daarnaast wordt,
-%I indien aanwezig, de file 'cont-new.tex' geladen.
-
-%T n=starttekst
-%T m=sta
-%T a=x
-%T
-%T \starttekst
-%T
-%T ?
-%T
-%T \stoptekst
-
-\def\currentproject {}
-\def\currentproduct {}
-\def\currentenvironment {}
-\def\currentcomponent {}
-
-\def\loadedfiles {}
-\def\processedfiles {}
-
-\let\geenfilesmeer=\relax
-
-\newcounter\textlevel
-\newcounter\fileprocesslevel
-
-\setvalue{\c!file::0}{\jobname}
-
-\def\processedfile%
- {\getvalue{\c!file::\fileprocesslevel}}
-
-\def\processfile#1%
- {\doglobal\increment\fileprocesslevel
- \setxvalue{\c!file::\fileprocesslevel}{#1}%
- \@EA\doglobal\@EA\addtocommalist\@EA{#1}\processedfiles
- \readlocfile{#1}{}{}
- \doglobal\decrement\fileprocesslevel}
-
-\def\registreerfileinfo#1#2%
- {\immediate\write\uti{f #1 {#2}}}
-
-\doifundefined{preloadfonts} {\let\preloadfonts=\relax}
-\doifundefined{preloadspecials} {\let\preloadspecials=\relax}
-
-\def\loadsystemfiles%
- {\readsysfile{\f!newfilename}
- {\showmessage{\m!systems}{2}{\f!newfilename}}{}%
- \readsysfile{\f!oldfilename}
- {\showmessage{\m!systems}{2}{\f!oldfilename}}{}%
- \readsysfile{\f!systemfilename}
- {\showmessage{\m!systems}{2}{\f!systemfilename}}{}}
-
-% \newevery \everyjob \EveryJob
-% \appendtoks ... \to \everyjob
-
-\appendtoks \meldaanmaakdatum \to \everyjob
-\appendtoks \loadsystemfiles \to \everyjob
-\appendtoks \preloadfonts \to \everyjob
-\appendtoks \settopskip \to \everyjob
-\appendtoks \preloadspecials \to \everyjob
-\appendtoks \openspecialfile \to \everyjob
-\appendtoks \checkutilityfile \to \everyjob
-\appendtoks \openutilities \to \everyjob
-\appendtoks \loadtwopassdata \to \everyjob
-
-\def\starttekst%
- {\ifnum\textlevel=0\relax
- \registreerfileinfo{b}{\jobname}%
- \startcopyingblocks
- \fi
- \doglobal\increment\textlevel\relax}
-
-\let\normalend=\end
-\newevery \everybye \EveryBye
-
-\def\end%
- {\the\everybye
- \normalend}
-
-\appendtoks \pagina[\v!laatste] \to \everybye
-\appendtoks \pagina \to \everybye % nodig voor \startuitstellen...\stopuitstellen
-\appendtoks \registreerfileinfo{e}{\jobname} \to \everybye
-\appendtoks \stopcopyingblocks \to \everybye
-\appendtoks \closeutilities \to \everybye
-\appendtoks \closespecialfile \to \everybye
-
-\def\stoptekst%
- {\doglobal\decrement\textlevel\relax
- \ifnum\textlevel>0\relax
- \let\next=\relax
- \else
- \let\next=\end
- \fi
- \next}
-
-\def\doexecutefileonce#1%
- {\beforesplitstring#1\at.\to\currentfile
- \ExpandBothAfter\doifnotinset{\currentfile}{\loadedfiles}%
- {\ExpandFirstAfter\addtocommalist{\currentfile}\loadedfiles
- \doexecutefile{#1}}}
-
-\def\doexecutefile#1%
- {\registreerfileinfo{b}{#1}
- \processfile{#1}%
- \registreerfileinfo{e}{#1}}
-
-\def\donotexecutefile#1%
- {}
-
-\def\verwerkfile#1 %
- {\doexecutefile{#1}}
-
-\def\omgeving #1 % at outermost level only
- {\def\startomgeving ##1 {}%
- \let\stopomgeving=\relax
- \readlocfile{#1}{}{}}
-
-\newcounter\filelevel
-
-\def\!!donextlevel#1#2#3#4#5#6\\%
- {\beforesplitstring#6\at.\to#1
- \ifnum\filelevel=0\relax
- \starttekst
- \def\projekt ##1 {#2{##1}}%
- \def\omgeving ##1 {#3{##1}}%
- \def\produkt ##1 {#4{##1}}%
- \def\onderdeel ##1 {#5{##1}}%
- \fi
- \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\startprojekt #1 %
- {\!!donextlevel\currentproject
- \donotexecutefile\doexecutefileonce
- \doexecutefileonce\doexecutefile#1\\}
-
-\def\stopprojekt%
- {\doprevlevel}
-
-\def\startprodukt #1 %
- {\!!donextlevel\currentproduct
- \doexecutefileonce\doexecutefileonce
- \donotexecutefile\doexecutefile#1\\}
-
-\def\stopprodukt%
- {\doprevlevel}
-
-\def\startonderdeel #1 %
- {\!!donextlevel\currentcomponent
- \doexecutefileonce\doexecutefileonce
- \donotexecutefile\doexecutefile#1\\}
-
-\def\stoponderdeel%
- {\doprevlevel}
-
-\def\startomgeving #1 %
- {\!!donextlevel\currentenvironment
- \donotexecutefile\doexecutefileonce
- \donotexecutefile\donotexecutefile#1\\}
-
-\def\stopomgeving%
- {\doprevlevel}
-
-\long\def\skipdeelomgeving#1\stopdeelomgeving%
- {}
-
-\def\startdeelomgeving[#1]%
- {\def\partialenvironments{}%
- \def\docommando##1%
- {\beforesplitstring##1\at.\to\someevironment
- \ExpandFirstAfter\addtocommalist{\someevironment}\partialenvironments}%
- \processcommalist[#1]\docommando
- \ExpandBothAfter\doifcommonelse
- {\currentproject,\currentproduct,
- \currentcomponent,\currentenvironment}
- {\partialenvironments}
- {\let\stopdeelomgeving=\relax
- \let\next=\relax}
- {\let\next=\skipdeelomgeving}%
- \next}
-
-\def\startproduct{\startproduct}
-\def\stopproduct {\stopproduct}
-\def\startproject{\startprojekt}
-\def\stopproject {\stopprojekt}
-
-\def\project{\projekt}
-\def\product{\produkt}
-
-\def\deelomgeving #1 %
- {\doexecutefileonce{#1}}
-
-%I n=Macrofiles
-%I c=\gebruikmodules
-%I
-%I Extra modules kunnen worden geladen met het commando:
-%I
-%I \gebruikmodules[file,file,...]
-
-% Why does all tex's handle 8+3 different.
-
-\def\makeshortmodulename[#1#2#3#4#5#6#7#8#9]%
- {\def\modulename{#1#2#3#4#5#6#7#8.}%
- \expandafter\beforesplitstring\modulename\at.\to\modulename}
-
-\def\dodousemodules#1%
- {\makeshortmodulename[m-#1........]%
- \doifundefinedelse{\modulename\v!aan}
- {\setgvalue{\modulename\v!aan}{}%
- \readsysfile{\modulename}%
- {\showmessage{\m!systems}{5}{#1}}%
- {\showmessage{\m!systems}{6}{#1}}}
- {\showmessage{\m!systems}{7}{#1}}}
-
-\def\dousemodules[#1]%
- {\doifsomething{#1}
- {\processcommalist[#1]\dodousemodules}}
-
-\def\usemodules%
- {\dosingleargument\dousemodules}
-
-\let\usemodule=\usemodules
-
-\newif\ifvoorlopig
-\voorlopigfalse
-
-\newif\ifconcept
-\conceptfalse
-
-\def\infofont%
- {\getvalue{7pttttf}}
-
-%\def\mathinfofont%
-% {\eightpoint\tt}
-
-\edef\utilityversion {1996.03.15}
-\edef\contextversion {\the\normalyear.\the\normalmonth.\the\normalday\normalspace}
-\edef\copyrightversion {Copyright 1990-\the\normalyear\normalspace / PRAGMA / J. Hagen - A.F. Otten}
-
-\def\meldaanmaakdatum%
- {\writeline
- \writestring{This is CONTEXT version <\contextversion>
- interface <\currentinterface>
- responses <\currentresponses>}%
- \writeline
- \writestring{This package is based on Plain TeX. It uses an adapted version of the}%
- \writestring{extended mark mechanism of J. Fox (1987) and a few parts of the sidefloat}%
- \writestring{mechanism of D. Comenetz (1993). Most of D.E. Knuth's Plain TeX}%
- \writestring{(\fmtversion) is available and can be used without problems. This package}%
- \writestring{uses TaBlE, a package designed and copyrighted by M.J. Wichura (1988).}%
- \writestring{Only a few auxiliary files are generated, of which some must be processed}%
- \writestring{by TeXUtil (\utilityversion). The current blockversion is \blockversion.}%
- \writeline
- \writestring{\copyrightversion}%
- \writeline}
-
-\startinterface dutch
-
-\def\meldaanmaakdatum%
- {\writeline
- \writestring{Dit is CONTEXT versie <\contextversion>
- interface <\currentinterface>
- meldingen <\currentresponses>}%
- \writeline
- \writestring{Dit pakket is gebaseerd op Plain TeX. Er wordt gebruik gemaakt van een}%
- \writestring{aangepaste versie van het mark mechanisme van J. Fox (1987) en onderdelen}%
- \writestring{van het sidefloat mechanisme van D. Comenetz (1993). De functionaliteit}%
- \writestring{van D.E. Knuth's Plain TeX (\fmtversion) is grotendeels beschikbaar en kan}%
- \writestring{zonder problemen worden gebruikt. Dit pakket gebruikt TaBlE, ontworpen door}%
- \writestring{M.J. Wichura (1988), die ook het auteursrecht bezit. Er worden slechts een}%
- \writestring{paar hulpfiles gegenereerd, waarvan er enkele moeten worden bewerkt door}%
- \writestring{TeXUtil (\utilityversion). Het blokmechanisme heeft versienummer \blockversion.}%
- \writeline
- \writestring{\copyrightversion}%
- \writeline}
-
-\stopinterface
-
-\startinterface german
-
-\def\meldaanmaakdatum%
- {\writeline
- \writestring{Dies ist CONTEXT Version <\contextversion>
- Interface <\currentinterface>
- Meldungen <\currentresponses>}%
- \writeline
- \writestring{Dieses Paket basiert auf Plain-TeX und benutzt eine angepasste Version}%
- \writestring{des erweiterten mark-Mechanismus von J. Fox (1987) und einige Teile des}%
- \writestring{sidefloat-Mechanismus von D. Comenetz (1993). Ein Grossteil D.E. Knuths}%
- \writestring{Plain-TeX (\fmtversion) ist verfuegbar und kann ohne Probleme benutzt werden.}%
- \writestring{Dieses Paket benutzt TaBlE, ein von M.J. Wichura (1988) erstelltes und}%
- \writestring{geschuetztes Paket. Nur einige Hilfsdateien werden erstellt; einige davon}%
- \writestring{muessen von TeXUtil (\utilityversion) bearbeitet werden. Die aktuelle Block-}%
- \writestring{version ist \blockversion.}%
- \writeline
- \writestring{\copyrightversion}%
- \writeline}
-
-\stopinterface
-
-\def\doplaatsversieaanduiding#1#2%
- {\doifsomething{#2}
- {\@EA\convertargument#2\to\ascii
- \ #1: \ascii\
- \!!doneatrue}}
-
-\def\plaatsversieaanduiding%
- {\ifvoorlopig
- \vskip\!!sixpoint
- \hbox to \zetbreedte
- {\infofont
- Versie: \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}
-
-\newbox\referentieinfobox
-\newbox\registerinfobox
-\newbox\floatinfobox
-
-\def\dotestinfo#1#2#3%
- {\ifvoorlopig
- \begingroup
- \convertargument#3\to\ascii
- \xdef\extratestinfo%
- {#2 \ascii}%
- \gdef\totaltestinfo%
- {\global\setbox#1=\vbox
- {\unvbox#1\relax
- \hbox
- {\infofont
- \strut
- \expandafter\doboundtext\expandafter
- {\extratestinfo}
- {\rechtermargebreedte}
- {..}%
- \quad}}}%
- \endgroup
- \ifinner
- \aftergroup\totaltestinfo
- \else
- \totaltestinfo
- \fi
- \fi}
-
-\def\referentieinfo%
- {\dotestinfo\referentieinfobox}
-
-\def\registerinfo%
- {\dotestinfo\registerinfobox}
-
-\def\floatinfo%
- {\dotestinfo\floatinfobox}
-
-\def\plaatstestinfo%
- {\setbox0=\vbox to \teksthoogte
- {\forgetall
- \hsize\rechtermargebreedte
- \ifvoid\floatinfobox\else
- \infofont\strut Plaatsblokken
- \vskip\!!sixpoint
- \unvbox\floatinfobox
- \vskip\!!twelvepoint
- \fi
- \ifvoid\referentieinfobox\else
- \infofont\strut Verwijzingen
- \vskip\!!sixpoint
- \unvbox\referentieinfobox
- \vskip\!!twelvepoint
- \fi
- \ifvoid\registerinfobox\else
- \infofont\strut Registers
- \vskip\!!sixpoint
- \unvbox\registerinfobox
- \fi
- \vss}%
- \wd0=\!!zeropoint
- \box0\relax}
-
-%I n=Commando's
-%I c=\definieer,\naam
-%I c=\gebruikcommandos
-%I
-%I Het is mogelijk eigen commando's te definieren met behulp
-%I van het commando:
-%I
-%I \definieer[aantal argumenten]\commando{betekenis}
-%I
-%I Een argument kan worden opgeroepen door een # gevolgd
-%I een nummer, bijvoorbeeld #2.
-%I
-%I \definieer\test{ziezo} \ziezo
-%I \definieer[1]\test{ziezo #1} \ziezo{}
-%I \definieer[2]\test{ziezo #1 en #2} \ziezo{}{}
-%P
-%I In commandonamen mogen alleen karakters voorkomen. Mocht
-%I onverhoopt een cijfer nodig zijn, dan kunnen dergelijke
-%I commando's worden opgeroepen met:
-%I
-%I \naam{}
-%I
-%I In een aantal gevallen, bijvoorbeeld bij het wegschrijven
-%I naar lijsten, worden commando's \noexpand-ed. Dit is
-%I bijvoorbeeld het geval bij synoniemen en sorteren, als
-%I het criterium ongelijk is aan 'alles'. Dergelijke (zelf)
-%I gedefinieerde commando's dienen eerst te worden
-%I geactiveerd met :
-%I
-%I \gebruikcommandos{\commando}
-%I
-%I Er mogen meerdere commando's tegelijk worden opgegeven:
-%I
-%I \gebruikcommandos{\alfa,\beta,gamma}
-%I
-%I waarbij de \ facultatief is. Er wordt niets gezet!
-
-% \docommando kan niet worden gebruikt omdat deze macro
-% soms lokaal wordt gebruikt
-
-% te zijner tijd:
-%
-% \definevariable {pc} % ProtectedCommand
-%
-% \def\executeprotected#1%
-% {\csname\??pc\string#1\endcsname}
-%
-% \def\defineprotected#1#2%
-% {\expandafter\def\csname\??pc\string#2\endcsname}
-%
-% \def\defineunprotected#1%
-% {\def#1}
-%
-% \def\doprotected%
-% {\ifx\next\define
-% \let\next=\defineprotected
-% \else
-% \let\next=\executeprotected
-% \fi
-% \next}
-%
-% \def\unexpanded%
-% {\futurelet\next\doprotected}
-%
-% \unexpanded\define\ziezo{ziezo}
-%
-% \unexpanded\ziezo
-
-\def\complexdodefinieer[#1]#2#3%
- {\ifx#2\undefined
- \else
- \showmessage{\m!systems}{4}{\string#2}%
- \fi
- \ifcase0#1\def#2{#3}%
- \or\def#2##1{#3}%
- \or\def#2##1##2{#3}%
- \or\def#2##1##2##3{#3}%
- \or\def#2##1##2##3##4{#3}%
- \or\def#2##1##2##3##4##5{#3}%
- \or\def#2##1##2##3##4##5##6{#3}%
- \or\def#2##1##2##3##4##5##6##7{#3}%
- \or\def#2##1##2##3##4##5##6##7##8{#3}%
- \or\def#2##1##2##3##4##5##6##7##8##9{#3}%
- \else\def#2{#3}%
- \fi}
-
-\def\definieer%
- {\complexorsimpleempty{dodefinieer}}
-
-\def\naam#1%
- {\geentest\getvalue{#1}}
-
-\def\gebruikcommandos#1%
- {\bgroup
- \def\docommando##1%
- {\setbox0=\hbox{\getvalue{\string##1}##1}}%
- \processcommalist[#1]\docommando
- \egroup}
-
-%I n=Groeperen
-%I c=\start,\definieerstartstop
-%I
-%I Met behulp van de volgende commando's kan de werking van
-%I andere commando's worden beperkt:
-%I
-%I \start[label]
-%I \stop[label]
-%I
-%I Men is vrij in de keuze van het commentaar. Het gebruik
-%I van deze commando's komt overeen met het gebruiken van {}.
-%P
-%I Er kunnen \start-\stop-paren worden gedefinieerd en
-%I ingesteld met:
-%I
-%I \definieerstartstop[label][voor=,na=,commandos=,
-%I letter=]
-%I
-%I De aan 'voor' en 'na' toegekende commando's worden voor
-%I \start en na \stop uitgevoerd; de aan 'commando'
-%I toegekende commando's direct na \start.
-%I
-%I Naast het \start-\stop-paar is ook het verkorte commando
-%I beschikbaar:
-%I
-%I \label{tekst}
-
-\def\complexstart[#1]% % bgroup toegevoegd
- {\bgroup\getvalue{\e!start#1}}
-
-\def\simplestart%
- {\bgroup}
-
-\def\complexstop[#1]%
- {\getvalue{\e!stop#1}\egroup} % egroup toegevoegd
-
-\def\simplestop%
- {\egroup}
-
-\def\start%
- {\complexorsimple{\e!start}}
-
-\def\stop%
- {\complexorsimple{\e!stop}}
-
-\def\dodefinieerstartstop[#1][#2]%
- {\getparameters
- [\??be#1]
- [\c!voor=,
- \c!na=,
- \c!commandos=,
- \c!letter=,
- #2]%
- \setvalue{#1}##1%
- {\bgroup
- \getvalue{\??be#1\c!commandos}%
- \doattributes{\??be#1}{##1}%
- \egroup}%
- \setvalue{\e!start#1}%
- {\getvalue{\??be#1\c!voor}%
- \bgroup
- \getvalue{\??be#1\c!commandos}%
- \dostartattributes{\??be#1}}%
- \setvalue{\e!stop#1}%
- {\dostopattributes
- \egroup
- \getvalue{\??be#1\c!na}}}
-
-\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
-
-\long\def\startverbergen#1\stopverbergen{}
-
-% gejat van Knuth (zie \copyright, p356)
-
-\def\omcirkeld#1%
- {{\ooalign{\hfil\raise0.07ex\hbox{{\tfx#1}}\hfil\crcr\mathhexbox20D}}}
-
-\def\copyright
- {\omcirkeld{c}}
-
-%I n=Systeem
-%I c=\stelsysteemin
-%I
-%I Systeemvariabelen kunnen worden ingesteld met het
-%I commando:
-%I
-%I \stelsysteemin[resolutie=,korps=]
-%I
-%I Aan 'resolutie' dient het aantal dpi (300).
-
-\def\dostelsysteemin[#1]%
- {\getparameters[\??sv][#1]%
- \beforesplitstring\@@svresolutie\at dpi\to\@@svresolutie
- \let\outputresolution=\@@svresolutie}
-
-\def\stelsysteemin%
- {\dosingleargument\dostelsysteemin}
-
-% Default-instellingen (verborgen)
-
-\resetutilities
-
-% Uitgestelde instellingen
-
-\def\dooutput{\sidefloatoutput} % redefinition of \dooutput
-
-% Default-instellingen (zichtbaar)
-
-\stelsysteemin
- [\c!resolutie=300dpi,
- \c!korps=\normalizedlocalcorpssize] % of iets anders
-
-% Pas op:
-%
-% Omdat er geen fonts geladen zijn kunnen we bij de maten geen
-% em's gebruiken. Bij afstanden is dit geen probleem, omdat
-% deze pas een rol spelen als er al een font geladen is.
-
-\stellayoutin
- [ \c!kopwit=.08417508418\papierhoogte, % .08333 2.5cm
- %\c!boven=.03367003367\papierhoogte, % .03331 1.0cm
- \c!boven=\!!zeropoint,
- \c!bovenafstand=\!!zeropoint,
- \c!hoofd=.06734006734\papierhoogte, % .06667 2.0cm
- \c!hoofdafstand=\!!zeropoint,
- \c!hoogte=.84175084175\papierhoogte, % .83333 25.0cm
- \c!voetafstand=\@@lyhoofdafstand,
- \c!voet=.06734006734\papierhoogte, % .06667 2.0cm
- \c!onderafstand=\@@lybovenafstand,
- \c!onder=\!!zeropoint,
- \c!rugwit=.11904761905\papierbreedte, % 2.5cm
- %\c!rand=.14285714286\papierbreedte, % 3.0cm
- \c!rand=\!!zeropoint,
- \c!randafstand=\@@lymargeafstand,
- %\c!marge=\@@lyrugwit,
- %\c!marge=.07888078409\papierbreedte, % rugwit-2*afstand
- \c!marge=.12649983170\papierbreedte, % snijwit-2*afstand
- \c!margeafstand=.02008341748\papierbreedte, % 12.0pt
- \c!linkerrand=\@@lyrand,
- \c!linkerrandafstand=\@@lyrandafstand,
- \c!linkermarge=\@@lymarge,
- \c!linkermargeafstand=\@@lymargeafstand,
- \c!breedte=.71428571429\papierbreedte, % 15.0cm
- \c!rechtermargeafstand=\@@lymargeafstand,
- \c!rechtermarge=\@@lymarge,
- \c!rechterrandafstand=\@@lyrandafstand,
- \c!rechterrand=\@@lyrand,
- \c!kopoffset=\!!zeropoint,
- \c!rugoffset=\!!zeropoint,
- \c!letter=,
- \c!markering=\v!uit,
- \c!plaats=\v!enkelzijdig]
-
-% instellingen hierop terugvallen, bijvoorbeeld de volgende:
-
-\definieerpapierformaat [A0] [\c!breedte=841mm, \c!hoogte=1189mm]
-\definieerpapierformaat [A1] [\c!breedte=594mm, \c!hoogte=841mm]
-\definieerpapierformaat [A2] [\c!breedte=420mm, \c!hoogte=594mm]
-\definieerpapierformaat [A3] [\c!breedte=297mm, \c!hoogte=420mm]
-\definieerpapierformaat [A4] [\c!breedte=210mm, \c!hoogte=297mm]
-\definieerpapierformaat [A5] [\c!breedte=148mm, \c!hoogte=210mm]
-\definieerpapierformaat [A6] [\c!breedte=105mm, \c!hoogte=148mm]
-\definieerpapierformaat [A7] [\c!breedte=74mm, \c!hoogte=105mm]
-\definieerpapierformaat [A8] [\c!breedte=52mm, \c!hoogte=74mm]
-\definieerpapierformaat [A9] [\c!breedte=37mm, \c!hoogte=52mm]
-
-\definieerpapierformaat [B0] [\c!breedte=1000mm,\c!hoogte=1414mm]
-\definieerpapierformaat [B1] [\c!breedte=707mm, \c!hoogte=1000mm]
-\definieerpapierformaat [B2] [\c!breedte=500mm, \c!hoogte=707mm]
-\definieerpapierformaat [B3] [\c!breedte=354mm, \c!hoogte=500mm]
-\definieerpapierformaat [B4] [\c!breedte=250mm, \c!hoogte=354mm]
-\definieerpapierformaat [B5] [\c!breedte=177mm, \c!hoogte=250mm]
-\definieerpapierformaat [B6] [\c!breedte=125mm, \c!hoogte=177mm]
-\definieerpapierformaat [B7] [\c!breedte=88mm, \c!hoogte=125mm]
-\definieerpapierformaat [B8] [\c!breedte=63mm, \c!hoogte=88mm]
-\definieerpapierformaat [B9] [\c!breedte=44mm, \c!hoogte=63mm]
-
-\definieerpapierformaat [C0] [\c!breedte=917mm, \c!hoogte=1297mm]
-\definieerpapierformaat [C1] [\c!breedte=649mm, \c!hoogte=917mm]
-\definieerpapierformaat [C2] [\c!breedte=459mm, \c!hoogte=649mm]
-\definieerpapierformaat [C3] [\c!breedte=324mm, \c!hoogte=459mm]
-\definieerpapierformaat [C4] [\c!breedte=229mm, \c!hoogte=324mm]
-\definieerpapierformaat [C5] [\c!breedte=162mm, \c!hoogte=229mm]
-\definieerpapierformaat [C6] [\c!breedte=115mm, \c!hoogte=162mm]
-\definieerpapierformaat [C7] [\c!breedte=81mm, \c!hoogte=115mm]
-\definieerpapierformaat [C8] [\c!breedte=57mm, \c!hoogte=81mm]
-\definieerpapierformaat [C9] [\c!breedte=40mm, \c!hoogte=57mm]
-
-\definieerpapierformaat [S3] [\c!breedte=300pt, \c!hoogte=225pt]
-\definieerpapierformaat [S4] [\c!breedte=400pt, \c!hoogte=300pt]
-\definieerpapierformaat [S5] [\c!breedte=500pt, \c!hoogte=375pt]
-\definieerpapierformaat [S6] [\c!breedte=600pt, \c!hoogte=450pt]
-
-\definieerpapierformaat [CD] [\c!breedte=120mm, \c!hoogte=120mm]
-
-\definieerpapierformaat [letter] [\c!breedte=8.5in, \c!hoogte=11in]
-\definieerpapierformaat [legal] [\c!breedte=8.5in, \c!hoogte=14in]
-\definieerpapierformaat [folio] [\c!breedte=8.5in, \c!hoogte=13in]
-\definieerpapierformaat [executive] [\c!breedte=7.25in, \c!hoogte=10.5in]
-
-\definieerpapierformaat [envelope 9] [\c!breedte=8.88in, \c!hoogte=3.88in]
-\definieerpapierformaat [envelope 10] [\c!breedte=9.5in, \c!hoogte=4.13in]
-\definieerpapierformaat [envelope 11] [\c!breedte=10.38in,\c!hoogte=4.5in]
-\definieerpapierformaat [envelope 12] [\c!breedte=11.0in, \c!hoogte=4.75in]
-\definieerpapierformaat [envelope 14] [\c!breedte=11.5in, \c!hoogte=5.0in]
-\definieerpapierformaat [monarch] [\c!breedte=7.5in, \c!hoogte=3.88in]
-\definieerpapierformaat [check] [\c!breedte=8.58in, \c!hoogte=3.88in]
-\definieerpapierformaat [DL] [\c!breedte=220mm, \c!hoogte=110mm]
-
-% Let op: na \stellayoutin (omdat dit wordt aangeroepen).
-
-\stelpapierformaatin
- [A4][A4]
-
-\stelkolommenin
- [\c!n=2,
- \c!lijn=\v!uit,
- \c!tolerantie=\v!soepel,
- \c!afstand=1.5\korpsgrootte, % influenced by switching
- \c!hoogte=,
- \c!balanceren=\v!ja,
- \c!uitlijnen=\v!tekst,
- \c!blanko={\v!regel,\v!vast},
- \c!optie=,
- \c!lijndikte=\linewidth,
- \c!offset=.5\korpsgrootte]
-
-\stelhoofdtekstenin [\v!tekst] [] []
-\stelhoofdtekstenin [\v!marge] [] []
-\stelhoofdtekstenin [\v!rand] [] []
-
-\stelvoettekstenin [\v!tekst] [] []
-\stelvoettekstenin [\v!marge] [] []
-\stelvoettekstenin [\v!rand] [] []
-
-\stelteksttekstenin [\v!tekst] [] []
-\stelteksttekstenin [\v!marge] [] []
-\stelteksttekstenin [\v!rand] [] []
-
-\stelondertekstenin [\v!tekst] [] []
-\stelondertekstenin [\v!marge] [] []
-\stelondertekstenin [\v!rand] [] []
-
-\stelboventekstenin [\v!tekst] [] []
-\stelboventekstenin [\v!marge] [] []
-\stelboventekstenin [\v!rand] [] []
-
-\stelhoofdin [\c!status=\v!normaal,\c!voor=,\c!na=]
-\stelvoetin [\c!status=\v!normaal,\c!voor=,\c!na=]
-\steltekstin [\c!status=\v!normaal,\c!voor=,\c!na=]
-\stelbovenin [\c!status=\v!normaal,\c!voor=,\c!na=]
-\stelonderin [\c!status=\v!normaal,\c!voor=,\c!na=]
-
-\stelhoofdin [\c!na=\vss]
-\steltekstin [\c!voor=\vss,\c!na=\vss]
-\stelvoetin [\c!voor=\vss]
-
-\stelbovenin [\c!voor=\vss,\c!na=\vss]
-\stelonderin [\c!voor=\vss,\c!na=\vss]
-
-\stelhoofdin
- [\v!tekst]
- [\c!strut=\v!ja,
- \c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!hoofd\v!tekst\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!hoofd\v!tekst\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!hoofd\v!tekst\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!hoofd\v!tekst\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelhoofdin
- [\v!marge]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!hoofd\v!marge\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!hoofd\v!marge\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!hoofd\v!marge\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!hoofd\v!marge\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelhoofdin
- [\v!rand]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!hoofd\v!rand\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!hoofd\v!rand\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!hoofd\v!rand\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!hoofd\v!rand\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelvoetin
- [\v!tekst]
- [\c!strut=\v!ja,
- \c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!voet\v!tekst\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!voet\v!tekst\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!voet\v!tekst\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!voet\v!tekst\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelvoetin
- [\v!marge]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!voet\v!marge\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!voet\v!marge\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!voet\v!marge\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!voet\v!marge\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelvoetin
- [\v!rand]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!voet\v!rand\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!voet\v!rand\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!voet\v!rand\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!voet\v!rand\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelbovenin
- [\v!tekst]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!boven\v!tekst\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!boven\v!tekst\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!boven\v!tekst\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!boven\v!tekst\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelbovenin
- [\v!marge]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!boven\v!marge\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!boven\v!marge\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!boven\v!marge\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!boven\v!marge\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelbovenin
- [\v!rand]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!boven\v!rand\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!boven\v!rand\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!boven\v!rand\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!boven\v!rand\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelonderin
- [\v!tekst]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!boven\v!rand\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!boven\v!rand\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!boven\v!rand\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!boven\v!rand\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelonderin
- [\v!marge]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!onder\v!marge\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!onder\v!marge\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!onder\v!marge\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!onder\v!marge\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelonderin
- [\v!rand]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!onder\v!rand\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!onder\v!rand\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!onder\v!rand\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!onder\v!rand\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\steltekstin
- [\v!tekst]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!tekst\v!tekst\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!tekst\v!tekst\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!tekst\v!tekst\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!tekst\v!tekst\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\steltekstin
- [\v!marge]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!tekst\v!marge\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!tekst\v!marge\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!tekst\v!marge\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!tekst\v!marge\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\steltekstin
- [\v!rand]
- [\c!letter=,
- \c!kleur=,
- \c!linkertekst=,
- \c!middentekst=,
- \c!rechtertekst=,
- \c!kantlijntekst=,
- \c!margetekst=,
- \c!linkerletter=\getvalue{\??tk\v!tekst\v!rand\c!letter},
- \c!rechterletter=\getvalue{\??tk\v!tekst\v!rand\c!letter},
- \c!linkerkleur=\getvalue{\??tk\v!tekst\v!rand\c!kleur},
- \c!rechterkleur=\getvalue{\??tk\v!tekst\v!rand\c!kleur},
- \c!linkerbreedte=,
- \c!rechterbreedte=]
-
-\stelnummeringin
- [\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\c!nummer=\v!nee,
- \v!deel\c!nummer=\v!ja,
- \c!nummerscheider=--,
- \c!tekstscheider=\tfskip,
- \c!status=\v!start,
- \c!commando=,
- \c!letter=\v!normaal,
- \c!kleur=]
-
-\stelblankoin
- [\v!standaard,
- \v!groot]
-
-\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!sectie-1] % deel
-\definieersectie[\v!sectie-2] % hoofdstuk
-\definieersectie[\v!sectie-3] % paragraaf
-\definieersectie[\v!sectie-4] % subparagraaf
-\definieersectie[\v!sectie-5] % subsubparagraaf
-\definieersectie[\v!sectie-6] % subsubsubparagraaf
-\definieersectie[\v!sectie-7] % subsubsubsubparagraaf
-
-% \c!eigennummer ook hier?
-
-\definieerkop
- [\v!deel]
- [\c!sectie=\v!sectie-1]
-
-\definieerkop
- [\v!hoofdstuk]
- [\c!sectie=\v!sectie-2]
-
-\definieerkop
- [\v!paragraaf]
- [\c!sectie=\v!sectie-3]
-
-\definieerkop
- [\v!sub\v!paragraaf]
- [\c!sectie=\v!sectie-4,
- \c!default=\v!paragraaf]
-
-\definieerkop
- [\v!sub\v!sub\v!paragraaf]
- [\c!sectie=\v!sectie-5,
- \c!default=\v!paragraaf]
-
-\definieerkop
- [\v!sub\v!sub\v!sub\v!paragraaf]
- [\c!sectie=\v!sectie-6,
- \c!default=\v!paragraaf]
-
-\definieerkop
- [\v!sub\v!sub\v!sub\v!sub\v!paragraaf]
- [\c!sectie=\v!sectie-7,
- \c!default=\v!paragraaf]
-
-\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!sectie-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=\v!normaal,
- \c!doorgaan=\v!nee,
- \c!pagina=\v!rechts,
- \c!hoofd=,
- \c!letter=\tfc,
- \c!voor={\blanko[2*\v!groot]},
- \c!na={\blanko[2*\v!groot]}]
-
-\stelkopin
- [\v!paragraaf]
- [\c!uitlijnen=\v!normaal,
- \c!letter=\tfa,
- \c!voor={\blanko[2*\v!groot]},
- \c!na=\blanko]
-
-\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,
- \c!tussen={\blanko[\v!middel]},
- \c!na=\blanko,
- \c!breedte=\v!passend,
- \c!kopletter=\v!vet,
- \c!letter=\v!normaal,
- \c!kleur=,
- \c!uitlijnen=,
- \c!nummer=\v!ja,
- \c!wijze=\@@nrwijze,
- \c!blokwijze=\@@nrblokwijze,
- \c!sectienummer=\@@nrsectienummer,
- \c!conversie=\v!cijfers]
-
-\stelplaatsblokkenin
- [\c!plaats=\v!midden,
- \c!breedte=\v!passend,
- \c!hoogte=\v!passend,
- \c!offset=\v!overlay,
- \c!kader=\v!uit,
- \c!straal=.5\korpsgrootte,
- \c!hoek=\v!recht,
- \c!achtergrond=,
- \c!achtergrondraster=\@@rsraster,
- \c!achtergrondkleur=,
- \c!bovenkader=,
- \c!onderkader=,
- \c!linkerkader=,
- \c!rechterkader=,
- \c!voor=,
- \c!na=,
- \c!voor\c!wit=\v!groot,
- \c!na\c!wit=\v!groot,
- \c!zij\c!voor\c!wit=\@@bkvoorwit,
- \c!zij\c!na\c!wit=\@@bknawit,
- \c!marge=1em,
- \c!nboven=2,
- \c!nonder=0,
- \c!nregels=4]
-
-\stelplaatsbloksplitsenin
- [\c!conversie=\v!letter, % \v!romeins
- \c!regels=3]
-
-\stelwitruimtein
- [\v!geen]
-
-\inspringen
- [\v!nooit]
-
-\stelinspringenin
- [\v!geen]
-
-\stelopsommingenin % undocumented
- [\c!niveaus=6,
- \c!marge=\!!zeropoint,
- \c!breedte=1.5em,
- \c!factor=0,
- \c!afstand=.5em,
- \c!marletter=\c!type,
- \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=...,
- \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=,
- \c!sectienummer=\@@nrsectienummer,
- \c!plaats=\v!rechts,
- \c!links=(,
- \c!rechts=)]
-
-\stelreferentielijstin
- [\c!letter=\v!normaal]
-
-\stelinmargein
- [\c!letter=\v!vet,
- \c!kleur=,
- \c!plaats=\v!beide,
- \c!uitlijnen=\v!binnen,
- \c!voor=,
- \c!na=]
-
-\stelinmargein
- [\v!links]
- [\c!plaats=\v!links,
- \c!uitlijnen=\v!links]
-
-\stelinmargein
- [\v!rechts]
- [\c!plaats=\v!rechts,
- \c!uitlijnen=\v!rechts]
-
-\versie
- [\v!definitief]
-
-\stelpaginanummerin
- [\c!nummer=1]
-
-\stelsubpaginanummerin
- [\c!wijze=\v!per\v!deel,
- \c!status=\v!stop]
-
-\stelsmallerin
- [\c!links=1.5em,
- \c!rechts=1.5em,
- \c!midden=1.5em]
-
-\stelrefererenin
- [\c!status=\v!start,
- \v!deel\c!nummer=\v!ja,
- \v!hoofdstuk\c!nummer=\v!nee,
- \c!interactie=\v!alles,
- \c!prefix=]
-
-\stelregelnummerenin
- [\c!conversie=\v!cijfers,
- \c!start=1,
- \c!stap=1,
- \c!plaats=\v!inmarge,
- \c!letter=,
- \c!kleur=,
- \c!breedte=2em,
- \c!prefix=,
- \c!refereren=\v!aan]
-
-\definieeropmaak
- [\v!standaard]
- [\c!breedte=\zetbreedte,
- \c!hoogte=\teksthoogte,
- \c!voffset=\!!zeropoint,
- \c!hoffset=\!!zeropoint,
- \c!pagina=\v!rechts,
- \c!dubbelzijdig=\v!ja]
-
-\stelpositionerenin
- [\c!eenheid=\s!cm,
- \c!factor=1,
- \c!schaal=1,
- \c!xstap=\v!absoluut,
- \c!ystap=\v!absoluut,
- \c!offset=\v!ja,
- \c!xoffset=\!!zeropoint,
- \c!yoffset=\!!zeropoint]
-
-\stelregelsin
- [\c!voor=\blanko,
- \c!na=\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!hang=,
- \c!monster=,
- \c!uitlijnen=,
- \c!inspringen=\v!nee,
- \c!voor=\blanko,
- \c!tussen=\blanko,
- \c!na=\blanko,
- \c!commando=]
-
-\steldoornummerenin
- [\c!plaats=\v!boven,
- \c!kopletter=\v!vet,
- \c!kopkleur=,
- \c!letter=\v!normaal,
- \c!kleur=,
- \c!breedte=8em,
- \c!hang=,
- \c!monster=,
- \c!uitlijnen=,
- \c!inspringen=\v!nee,
- \c!voor=\blanko,
- \c!tussen=\blanko,
- \c!na=\blanko,
- \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=]
-
-\stelkoppeltekenin
- [\c!teken=\compoundhyphen]
-
-\stelnaastplaatsenin
- [\c!status=\v!stop]
-
-\steltolerantiein
- [\v!horizontaal,\v!zeerstreng]
-
-\steltolerantiein
- [\v!vertikaal,\v!streng]
-
-\steluitlijnenin
- [\v!onder,
- \v!breedte]
-
-\stelspatieringin
- [\v!opelkaar]
-
-\definieerregister
- [\v!index]
- [\v!indices]
-
-\definieerplaatsblok
- [\v!figuur]
- [\v!figuren]
-
-\definieerplaatsblok
- [\v!tabel]
- [\v!tabellen]
-
-\stelplaatsblokin
- [\v!tabel]
- [\c!kader=\v!uit]
-
-\definieerplaatsblok
- [\v!intermezzo]
- [\v!intermezzos]
-
-\definieerplaatsblok
- [\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=\geentest\dimension]
-
-\stelmargeblokkenin
- [\c!status=\v!start,
- \c!plaats=\v!inmarge,
- \c!breedte=\rechtermargebreedte,
- \c!letter=,
- \c!kleur=,
- \c!uitlijnen=,
- \c!links=,
- \c!rechts=,
- \c!boven=,
- \c!tussen=\blanko,
- \c!onder=\vfill,
- \c!voor=,
- \c!na=]
-
-\stelachtergrondenin
- [\v!pagina]
- [\c!kader=\v!uit,
- \c!straal=.5\korpsgrootte,
- \c!hoek=\v!recht,
- \c!achtergrond=,
- \c!raster=\@@rsraster,
- \c!kleur=,
- \c!kaderoffset=\getvalue{\??ma\v!pagina\c!offset},
- \c!achtergrondoffset=\getvalue{\??ma\v!pagina\c!offset},
- \c!offset=\!!zeropoint,
- \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
-
\ No newline at end of file +%D \module +%D [ file=core-01a, +%D version=1997.03.31, +%D title=\CONTEXT\ Core Macros, +%D subtitle=1A (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. Non||commercial use is +%C granted. + +% nog oplossen: voetnoot setten ivm later veranderde +% witruimte; probleem: als lijn graphic + +% \ifinfloat \ifinpagebody \ifintable \ifincolumns etc naar +% core-sta(tus) +% nieuw/nb: +% +% in handleiding: eerste in set float [hier..] telt! +% [hier,altijd] en niet [altijd,hier] +% +% \switchnaarkorps[globaal] voor bv grote figuren in klein +% \interactiebuttons[][] +% lijstalternatieven: e, f,g +% \lastreference +% \pagina[ja,blanko,rechts] +% \stelkopin[tussen] % precies aangeven waar voor/tussen/na +% \stelpapierformaatin[liggend,A4][liggend,A4] + +% kopletter: letter=,tekstletter=\bfa,nummerletter=\bf (anders ook \bfa) + +% in handleiding vermelden dat \definieerinteractiemenu 3 args behoeft! +% in handleiding: \steloffsetin vervangen door \stellayoutin +% in handleiding: \stellayoutin optie [markering=aan] +% in handleiding: \stellayoutin schaalt naar paginamaten +% in handleiding: \stellayoutin optie [plaats=midden|..zijdig] +% in handleiding: \stelinteractieschermin optie [..wit=, ..=passend] +% in handleiding: \stelinteractieschermin optie [..offset=, ..=passend] +% in handleiding: \definieerpapierformaat [A3,S3456][..] +% in handleiding: \stellayoutin optie [breedte|hoogte=passend] +% in handleiding: meer achtergrond opties +% in handleiding: \stelregelsin[inspringen=ja,nee,even,oneven] +% in handleiding: \stelkolommenin[optie=achtergrond] +% in handleiding: \omlijnd[breedte=passend,uitlijnen=midden] (auto mode) +% in handleiding: \omlijnd[achtergrondcommando ...] +% in handleiding: \stelhoofdin[status=hoog] +% in handleiding: \stellijstin[koppeling=aan] % interactieve optie, was standaard aan, nu uit +% in handleiding: \stelvoetin[voor=,na=,strut=] +% in handleiding: \stelmenuin[][links=,rechts=,midden=,voor=,...] + +% in handleiding: \definecolorgroup[a][b] +% \stelinteractiebalkin[symbool=ja|nee] +% \stelinteractiemenuin[zelfdepagina|onbekendeverwijzing=ja|nee|leeg|geen] +% \definieerconversie[aa][*,**,***] +% \stelkopin[eigennummer=ja] +% \stel...tekstenin (zonder argumenten == reset) + +% in handleiding: \definieeroverlay[naam]{commando} +% in handleiding: \plaatsonderelkaar +% +% in handleiding preview bij figuren + +% nb: als subpage: dan ook op eerste pag nummer ophogen (i.g.v. \standaardopmaak) +% execute command interactive commands + +% \stelsubpaginanummerin[reset] +% \bepaallijstkenmerken +% \bepaalregisterkenmerken + +% in handleiding cmyk/rgb/k +% in handleiding: \raggedright etc fontswitch afhankelijk (em) + +\newevery \everybodyfont \Everybodyfont % just to be sure + +\appendtoks \setnormalbaselines \to \everybodyfont +\appendtoks \setstrut \to \everybodyfont +\appendtoks \settopskip \to \everybodyfont +\appendtoks \setmaxdepth \to \everybodyfont +\appendtoks \stelinspringenin \to \everybodyfont +\appendtoks \stelblankoin \to \everybodyfont +\appendtoks \stelwitruimtein \to \everybodyfont +% \appendtoks \setupfootnotes \to \everybodyfont + +% \appendtoks .. \to \everypar +% \appendtoks .. \to \everypar +% \appendtoks .. \to \everypar + +% kan elders ook worden gebruikt i.i.g ongeveer +% \v!tekst EN \c!tekst etc checken + +\unprotect + +\def\gobbleassigndimen#1\\{} + +\def\assigndimen#1#2% + {\afterassignment\gobbleassigndimen#1=#2\!!zeropoint\\} + +\protect + +\writestatus{loading}{Context Core Macros (a)} + +\unprotect + +\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 -- geladen + 6: geen macro's in -- gevonden + 7: macro's uit -- 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 -- +\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 -- loaded + 6: no macros found in -- + 7: macros of -- already loaded + 8: new version of utility file, second pass needed + 9: -- not found/processed + 10: don't use em in -- + 11: building simple utility-file + 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 -- +\stopmessages + +% - TOBIAS: check 21/22/23 + +\startmessages german library: systems + title: system + 1: Laden der Hilfsdatei verschoben (tippenmodus) + 2: -- geladen + 3: Versuche LaTeX + 4: Befehl -- ist bereits definiert + 5: Makros in -- geladen + 6: Keine Makros in -- gefunden + 7: Makros in -- 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: Brauche gute Hilfsdateien + 23: -- arrangiert auf -- +\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 dutch library: floatblocks + title: plaatsblokken + 1: -- hernummerd / -- => -- + 2: -- bewaard + 3: -- verplaatst + 4: -- geplaatst + 5: volgorde aangepast + 6: maximaal -- boven + 7: maximaal -- onder + 8: minder dan -- regels + 9: volgorde verstoord + 10: -- begrensd + 11: geen blok opgegeven + 12: niet gedefinieerd +\stopmessages + +\startmessages english library: floatblocks + title: floatblocks + 1: -- renumbered / -- => -- + 2: -- saved + 3: -- moved + 4: -- placed + 5: order adapted + 6: n of top floats limited to -- + 7: n of bottom floats limited to -- + 8: less than -- lines + 9: order disturbed + 10: -- limited + 11: no block given + 12: undefined +\stopmessages + +\startmessages german library: floatblocks + title: Gleitobjektbloecke + 1: -- neu nummeriert / -- => -- + 2: -- gespeichert + 3: -- verschoben + 4: -- plaziert + 5: Reihenfolge angepasst + 6: Anz. der oberen Gleitobjekte beschraengt auf -- + 7: Anz. der unteren Gleitobjekte beschraengt auf -- + 8: weniger als -- zeilen + 9: Reigenfolge gestoert + 10: -- begrenzt + 11: kein Block gegeben + 12: undefiniert +\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 + 9: momenteen maximaal -- niveaus in opsommingen + 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 + 9: currently no more than -- levels in itimezations + 10: -- and -- don't add up to 1.0 + 11: spacing -- not permitted in gridmode +\stopmessages + +% TOBIAS: 10 and 11! + +\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 + 9: z.Z. nicht mehr als -- Niveaus in Posten + 10: -- and -- don't add up to 1.0 + 11: spacing -- not permitted in gridmode +\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 + +% \CONTEXTtrue % Now we know that we can use ConTeXt commands. + +% \def\teststatus{stop} +% +% \def\doiftrue {\iftrue} +% \def\doiffalse {\iffalse} +% +% \def\setstatus#1#2% +% {\doifelse{\getvalue{#1\c!status}}{\v!start} +% {\let#2=\doiftrue} +% {\let#2=\doiffalse}} +% +% \setstatus{test}\iftest +% +% \iftest +% \message{JA} +% \else +% \message{NEE} +% \fi + +% om problemen te voorkomen: +% +% \ascii => \@@ascii@@ +% \asciiA => \@@ascii@@A +% \asciiB => \@@ascii@@B + +% Nodig i.v.m. inspringen eerste alineas + +\def\explicithmode% + {\unhbox\voidb@x} + +% Nodig voor gebruikers + +\def\geentest{\donottest} + +% Dit moet nog ergens een plaats krijgen: + +\def\stelfactorenin% + {\stelwitruimtein + \stelblankoin + \settopskip + \setmaxdepth} + +% Nog doen: +% +% \goodbreak -> \allowbreak en \dosomebreak{..} in koppen +% +% bij koppen zowieso: \blanko[reset] + +% Nog in commando verwerken: +% +% \voorkeur … la \blanko +% +% Om ongewenste witruimte te voorkomen kan met \dosomebreak{\break} +% een \penalty v¢¢r witruimte worden geplaatst. + +\def\dosomebreak#1% + {\skip0=\lastskip + \removelastskip + %\type{#1}% + #1\relax + \ifdim\skip0=\!!zeropoint + \else + \vskip\skip0 + \fi} + +% beter, vooral in \vbox; nog in \pagina toepassen s! + +\def\doifoutervmode#1% + {\ifvmode\ifinner\else#1\fi\fi} + +\def\dosomebreak#1% + {\doifoutervmode + {\skip0=\lastskip + \removelastskip + %\leavevmode\type{#1}% + #1\relax + \ifdim\skip0=\!!zeropoint % else interference with footnotes + \else + \vskip\skip0 + \fi}} + +% Idem: +% +% \springin + +%\def\noindentation% vervallen +% {\EveryPar +% {\ifdim\parindent=\!!zeropoint +% \else +% \bgroup +% \setbox0=\lastbox +% \egroup +% \fi +% \EveryPar{}}} + +\newif\ifindentation \indentationtrue % documenteren, naar buiten + +\let\checkindentation=\relax + +\def\donoindentation% + {\ifdim\parindent=\!!zeropoint + \else + \bgroup + \setbox0=\lastbox + \egroup + \fi} + +\def\noindentation% + {\indentationfalse + \def\checkindentation% + {\donoindentation + \let\checkindentation=\indentationtrue}} + +\def\indentation% + {\ifvmode + \ifdim\parindent=\!!zeropoint + \else + \hskip\parindent + \fi + \fi} + +% 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{}} + +\def\forgeteverypar% + {\everypar{\the\neverypar}} + +\def\forgetparindent% + {\forgeteverypar + \stelinspringenin[\v!geen]} + +\def\forgetparskip% + {\stelwitruimtein[\v!geen]} + +\def\forgetbothskips% + {\tolerance=1500 + \leftskip\!!zeropoint + \rightskip\!!zeropoint\relax} + +\def\forgetspacing% + {\emergencystretch\!!zeropoint\relax} + +\def\forgetall% + {\let\par=\endgraf % i.v.m. getpar etc + \forgetparskip + \forgetparindent + \forgetbothskips + \forgetspacing} % i.v.m. funny spacing in pagebody + +\def\localvbox#1#% + {\vbox#1\bgroup + \forgetparskip + \setlocalhsize + \hsize=\localhsize + \forgetparindent + \forgetbothskips + \forgeteverypar + \let\next=} + +% ach ja + +\unexpanded\def\dostartattributes#1% + {\begingroup % geen \bgroup, anders in mathmode lege \hbox + \doifdefinedelse{#1\c!kleur} + {\def\colorattribute{\getvalue{#1\c!kleur}}} + {\let\colorattribute=\empty}% + \doifdefinedelse{#1\c!letter} + {\def\fontattribute{\getvalue{#1\c!letter}}} + {\let\fontattribute=\empty}% + \startcolor[\colorattribute]% + \doconvertfont{\fontattribute}} + +\unexpanded\def\dostopattributes% + {\stopcolor + \endgroup} + +\unexpanded\def\doattributes#1#2% + {\dostartattributes{#1}{#2}\dostopattributes} + +% \dotextprefix{tekst} +% +% als {tekst} niet leeg is: tekst~ + +\def\dotextprefix#1% + {\ConvertToConstant\doifnot{#1}{}{#1~}} + +\def\herhaal {\dorepeat} +\def\herhaler {\repeater} +\def\herhaalmetcommando {\dorepeatwithcommand} + +% This permits things like ^\index{hans}^, where hans is +% duplicated in the text. + +\newif\ifduplicate + +\bgroup +\gdef\checkduplication% in line with Knuth + {\ifmmode + \def\next{^}% + \else + \let\next=\startduplication + \fi + \next} +\gdef\insideduplication% + {\ifmmode + \def\next{^}% + \else + \let\next=\egroup + \fi + \next} +\catcode`\^=\@@active +\gdef\enableduplication% + {\catcode`\^=\@@active + \let^=\checkduplication} +\gdef\disableduplication% + {\catcode`\^=\@@superscript} +\gdef\startduplication% + {\bgroup + \duplicatetrue + \let^=\insideduplication} +\egroup + +\def\verbatim#1% + {\convertargument#1\to\ascii\ascii} + +% mogelijke optimalisaties: +% +% \ifx ...\else ...\fi +% \ifvisible ... \fi + +% De opbouw van deze file +% +% Deze file bevat naast de verschillende Pragma-Macro's ook +% helpinformatie bij deze macro's en templates. Een blok +% helpinformatie wordt gekenmerkt door een %I. +% +% Een blok kan zijn opgedeeld in pagina's. In dat geval is +% %I vervangen door %P. De eerste regel van een blok bevat +% de titel van de informatie. +% +% Een template (voorgedefinieerde structuur) wordt gekenmerkt +% door %T. Ook hier bevat de eerste regel een titel, +% eventueel gevolgd door een mnemonic. +% +% Zowel de helpinformatie als de templates zijn in het +% programma TeXEdit oproepbaar. +% +% Het programma TeXEdit kan t.z.t. worden ingesteld met +% behulp van de onderstaande, door %S voorafgegane, +% setupcommando's. Vooralsnog is een en ander 'hard' in het +% programma geprogrammeerd. + +%S InputFile \input +%S InputFile \omgeving \environment +%S InputFile \projekt \project +%S InputFile \produkt \product +%S InputFile \onderdeel \component +%S +%S CheckStrings \start \stop +%S CheckStrings \begin \end +%S CheckStrings \begin \eind +%S +%S CheckChars { } +%S CheckChars [ ] +%S CheckChars ( ) +%S +%S CheckChar $ + +% Het <pagina>-karakter (FormFeed), wordt omgezet in \par + +\edef\oldlinefeed{\the\catcode`\^^L} + +\catcode`\^^L=\oldlinefeed + +\catcode`\^^L=\@@endofline + +%I n=Struts +%I c=\strut,\setnostrut,\setstrut,\toonstruts +%I +%I Struts zijn onzichtbare 'karakters' met alleen een hoogte +%I en diepte. De volgende commando's hebben betrekking op +%I struts +%I +%I \strut +%I \setstrut +%I \setnostrut +%I \toonstruts + +\def\toonstruts% + {\setteststrut} + +% Hieronder volgen enkele instellingen en macro's ten behoeve +% van de interlinie en \strut. De waarden 2.8, 0.07, 0.72 en +% 0.28 zijn ooit eens ontleend aan INRS-TEX en moeten wellicht +% nog eens instelbaar worden. +% +% \lineheight : de hoogte van een regel +% \spacing{getal} : instellen interlinie +% \normalbaselines : instellen regelafstend +% +% \setstrut : instellen \strut +% \setnostrut : resetten \strut, \endstrut, \begstrut +% +% \setteststrut : instellen zichtbare struts +% \resetteststrut : instellen onzichtbare struts +% +% \setfontparameters : instellen na fontset +% +% De hoogte van een regel (\lineheight) is gelijk aan de +% som van de hoogte (\ht) en diepte (\dp) van \strutbox. +% +% \strut : denkbeeldig blokje met hoogte en diepte +% +% Een \hbox kan als deze aan het begin van een regel staat +% een breedte \hsize krijgen. Dit is soms te voorkomen met het +% commando \leavevmode. Binnen een \vbox geeft dit echter +% niet altijd het gewenste resultaat, vandaar het commando +% +% \leaveoutervmode + +% Pas op: niet zomaar \topskip en \baselineskip aanpassen +% en zeker niet \widowpenalty. Dit kan ernstige gevolgen +% hebben voor kolommen. +% +% Enige glue kan op zich geen kwaad, echter als blanko=vast, +% dan moet ook de rek 0 zijn. Binnen kolommen is rek ook +% niet bepaald mooi. Een hele kleine waarde (0.025) voldoet, +% omdat een positieve glue eindeloos rekbaar is. + +\newdimen\strutdimen +\newdimen\lineheight +\newdimen\openlineheight +\newdimen\openstrutheight +\newdimen\openstrutdepth + +\def\strutheightfactor {.72} +\def\strutdepthfactor {.28} + +\def\baselinefactor {2.8} +\def\baselinegluefactor {0} + +\def\normallineheight {\baselinefactor ex} + +\def\strutheight {0pt} +\def\strutdepth {0pt} +\def\strutwidth {0pt} + +\def\spacingfactor {1} + +\def\topskipfactor {1.0} +\def\maxdepthfactor {0.4} + +\def\systemtopskipfactor {\topskipfactor} +\def\systemmaxdepthfactor {\maxdepthfactor} + +% De onderstaande definitie wordt in de font-module overruled + +\ifx\globalbodyfontsize\undefined + \newdimen\globalbodyfontsize \globalbodyfontsize=12pt +\fi + +% door een \dimen. Dit is geen probleem omdat (1) de default +% korpsgrootte 12pt is en (2) de fonts nog niet geladen zijn +% en de instellingen bij het laden nogmaals plaatsvinden. + +\def\settopskip% the extra test is needed for the lbr family + {\topskip=\systemtopskipfactor\globalbodyfontsize + \ifgridsnapping \else + \ifr@ggedbottom\!!plus5\globalbodyfontsize\fi + \fi + \relax % the skip + \ifdim\topskip<\strutheightfactor\openlineheight + \topskip=\strutheightfactor\openlineheight\relax + \fi} + +\def\setmaxdepth% + {\maxdepth=\systemmaxdepthfactor\globalbodyfontsize} + +\def\normalbaselines% + {\baselineskip\normalbaselineskip + \lineskip\normallineskip + \lineskiplimit\normallineskiplimit} + +\def\setnormalbaselines% + {\lineheight=\normallineheight + \openlineheight=\spacingfactor\lineheight +\openstrutheight=\strutheightfactor\openlineheight +\openstrutdepth =\strutdepthfactor \openlineheight + \normalbaselineskip= + \openlineheight + \!!plus\baselinegluefactor\openlineheight + \!!minus\baselinegluefactor\openlineheight + \normallineskip\!!onepoint\relax + \normallineskiplimit\!!zeropoint\relax + \normalbaselines} + +\def\setspacingfactor#1\to#2\by#3\\% + {\strutdimen=#2pt\relax + \strutdimen=#3\strutdimen + \edef#1{\withoutpt{\the\strutdimen}}} + +\def\spacing#1% + {\ifgridsnapping + \edef\spacingfactor{1}% + \showmessage{\m!layouts}{11}{#1}% + \else + \edef\spacingfactor{#1}% + \fi + \setspacingfactor\systemtopskipfactor\to\topskipfactor\by#1\\% + \setspacingfactor\systemmaxdepthfactor\to\maxdepthfactor\by#1\\% + \setnormalbaselines + \setstrut} + +\def\setstrutdimen#1#2#3% % een strut is n.m maal ex + {\strutdimen=\normallineheight % wat niet per se \lineheight + \strutdimen=#2\strutdimen % is omdat een strut lokaal + \strutdimen=#3\strutdimen % kan afwijken van de globale + \edef#1{\the\strutdimen}} % strut + +\let\normalstrut=\strut + +% The double \hbox construction enables us to \backtrack +% boxes. + +\def\setstrut% + {\setstrutdimen\strutheight\strutheightfactor\spacingfactor + \setstrutdimen\strutdepth \strutdepthfactor \spacingfactor + \let\strut=\normalstrut + \setbox\strutbox=\normalhbox + {\normalhbox + {\vrule + \!!width \strutwidth + \!!height \strutheight + \!!depth \strutdepth + \normalkern-\strutwidth}}} + +\def\setteststrut% + {\def\strutwidth{.8pt}% + \setstrut} + +\def\begstrut% + {\relax\ifdim\ht\strutbox=\!!zeropoint \else + \strut + \normalpenalty\!!tenthousand + \normalhskip\!!zeropoint + \ignorespaces + \fi} + +\def\endstrut% + {\relax\ifdim\ht\strutbox=\!!zeropoint \else + \unskip + \normalpenalty\!!tenthousand + \normalhskip\!!zeropoint + \strut + \fi} + +\def\setnostrut% + {\setbox\strutbox=\normalhbox{\normalhbox{}}% + \let\strut=\empty + \let\endstrut=\empty + \let\begstrut=\empty} + +\def\resetteststrut% + {\let\strutwidth=\!!zeropoint + \setstrut} + +\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 +%D visual debugger. + +\ifx\undefined\normaloffinterlineskip + \let\normaloffinterlineskip=\offinterlineskip % knuth's original +\fi + +% \newskip\oldbaselineskip +% \newskip\oldlineskip +% \newskip\oldlineskiplimit +% +% \newif\ifinterlineskipoff +% +% \def\offinterlineskip% +% {\ifinterlineskipoff\else +% \interlineskipofftrue +% \oldbaselineskip=\baselineskip +% \oldlineskip=\lineskip +% \oldlineskiplimit=\lineskiplimit +% \fi +% \normaloffinterlineskip} +% +% \def\oninterlineskip% +% {\ifinterlineskipoff +% \baselineskip=\oldbaselineskip +% \lineskip=\oldlineskip +% \lineskiplimit=\oldlineskiplimit +% \fi} + +\def\offinterlineskip% + {\edef\oninterlineskip% + {\baselineskip=\the\baselineskip + \lineskip=\the\lineskip + \lineskiplimit=\the\lineskiplimit + \noexpand\let\noexpand\offinterlineskip=\noexpand\normaloffinterlineskip}% + \normaloffinterlineskip} + +\let\oninterlineskip=\relax + +\def\leaveoutervmode% + {\ifvmode\ifinner\else + \leavevmode + \fi\fi} + +% We passen ook de \displayskip's wat aan (nog eens uitzoeken): + +\def\displayskipsize#1#2% + {#1\lineheight\!!plus#2\lineheight\!!minus#2\lineheight} + +\def\displayskipfactor {1.0} +\def\displayshortskipfactor {0.8} + +\def\displayskipgluefactor {0.3} +\def\displayshortskipgluefactor {0.2} + +\def\abovedisplayskipsize% doet niets ? + {\displayskipsize\displayskipfactor\displayskipgluefactor} + +\def\belowdisplayskipsize% doet niets ? + {\displayskipsize\displayskipfactor\displayskipgluefactor} + +\def\abovedisplayshortskipsize% + {\displayskipsize\displayshortskipfactor\displayshortskipgluefactor} + +\def\belowdisplayshortskipsize% + {\displayskipsize\displayshortskipfactor\displayshortskipgluefactor} + +\def\setdisplayskip#1#2#3% + {#1=#2\relax + \advance#1 by -\parskip + \advance#1 by -#3\relax} + +\def\setdisplayskips% + {\setdisplayskip\abovedisplayskip\abovedisplayskipsize\baselineskip + \setdisplayskip\belowdisplayskip\belowdisplayskipsize\!!zeropoint + \setdisplayskip\abovedisplayshortskip\abovedisplayshortskipsize\baselineskip + \setdisplayskip\belowdisplayshortskip\belowdisplayshortskipsize\!!zeropoint} + +% We stellen enkele penalties anders in dan Plain TEX: + +\widowpenalty=2000 % was: 1000 +\clubpenalty=2000 % was: 800 + +% Bovendien definieren we enkele extra \fill's: + +\def\hfilll% + {\hskip\!!zeropoint\!!plus1filll} + +\def\vfilll% + {\vskip\!!zeropoint\!!plus1filll} + +% De onderstaande hulpmacro's moeten nog eens instelbaar worden +% gemaakt. + +\def\tfskipsize{1em\relax} + +\def\tfkernsize{1ex\relax} + +\def\tfskip% + {{\tf\hskip\tfskipsize}} + +\def\tfkern% + {{\tf\kern\tfkernsize}} + +% 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} + +\let\reportutilityproblems=\relax + +\let\utilityresetlist=\empty + +\def\addutilityreset#1% + {\addtocommalist{\s!reset#1}\utilityresetlist} + +\def\resetutilities% + {\processcommacommand[\utilityresetlist]\getvalue} + +% #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} + +\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} + {}}} + +\long\def\doutilities#1#2#3#4#5% % introduceren in utility file + {%\ifprocessingverbatim + % \showmessage{\m!systems}{1}{}% + %\else +\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 + \endgroup + }%\fi} + +% 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 + +\def\alltwopasslists{} + +\newif\iftwopassdatafound + +\def\twopassentry#1% + {\executeifdefined{@@#1\s!pass}\gobbletwoarguments} + +\def\definetwopasslist#1% + {\doifundefined{#1:\s!list} + {\addtocommalist{#1}\alltwopasslists + \doglobal\addutilityreset{#1\s!pass}% + \setgvalue{\s!set#1\s!pass}% + {\setgvalue{@@#1\s!pass}####1####2% + {\debuggerinfo{\m!systems}{twopass data #1 - ####1 = ####2}% + \setxvalue{#1:\s!list}{\getvalue{#1:\s!list}####2,}}}% + \setgvalue{\s!reset#1\s!pass}% + {\setgvalue{@@#1\s!pass}####1####2{}}% + \getvalue{\s!reset#1\s!pass}}} + +\def\doloadtwopassdata#1% + {\doifundefined{#1:\s!list} + {\setgvalue{#1:\s!list}{}% + \doutilities{#1\s!pass}{\jobname}{}{}{}% + \setxvalue{#1:\s!list}{\getvalue{#1:\s!list}0,0}}} + +\def\loadtwopassdata% + {\processcommacommand[\alltwopasslists]\doloadtwopassdata} + +\def\twopassdata{} + +\def\dogettwopassdata[#1,#2]#3% + {\doifelse{#1}{0} + {\twopassdatafoundfalse} + {\twopassdatafoundtrue + \setxvalue{#3:\s!list}{#2}% + \edef\twopassdata{#1}}} + +\def\gettwopassdata#1% + {\edef\!!stringa{\getvalue{#1:\s!list}}% + \debuggerinfo{\m!systems}{twopass get #1 - \!!stringa}% + \expandafter\dogettwopassdata\expandafter[\!!stringa]{#1}} + +\def\dofindtwopassdata#1#2% + {\edef\!!stringa{,\getvalue{#1:\s!list}}% + \debuggerinfo{\m!systems}{twopass find #2 - \!!stringa}% + \def\dodofindtwopassdata[##1,##2#2##3,##4]% + {\def\twopassdata{##3}% + \doifelse{##3}{} + {\twopassdatafoundfalse} + {\twopassdatafoundtrue}}% + \@EA\dodofindtwopassdata\@EA[\!!stringa,#2,#2,]} + +\def\findtwopassdata% + {\ExpandBothAfter\dofindtwopassdata} + +\def\dogetfirsttwopassdata[#1,#2]#3% + {\doifelse{#1}{0} + {\twopassdatafoundfalse} + {\twopassdatafoundtrue + \edef\twopassdata{#1}}} + +\def\getfirsttwopassdata#1% + {\edef\!!stringa{\getvalue{#1:\s!list}}% + \expandafter\dogetfirsttwopassdata\expandafter[\!!stringa]{#1}} + +\def\getlasttwopassdata#1% + {\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% + {\getfromcommacommand[\getvalue{#1:\s!list}][#2]% + \doifelsenothing{\commalistelement} + {\twopassdatafoundfalse} + {\twopassdatafoundtrue + \let\twopassdata=\commalistelement}} + +% Maten +% +% De onderstaande instellingen worden gebruikt voor het +% vastleggen van de zetspiegel en marges. + +\voffset=0pt % setting this to -1in let's go metapost crazy +\hoffset=0pt % setting this to -1in let's go metapost crazy + +\newdimen\papierhoogte +\newdimen\papierbreedte + +\newdimen\printpapierhoogte +\newdimen\printpapierbreedte + +\newdimen\zethoogte +\newdimen\zetbreedte + +\newdimen\teksthoogte +\newdimen\tekstbreedte + +\newdimen\kopwit \kopwit=2cm +\newdimen\rugwit \rugwit=2cm + +\newdimen\hoofdhoogte \hoofdhoogte=2cm +\newdimen\voethoogte \voethoogte=2cm + +%\newdimen\kopkopwit \kopkopwit=0cm + +\newdimen\kopoffset \kopoffset=\!!zeropoint +\newdimen\rugoffset \rugoffset=\!!zeropoint + +\newdimen\linkermargebreedte \linkermargebreedte=3cm +\newdimen\rechtermargebreedte \rechtermargebreedte=\linkermargebreedte + +\newdimen\linkerrandbreedte \linkerrandbreedte=3cm +\newdimen\rechterrandbreedte \rechterrandbreedte=\linkerrandbreedte + +\newdimen\bovenhoogte \bovenhoogte=1cm +\newdimen\onderhoogte \onderhoogte=\bovenhoogte + +\def\margeafstand% + {\@@lymargeafstand} + +\def\randafstand% + {\@@lyrandafstand} + +\def\margebreedte% + {\@@lymarge} + +\def\randbreedte% + {\@@lyrand} + +\def\linkerrandafstand% + {\ifdim\!!zeropoint<\linkerrandbreedte + \@@lylinkerrandafstand + \else + \!!zeropoint + \fi} + +\def\rechterrandafstand% + {\ifdim\!!zeropoint<\rechterrandbreedte + \@@lyrechterrandafstand + \else + \!!zeropoint + \fi} + +\def\linkermargeafstand% + {\ifdim\!!zeropoint<\linkermargebreedte + \@@lylinkermargeafstand + \else + \!!zeropoint + \fi} + +\def\rechtermargeafstand% + {\ifdim\!!zeropoint<\rechtermargebreedte + \@@lyrechtermargeafstand + \else + \!!zeropoint + \fi} + +\def\bovenafstand% + {\ifdim\!!zeropoint<\bovenhoogte + \@@lybovenafstand + \else + \!!zeropoint + \fi} + +\def\hoofdafstand% + {\ifdim\!!zeropoint<\hoofdhoogte + \@@lyhoofdafstand + \else + \!!zeropoint + \fi} + +\def\voetafstand% + {\ifdim\!!zeropoint<\voethoogte + \@@lyvoetafstand + \else + \!!zeropoint + \fi} + +\def\onderafstand% + {\ifdim\!!zeropoint<\onderhoogte + \@@lyonderafstand + \else + \!!zeropoint + \fi} + +\newif\ifdubbelzijdig +\dubbelzijdigfalse + +\newif\ifenkelzijdig +\enkelzijdigtrue + +\def\doifsometextlineelse#1#2#3% ! omgekeerd ! + {\doifinsetelse{\getvalue{\??tk#1\v!tekst\c!status}}{\v!geen,\v!hoog} + {#3}{#2}} + +\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} + {}% + \doifsometextlineelse{\v!voet} + {\redoglobal\advance\teksthoogte by -\voethoogte + \redoglobal\advance\teksthoogte by -\voetafstand} + {}% + \resetglobal + \setvsize} + +\def\calculatereducedvsizes% + {\teksthoogte=\zethoogte + \doifsometextlineelse{\v!hoofd} + {\advance\teksthoogte by -\hoofdhoogte + \advance\teksthoogte by -\hoofdafstand} + {\hoofdhoogte=\!!zeropoint}% + \doifsometextlineelse{\v!voet} + {\advance\teksthoogte by -\voethoogte + \advance\teksthoogte by -\voetafstand} + {\voethoogte=\!!zeropoint}} + +\def\calculatehsizes% + {\tekstbreedte=\zetbreedte + \sethsize} + +\def\sethsize% + {\global\hsize=\tekstbreedte} + +\def\setvsize% + {\ifdim\vsize=\teksthoogte + \else + \bgroup + \dimen0=-\vsize + \advance\dimen0 by \teksthoogte + \global\advance\vsize by \dimen0 + \ifdim\pagegoal<\maxdimen + \advance\dimen0 by \pagegoal + \global\pagegoal=\dimen0 + \fi + \egroup + \fi} + +% Algemeen +% +% De Pragma-macros zijn samengesteld met behulp van de +% commandos van PlainTeX- en enkele TugBoat routines. +% +% Voor de volledigheid zijn in de definitie steeds de +% {}-haakjes vermeld. Deze haakjes zijn niet altijd +% nodig, Als bijvoorbeeld een paragraaf bewerkt wordt, +% kunnen ze achterwege blijven. +% +% Instellingen worden opgegeven tussen []-haakjes, +% meestal direct na het commando. Instellingen mogen +% soms achterwege blijven. +% +% 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. +% +% \doifonevenpaginaelse{then-commando}{else-commando} + +% NB \userpageno vervangen door \realpageno + +\def\doifonevenpaginaelse#1#2% + {\ifodd\realpageno#1\else#2\fi} + +\def\doifbothsidesoverruled#1\orsideone#2\orsidetwo#3\od% + {\ifdubbelzijdig + \ifodd\realpageno#2\relax\else#3\relax\fi + \else + #1\relax + \fi} + +\def\doifbothsides#1\orsideone#2\orsidetwo#3\od% + {\ifdubbelzijdig + \ifenkelzijdig + #1\relax + \else + \ifodd\realpageno#2\relax\else#3\relax\fi + \fi + \else + #1\relax + \fi} + +\def\dostartglobaldefs#1#2% + {\edef\!!stringa{\the\globaldefs}% + \ifnum\globaldefs#10 + \globaldefs=-\globaldefs + \fi + \advance\globaldefs by #21 + \setevalue{@gd@\the\globaldefs}{\!!stringa}} + +\def\dostopglobaldefs% + {\doifdefinedelse{@gd@\the\globaldefs} + {\globaldefs=\getvalue{@gd@\the\globaldefs}\relax} + {\globaldefs=0\relax}} + +\def\startlocal {\dostartglobaldefs>-} +\def\stoplocal {\dostopglobaldefs} +\def\startglobal {\dostartglobaldefs<+} +\def\stopglobal {\dostopglobaldefs} + +%I n=Zetspiegel +%I c=\stellayoutin,\definieerpapierformaat,\stelpapierformaatin +%I c=\paslayoutaan +%I +%I De zetspiegel is het door de tekst gevormde vlak. +%I Hiertoe behoren ¢¢k de hoofd- en voetmarge. De zetspiegel +%I wordt ingesteld met: +%I +%I \stellayoutin[breedte=,hoogte=,rugwit=,kopwit=] +%I +%I Er dienen maten te worden ingevuld, waarbij de eenheid +%I direkt achter het getal staat: 10pt, 100mm, 5cm, 3.5in. +%I +%I De parameters hebben de volgende betekenis: +%I +%I breedte breedte van het tekstvlak, inclusief marges +%I hoogte hoogte van het tekstvlak, inclusief marges +%I rugwit witruimte aan de binnenzijde, zonder marge +%I kopwit witruimte aan de bovenzijde, zonder marge +%P +%I Rond de zetspiegel vinden we marges, randen, het hoofd en +%I de voet. Ook deze worden ingesteld met: +%I +%I \stellayoutin[breedte=,hoogte=,rugwit=,kopwit=] +%I +%I hoofd hoogte van de bovenmarge binnen de zetspiegel +%I voet hoogte van de ondermarge binnen de zetspiegel +%I marge breedte van de marge naast de zetspiegel +%I +%I en +%I +%I rand breedte van de rand naast de marge +%I boven hoogte van de rand boven het hoofd +%I onder hoogte van de rand onder de voet +%I +%I Alleen het hoofd en de voet hangen dus samen met de +%I zetspiegel. +%P +%I Eventueel kunnen de linker- en rechtermarge en apart +%I worden ingesteld: +%I +%I \stellayoutin[linkermarge=,rechtermarge=] +%I +%I Het zelfde geldt voor de randen. In dat geval wordt bij +%I dubbelzijdig zetten gespiegeld. Oppassen dus! +%I +%I De afstanden tussen marges, randen enz. kunnen worden +%I ingesteld met: +%I +%I bovenafstand, onderafstand +%I hoofdafstand,voetafstand +%I linkermargeafstand,rechtermargeafstand, +%I linkerrandafstand,rechterrandafstand +%P +%I De zetspiegel kan (tijdelijk) worden aangepast met het +%I commando: +%I +%I \paslayoutaan[hoogte=] +%I +%I Men dient een positieve (+) of negatieve (-) maat op te +%I geven. De zethoogte blijft gelijk, maar de teksthoogte +%I wordt aangepast ten koste van de voethoogte. Eventueel +%I kan 'max' worden opgegeven. +%I +%I Er kan een reeks aanpassingen worden opgegeven: +%I +%I \paslayoutaan[nr,nr,nr,...][hoogte=] +%I +%I Hierbij is staat nr voor het paginanummer, dat wil +%I zeggen: het volgnummer in de tekst. +%I +%I Bij voorlopige versies wordt onderaan de pagina de +%I aanpassing weergegeven. +%P +%I Beeldmerken en achtergronden worden uit oogpunt van +%I verwerkingssnelheid niet vaker berekend dan nodig. Mocht +%I om een of andere reden een beeldmerk of achtergrond niet +%I overeenkomen komen met de wensen, dan kan herberekenen +%I worden geforceerd met: +%I +%I \stellayoutin[reset] +%P +%I Het papierformaat is in te stellen met het commando +%I +%I \stelpapierformaatin[DIN-formaat] +%I +%I Mogelijke DIN-formaten zijn A4 tot en met A9. De +%I afmetingen van een A4 zijn: +%I +%I breedte : 21.0cm = 8.18in = 589pt +%I hoogte : 29.7cm = 11.58in = 834pt +%I +%I Optioneel kan men het printer papierformaat instellen door +%I een tweede argument mee te geven. Standaard wordt +%I uitgegaan van A4. +%I +%I \stelpapierformaatin[A5][A4] +%I +%P Men kan zelf een papierformaat definieren met +%I +%I \definieerpapierformaat [naam] [hoogte=,breedte=] +%I +%I waarbij de offset betrekking heeft op dubbelzijdig zetten. + +\def\dodefinieerpapierformaat[#1][#2]% + {\getparameters + [\??pp#1] % geen \c!schaal, scheelt hash ruimte + [\c!breedte=\@@ppbreedte,\c!hoogte=\@@pphoogte,#2]} + +\def\definieerpapierformaat% + {\dodoubleargument\dodefinieerpapierformaat} + +\definieerpapierformaat[][\c!breedte=210mm,\c!hoogte=297mm] + +\chardef\papermirror =0 +\chardef\printmirror =0 +\chardef\paperrotation =0 +\chardef\paperreverse =0 +\chardef\printrotation =0 +\chardef\printreverse =0 +\chardef\paperlandscape=0 +\chardef\printlandscape=0 + +\def\papierschaal{1} + +\newif\ifnegateprintbox + +\def\dostelpapierrichtingin#1#2#3#4#5% + {\global\chardef#2=0 + \global\chardef#5=0 + \gdef#3{0}% + \gdef#4{0}% + \global\negateprintboxfalse + \processallactionsinset + [#1] + [ \v!liggend=>\global\chardef#2=1, + \v!gespiegeld=>\global\chardef#5=1, + \v!geroteerd=>\gdef#3{90}\gdef#4{270}, + \v!negatief=>\global\negateprintboxtrue, + 90=>\gdef#3{90}\gdef#4{270}, + 180=>\gdef#3{180}\gdef#4{0}, + 270=>\gdef#3{270}\gdef#4{90}]} + +\def\dostelpapierformaatin[#1][#2]% + {\dostelpapierrichtingin{#1}\paperlandscape\paperrotation\paperreverse\papermirror + \dostelpapierrichtingin{#2}\printlandscape\printrotation\printreverse\printmirror + \def\docommando##1% + {\doifsomething{##1}{\doifdefined{\??pp##1\c!breedte} + {\gdef\papierformaat{##1}% + \global\papierbreedte=\getvalue{\??pp##1\c!breedte}% + \global\papierhoogte=\getvalue{\??pp##1\c!hoogte}}}}% + \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}}}}% + \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} + +\def\stelpapierformaatin% + {\dodoubleempty\dostelpapierformaatin} + +\def\checkforems[#1]% + {\def\docommando##1% + {\beforesplitstring##1\at em\to\asciia + \doifnot{\asciia}{##1} + {\aftersplitstring\asciia\at=\to\asciia + \doifsomething{\asciia} + {\showmessage{\m!systems}{10}{##1}}}}% + \processcommalist[#1]\docommando} + +\def\resetlayout% + {\global\linkermargebreedte=\@@lylinkermarge + \global\rechtermargebreedte=\@@lyrechtermarge + \global\linkerrandbreedte=\@@lylinkerrand + \global\rechterrandbreedte=\@@lyrechterrand + \global\hoofdhoogte=\@@lyhoofd + \global\voethoogte=\@@lyvoet + \global\onderhoogte=\@@lyonder + \global\bovenhoogte=\@@lyboven + \global\rugwit=\@@lyrugwit + \global\kopwit=\@@lykopwit + \doifelse{\@@lygrid}{\v!ja} + {\gridsnappingtrue} + {\gridsnappingfalse}% + \stelwitruimtein + \stelblankoin + \doifelse{\@@lybreedte}{\v!midden} + {\global\zetbreedte=\papierbreedte + \global\advance\zetbreedte by -2\rugwit} + {\doifelse{\@@lybreedte}{\v!passend} + {\global\zetbreedte=\papierbreedte + \global\advance\zetbreedte by -\rugwit + \scratchdimen=\rugwit + \advance\scratchdimen by -\linkerrandbreedte + \advance\scratchdimen by -\linkerrandafstand + \advance\scratchdimen by -\paginascheiding + \advance\scratchdimen by -\linkermargebreedte + \advance\scratchdimen by -\linkermargeafstand + \ifdim\scratchdimen<\!!zeropoint + \scratchdimen=\!!zeropoint + \fi + \global\advance\zetbreedte by -\rechtermargeafstand + \global\advance\zetbreedte by -\rechtermargebreedte + \global\advance\zetbreedte by -\paginascheiding + \global\advance\zetbreedte by -\rechterrandafstand + \global\advance\zetbreedte by -\rechterrandbreedte + \global\advance\zetbreedte by -\scratchdimen} + {\global\zetbreedte=\@@lybreedte}}% + \doifelse{\@@lyregels}{} + {\doifelse{\@@lyhoogte}{\v!midden} + {\global\zethoogte=\papierhoogte + \global\advance\zethoogte by -2\kopwit} + {\doifelse{\@@lyhoogte}{\v!passend} + {\global\zethoogte=\papierhoogte + \global\advance\zethoogte by -\kopwit + \scratchdimen=\kopwit + \advance\scratchdimen by -\bovenhoogte + \advance\scratchdimen by -\bovenafstand + \ifdim\scratchdimen<\!!zeropoint + \scratchdimen=\!!zeropoint + \fi + \global\advance\zethoogte by -\onderafstand + \global\advance\zethoogte by -\onderhoogte + \global\advance\zethoogte by -\scratchdimen} + {\global\zethoogte=\@@lyhoogte}}} + {\global\zethoogte=\@@lyregels\baselineskip + \global\advance\zethoogte by \hoofdhoogte + \global\advance\zethoogte by \voethoogte}% + \rugoffset=\@@lyrugoffset + \kopoffset=\@@lykopoffset + \calculatehsizes + \calculatevsizes + \global\newlogostrue + \global\newbackgroundtrue} + +\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 + \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!dubbelzijdig=>\doublesidedprinttrue, + \v!enkelzijdig=>\doublesidedprintfalse]} + +\def\complexstellayoutin[#1]% + {\ConvertToConstant\doifnot{#1}{\v!reset} + {\getparameters[\??ly][#1]% + \checkforems[#1]}% + \resetlayout + \presetcenterpagebox} + +\def\simplestellayoutin% + {\resetlayout + \presetcenterpagebox} + +\def\stellayoutin% + {\complexorsimpleempty{stellayoutin}} + +\let\@@zahoogte=\!!zeropoint + +\def\dopushpagedimensions% + {\xdef\oldteksthoogte{\the\teksthoogte}% + \xdef\oldvoethoogte{\the\voethoogte}% + \global\let\@@zahoogte=\@@zahoogte} + +\def\dopoppagedimensions% + {\global\teksthoogte=\oldteksthoogte + \global\voethoogte=\oldvoethoogte + \resetlayout + \global\let\pushpagedimensions=\dopushpagedimensions + \global\let\poppagedimensions=\relax} + +\let\poppagedimensions=\relax +\let\pushpagedimensions=\dopushpagedimensions + +% Elke \csname ... \endcsname wordt ook aangemaakt, dus ook +% in een test met \doifdefined. Bij veel bladzijden kan dit +% te veel macro's kosten. Vandaar de set \adaptedpages. Het +% kost tijd, maar scheelt macro's. + +\def\adaptedpages{} + +\def\adaptpagedimensions% + {\rawdoifinsetelse{\realfolio}{\adaptedpages} + {\getvalue{\??za\realfolio}% + \letvalue{\??za\realfolio}=\relax} + {}} + +\def\checkpagedimensions% + {\poppagedimensions + \adaptpagedimensions} + +\def\reportpagedimensions% + {\ifx\poppagedimensions\relax + \else + \spatie\@@zahoogte\spatie- + \fi + \realfolio} + +\def\dodopaslayoutaan[#1]% + {\getparameters[\??za][\c!hoogte=,\c!regels=,#1]% + \pushpagedimensions + \doifelsenothing{\@@zaregels} + {\showmessage{\m!layouts}{1}{\@@zahoogte,\realfolio}} + {\showmessage{\m!layouts}{1}{\@@zaregels\space\v!regels,\realfolio}% + \def\@@zahoogte{\@@zaregels\openlineheight}}% + \doifelse{\@@zahoogte}{\v!max} + {\balancedimensions{\teksthoogte}{\voethoogte}{\voethoogte}} + {\balancedimensions{\teksthoogte}{\voethoogte}{\@@zahoogte}}% + \ifdim\voethoogte<\!!zeropoint + \global\advance\teksthoogte by \voethoogte + \global\voethoogte=\!!zeropoint + \global\xdef\@@zahoogte{\@@lyvoet\spatie(\v!max)}% + \fi + \setvsize + \global\pagegoal=\vsize % nog corrigeren voor insertions ? + \global\newlogostrue + \global\newbackgroundtrue + \global\let\pushpagedimensions=\relax + \global\let\poppagedimensions=\dopoppagedimensions} + +\def\dopaslayoutaan[#1][#2]% + {\doifelsenothing{#2} + {\dodopaslayoutaan[#1]} + {\def\docommando##1% + {\addtocommalist{##1}\adaptedpages + \setgvalue{\??za##1}{\dodopaslayoutaan[#2]}}% + \processcommalist[#1]\docommando + \adaptpagedimensions}} + +\def\paslayoutaan% + {\dodoubleempty\dopaslayoutaan} + +%I n=Margeblokken +%I c=\startmargeblok,\stelmargeblokkenin +%I +%I voorlopig: +%I +%I \stelmargeblokkenin +%I [plaats=,breedte,letter=,uitlijnen=, +%I voor=,na=,links=,rechts=,boven=,onder=,tussen=] +%I +%I plaats = inmarge, links, rechts, midden +%I links, rechts, voor, na = rule +%I boven, onder, tussen = skip +%I status= +%I +%I \startmargeblok +%I \stopmargeblok + +\newif\ifmargeblokken + +\def\dostelmargeblokkenin[#1]% + {\getparameters[\??mb][#1]% + \doifelse{\@@mbstatus}{\v!start}% + {\showmessage{\m!layouts}{4}{}% + \margeblokkentrue + \let\somenextfloat=\dosomenextfloat + \let\startmargeblok=\dostartmargeblok + \let\stopmargeblok=\dostopmargeblok}% + {\showmessage{\m!layouts}{5}{}% + \margeblokkenfalse + \def\somenextfloat[##1]% + {\someelsefloat[##1,\v!hier]}% + \let\startmargeblok=\dontstartmargeblok + \let\stopmargeblok=\dontstopmargeblok}} + +\def\stelmargeblokkenin% + {\dosingleargument\dostelmargeblokkenin} + +\newbox\marginbox + +\def\dosomenextfloat[#1]% + {\global\setbox\marginbox=\vbox + {\hsize\@@mbbreedte + \unvbox\marginbox + \ifvoid\marginbox\else + \@@mbtussen + \fi + \box\floatbox\filbreak}% + \ifdim\ht\marginbox>\teksthoogte + \dosavefloatinfo + \else + \doinsertfloatinfo + \fi} + +\newbox\preparedmarginbox + +\def\reshapemargin% + {\beginofshapebox + \unvbox\preparedmarginbox + \endofshapebox + \reshapebox + {\box\shapebox}% + \setbox\preparedmarginbox=\vbox to \teksthoogte + {\@@mbboven + \flushshapebox + \@@mbonder}} + +\def\plaatsrechtermargeblok% + {\hskip\rechtermargebreedte} + +\def\plaatslinkermargeblok% + {\hskip\linkermargebreedte} + +\def\checkmargeblokken% + {\setbox\preparedmarginbox=\vbox + {\forgetall + \splittopskip\topskip + \ifvoid\marginbox\else + \ifdim\ht\marginbox>\teksthoogte + \vsplit\marginbox to \teksthoogte + \else + \unvbox\marginbox + \fi + \fi}% + \reshapemargin + \setbox\preparedmarginbox=\vbox + {\@@mbvoor\box\preparedmarginbox\@@mbna}% + \def\rightmarginbox% + {\def\plaatsrechtermargeblok% + {\setbox\preparedmarginbox=\hbox to \rechtermargebreedte + {\@@mblinks\box\preparedmarginbox\@@mbrechts}% + \vsmashbox\preparedmarginbox + \box\preparedmarginbox}}% + \def\leftmarginbox% + {\def\plaatslinkermargeblok% + {\setbox\preparedmarginbox=\hbox to \linkermargebreedte + {\@@mbrechts\box\preparedmarginbox\@@mblinks}% + \vsmashbox\preparedmarginbox + \box\preparedmarginbox}}% + \processaction + [\@@mbplaats] + [ \v!inmarge=>\doifbothsidesoverruled + \rightmarginbox + \orsideone + \rightmarginbox + \orsidetwo + \leftmarginbox + \od, + \v!midden=>\doifbothsidesoverruled + \rightmarginbox + \orsideone + \leftmarginbox + \orsidetwo + \rightmarginbox + \od, + \v!links=>\leftmarginbox, + \v!rechts=>\rightmarginbox, + \s!unknown=>\setbox\preparedmarginbox=\hbox{}]} + +\def\dostartmargeblok% % 2 maal \vbox ivm \unvbox elders + {\global\setbox\marginbox=\vtop\bgroup\vbox\bgroup + \hsize\@@mbbreedte + \ifvoid\marginbox\else + \unvbox\marginbox + \@@mbtussen + \fi + \steluitlijnenin[\@@mbuitlijnen]% + \dostartattributes{\??mb}{}% + \begstrut\ignorespaces} + +\def\dostopmargeblok% + {\unskip\endstrut + \dostopattributes + \egroup + \egroup} + +\def\dontstartmargeblok% + {\@@mbvoor + \bgroup + \dostartattributes{\??mb}{}} + +\def\dontstopmargeblok% + {\dostopattributes + \egroup + \@@mbna} + +%I n=Uitstellen +%I c=\startuitstellen +%I +%I Zetcommando's kunnen in een wachtrij worden gezet en na +%I een pagina worden uitgevoerd. Dit gebeurt met het commando: +%I +%I \startuitstellen +%I ... +%I \stopuitstellen +%I +%I Dit kan handig zijn bij bijvoorbeeld grote tussen te voegen +%I figuren, tabellen, formulieren enz. +%I +%I \startuitstellen +%I \plaatsfiguur[pagina][]{...}{...} +%I \stopuitstellen +%I +%I Er kunnen meerdere commando's in de wachtrij worden +%I geplaatst. +%P +%I Het mechanisme werkt nog niet vlekkeloos. Zo wordt +%I nog gerekend met waarden van de vorige pagina. Dit heeft +%I bijvoorbeeld als gevolg dat figuren kunnen worden +%I opgespaard. +%I +%I Het kan gebeuren dat een (te) groot figuur er voor zorgt +%I dat ook andere figuren worden verplaatst. De volgorde +%I blijft immers gehandhaafd. In dat geval kan zo'n groot +%I figuur worden verplaatst naar de eerstvolgende voor de +%I handliggende pagina: +%I +%I \startuitstellen +%I \plaatsfiguur[pagina][]{...}{...} +%I \pagina +%I \stopuitstellen + +\newcounter\nofpostponedblocks + +\def\douitstellen% + {\dorecurse{\nofpostponedblocks} + {\haalbuffer[buf-\recurselevel]}% + \doglobal\newcounter\nofpostponedblocks} + +\setvalue{\e!start\e!uitstellen}% + {\doglobal\increment\nofpostponedblocks + \showmessage{\m!layouts}{3}{\nofpostponedblocks}% + \startbuffer[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 + {\makecounter{\s!number#1}% + \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]% + \setcounter{\s!number#1}{\getvalue{\s!number#1\c!start}}} + +\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\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 + +% \firstsubpage : eerste \realpageno, voor interne doeleinden +% \prevsubpage : vorige \realpageno, voor interne doeleinden +% \nextsubpage : volgende \realpageno, voor interne doeleinden +% \lastsubpage : laatste \realpageno, voor interne doeleinden +% \nofsubpages : laatste subpage (in berekeningen) +% \subpageno : huidige subpage (in berekeningen) + +\newif\ifsubpaging +\newif\ifshowingsubpage + +\definieernummer + [\s!subpage] + +\stelnummerin + [\s!subpage] + [\c!wijze=\@@snwijze] + +\def\resetsubpaginanummer% + {\resetnummer[\s!subpage]% + \global\subpageno=\ruwenummer[\s!subpage]} + +\def\dostelsubpaginanummerin[#1]% + {\doifelse{#1}{\v!reset} + {\resetnummer[\s!subpage]} + {\getparameters[\??sn][#1]% + \processaction + [\@@snstatus] + [ \v!stop=>\ifsubpaging + \else + \subpagingfalse + \fi + \showingsubpagefalse, + \v!start=>\subpagingtrue + \showingsubpagetrue, + \v!geen=>\subpagingtrue + \showingsubpagefalse]}} + +\def\aantalsubpaginas% + {\ifshowingsubpage + \nofsubpages + \else + 0% + \fi} + +\def\subpaginanummer% + {\ifshowingsubpage + \the\subpageno + \else + 0% + \fi} + +\def\stelsubpaginanummerin% + {\dosingleargument\dostelsubpaginanummerin} + +\def\newnofsubpages {0} +\def\nofsubpages {0} +\def\firstsubpage {1} +\def\prevsubpage {1} +\def\nextsubpage {1} +\def\lastsubpage {1} + +\def\nextpage {1} +\def\prevpage {1} + +\definetwopasslist{\s!subpage} + +\def\savenofsubpages% + {\ifsubpaging + \showmessage{\m!layouts}{6}{\newnofsubpages,\the\subpageno}% + \immediatewriteutilitycommand% + {\twopassentry% + {\s!subpage}% + {\newnofsubpages}% + {\the\subpageno}}% + \fi} + +\def\setsubpagenumbers% + {\iftwopassdatafound + \bgroup + \xdef\nofsubpages{\twopassdata}% + \xdef\firstsubpage{\realfolio}% + \advance\realpageno by \nofsubpages + \advance\realpageno by -1 + \xdef\lastsubpage{\realfolio}% + \egroup + \else + \xdef\nofsubpages{0}% + \fi} + +\def\gotonextsubpage% + {\global\let\checksubpages=\relax + \ifsubpaging + \edef\oldsubpage{\the\subpageno}% + \verhoognummer[\s!subpage]% + \global\subpageno=\ruwenummer[\s!subpage]\relax + \ifnum\subpageno=1 + \gettwopassdata{\s!subpage}% + \setsubpagenumbers + \ifnum\oldsubpage>0 + \showmessage{\m!layouts}{6}{\newnofsubpages,\oldsubpage}% + \edef\next% + {\writeutilitycommand% + {\twopassentry% + {\s!subpage}% + {\newnofsubpages}% + {\oldsubpage}}}% + \next + \fi + \doglobal\increment\newnofsubpages\relax + \fi + \setglobalsystemreference\rt!page{\v!eerste\v!sub\v!pagina}\firstsubpage + \setglobalsystemreference\rt!page{\v!laatste\v!sub\v!pagina}\lastsubpage + \bgroup + \ifnum\realpageno=\firstsubpage\relax + \global\let\prevsubpage=\firstsubpage + \else + \xdef\prevsubpage{\realfolio}% + \doglobal\decrement\prevsubpage + \fi + \setglobalsystemreference\rt!page{\v!vorige\v!sub\v!pagina}\prevsubpage + \ifnum\realpageno=\lastsubpage\relax + \global\let\nextsubpage=\lastsubpage + \else + \xdef\nextsubpage{\realfolio}% + \doglobal\increment\nextsubpage + \fi + \setglobalsystemreference\rt!page{\v!volgende\v!sub\v!pagina}\nextsubpage + \egroup + \fi} + +\def\checksubpages% + {\getfromtwopassdata{\s!subpage}{1}% + \setsubpagenumbers + \global\let\checksubpages=\relax} + +% Omdat \gotonextrealpage gebruik maakt van de hulpfile, +% moet het initialiseren van \realpageno plaatsvinden in +% een later stadium, namelijk zodra referenties worden +% gebruikt (anders gaat het mis op nog niet gedefinieerde +% lijstcommando's e.d.). De eerst aanroep vindt dan ook +% plaats vlak nadat de hulpfile voor de eerste maal is +% ingelezen. + +\countdef\realpageno = 0 \realpageno = 1 +\countdef\userpageno = 1 \userpageno = 1 +\countdef\subpageno = 2 \subpageno = 0 % !! +\countdef\arrangeno = 3 \arrangeno = 0 % !! + +% we don't want conflicts when \pageno is used by other +% packages, like CWEB, so we redefine \pageno + +\newcount\pageno \pageno = 1 + +\def\setuserpageno#1% + {\global\userpageno=#1\relax + \global\pageno=\userpageno} + +\def\realfolio {\the\realpageno} +\def\folio {\the\userpageno} +\def\firstpage {1} +\def\lastpage {1} +\def\currentpage {\the\realpageno} + +\def\gotonextrealpage% + {\global\advance\realpageno by 1 + \ifnum\realpageno>\lastpage + \xdef\lastpage{\realfolio}% + \fi + \setglobalsystemreference\rt!page{\v!eerste\v!pagina}\firstpage + \setglobalsystemreference\rt!page{\v!laatste\v!pagina}\lastpage + \bgroup + \ifnum\realpageno>1 + \advance\realpageno by -1 + \xdef\prevpage{\realfolio}% +\setglobalsystemreference\rt!page{\v!achteruit}\prevpage + \else + \global\let\prevpage=\firstpage +\setglobalsystemreference\rt!page{\v!achteruit}\lastpage + \fi + \setglobalsystemreference\rt!page{\v!vorige\v!pagina}\realfolio + \egroup + \bgroup + \ifnum\realpageno<\lastpage\relax + \advance\realpageno by 1 + \xdef\nextpage{\realfolio}% + \setglobalsystemreference\rt!page{\v!pagina}\realfolio +\setglobalsystemreference\rt!page{\v!vooruit}\realfolio + \else + \global\let\nextpage=\lastpage + \setglobalsystemreference\rt!page{\v!pagina}\firstpage +\setglobalsystemreference\rt!page{\v!vooruit}\firstpage + \fi + \setglobalsystemreference\rt!page{\v!volgende\v!pagina}\realfolio + \egroup} + +\def\checkrealpage% + {\global\realpageno=0 + \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 + \immediatewriteutilitycommand{\realnumberofpages{\realfolio}}}% + +\def\totaalaantalpaginas% + {\lastpage} + +\def\myshipout#1% + {\voorpagina + \dontshowcomposition + \dosetuppaper{\papierformaat}{\the\papierbreedte}{\the\papierhoogte}% + \ifarrangingpages + \actualarrange + {\thisisrealpage{\realfolio}#1}% + \else + \actualshipout + {\thisisrealpage{\realfolio}#1}% + \fi + \gotonextrealpage + \napagina} + +\newbox\postponedcontent + +\def\flushatshipout% + {\dowithnextbox + {\global\setbox\postponedcontent=\hbox + {\box\postponedcontent\box\nextbox}% + \global\ht\postponedcontent=\!!zeropoint + \global\dp\postponedcontent=\!!zeropoint + \global\wd\postponedcontent=\!!zeropoint}% + \hbox} + +\def\actualshipout#1% + {\shipout\vbox + {\forgetall + \offinterlineskip + \mindermeldingen + \vskip-1in + \hskip-1in + \hbox + {\setbox0=\hbox{#1}% just in case there are objects there + \setbox\scratchbox=\hbox{\the\everyshipout}% + \smashbox\scratchbox + \box\scratchbox + \box\postponedcontent % evt ver naar links ! + \box0}}} + +\def\actualarrange#1% + {\setbox0=\hbox{\thisisrealpage{\realfolio}#1}% + \pusharrangedpage0 + \deadcycles=0} + +\def\goleftonpage% + {\hskip-\linkermargeafstand + \hskip-\linkermargebreedte + \hskip-\paginascheiding + \hskip-\linkerrandafstand + \hskip-\linkerrandbreedte} + +\def\doswapmargins% + {\let\doswapmargins=\relax % to prevent local swapping + \swapmacros\@@lylinkermargeafstand\@@lyrechtermargeafstand + \swapmacros\@@lylinkerrandafstand\@@lyrechterrandafstand + \swapdimens\linkermargebreedte\rechtermargebreedte + \swapdimens\linkerrandbreedte\rechterrandbreedte} + +\def\doifmarginswapelse#1#2% + {\doifbothsides#1\orsideone#1\orsidetwo#2\od} + +\def\swapmargins% + {\doifmarginswapelse{}{\doswapmargins}} + +% Output routines +% +% \dopagecontents#1#2 : tekst, floats en footnotes +% \dopagebody#1#2 : hoofd, \pagecontents, voet +% \dooutput : outputroutine +% +% \ifinpagebody + +\def\doejectpage#1% + {\bgroup % de \ifdim is nodig omdat + \par % anders een eventuele + \ifdim\pagetotal>\pagegoal\else % laatste regel boven de + %\normalvfill % baseline te staan terwijl + \normalvfil % baseline te staan terwijl + \fi % de vorige bladzijden op + #1% % de baseline staan + \egroup} + +% ^^ NOG NETTER MAKEN, TEGELIJK MET MULTI COLUMNS EN ACHTERGRONDEN! + +\def\ejectpage% + {\doejectpage\eject} + +\def\superejectpage% + {\doejectpage\supereject} + +\def\ejectinsert% + {\flushfootnotes + \bgroup + \noftopfloats=\!!thousand + \doflushfloats + \egroup} + +% 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 + +\doifundefined{pushcolor} {\def\pushcolor{}} +\doifundefined{popcolor} {\def\popcolor{}} +\doifundefined{startcolorpage} {\def\startcolorpage{}} +\doifundefined{stopcolorpage} {\def\stopcolorpage{}} + +% 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}} + +% \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\relax + \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 + \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\dodummypageskip#1% + {\getvalue{\s!dummy\c!commando#1}} + +\setvalue{\s!dummy\c!commando\v!links}% + {\hskip\linkerrandbreedte} + +\setvalue{\s!dummy\c!commando\v!rechts}% + {\hskip\rechterrandbreedte} + +\setvalue{\s!dummy\c!commando\v!boven}% + {} % \vbox to \bovenhoogte{\vss}} + +\setvalue{\s!dummy\c!commando\v!onder}% + {} % \vbox to \onderhoogte{\vss}} + +\def\plaatslinkerrandblok {\dodummypageskip\v!links} +\def\plaatsrechterrandblok {\dodummypageskip\v!rechts} + +\newtoks\afterpage \newtoks\aftereverypage +\newtoks\beforepage \newtoks\beforeeverypage + +\newif\ifshowgrid + +\def\toongrid% + {\tracegridsnappingtrue + \showgridtrue} + +\def\doplaatstekstblok#1#2% + {\bgroup + \setbox0=\hbox to \zetbreedte + {\vbox to \teksthoogte + {\offinterlineskip + \boxmaxdepth\maxdepth + \dopagecontents#1#2}}% + \ht0=\teksthoogte + \wd0=\zetbreedte + \ifshowgrid + \setgridbox2\zetbreedte\teksthoogte + \hbox{\color[red]{\box2}\hskip-\zetbreedte\box0}% + \else + \box0 + \fi + \egroup} + +\def\getmainbox#1#2% + {\setbox0=\vbox + {\offinterlineskip % na \paginaletter ! + \calculatereducedvsizes + \calculatehsizes + \swapmargins + \vskip\hoofdhoogte + \vskip\hoofdafstand + \hbox + {\bgroup + \swapmargins + \goleftonpage + \plaatslinkerrandblok + \hskip\linkerrandafstand + \showpageseparation + \plaatslinkermargeblok + \hskip\linkermargeafstand + \egroup + \doplaatstekstblok#1#2% + \bgroup + \hskip\rechtermargeafstand + \plaatstestinfo + \plaatsrechtermargeblok + \showpageseparation + \hskip\rechterrandafstand + \plaatsrechterrandblok + \egroup}% + \vfill} + \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\offsetprintbox#1% + {\dimen0=\wd#1\dimen2=\ht#1\dimen4=\dp#1% + \setbox#1=\vbox + {\forgetall + \offinterlineskip + \vskip\kopoffset + \doifbothsides + \hskip\rugoffset + \orsideone + \hskip\rugoffset + \orsidetwo + \hskip-\rugoffset + \od + \box#1}% + \wd#1=\dimen0\ht#1=\dimen2\dp#1=\dimen4} + +\def\replicatebox#1#2#3% + {\setbox#1=\vbox + {\forgetall + \offinterlineskip + \dorecurse{#3}{\hbox{\dorecurse{#2}{\copy#1}}}}} + +\def\replicatepagebox#1% + {\ifnum\@@lynx>0 \ifnum\@@lyny>0 + \replicatebox{#1}{\@@lynx}{\@@lyny}% + \fi\fi} + +\def\rotatepagebodybox#1#2#3% + {\ifnum#2#3>0 + \setbox#1=\vbox + {\edef\somerotation% + {\ifdubbelzijdig\ifodd\realpageno#2\else#3\fi\else#2\fi}% + \dorotatebox\somerotation\hbox{\box#1}}% + \fi} + +\def\rotatepaperbox#1% + {\rotatepagebodybox{#1}\paperrotation\paperreverse} + +\def\rotateprintbox#1% + {\rotatepagebodybox{#1}\printrotation\printreverse} + +\def\mirrorpagebodybox#1#2% + {\ifcase#2\or + \setbox#1=\vbox + {\domirrorbox\vbox{\box#1}}% + \fi} + +\def\mirrorpaperbox#1% + {\mirrorpagebodybox{#1}\papermirror} + +\def\mirrorprintbox#1% + {\mirrorpagebodybox{#1}\printmirror} + +\def\scalepagebox#1% + {\ifdim\@@lyschaal pt=1pt \else + \setbox#1=\vbox + {\schaal[\c!sx=\@@lyschaal,\c!sy=\@@lyschaal]{\box#1}}% + \papierbreedte=\@@lyschaal\papierbreedte + \papierhoogte =\@@lyschaal\papierhoogte + \fi} + +\def\negateprintbox#1% + {\ifnegateprintbox + \negatecolorbox{#1}% + \fi} + +\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} + +\def\pagecutmarksymbol% + {\the\realpageno}% + +\def\addpagecutmarks#1% + {\doif{\@@lymarkering}{\v!aan} + {\let\cutmarksymbol=\pagecutmarksymbol + \makecutbox{#1}}} + +\def\addpagecolormarks#1% + {\doif{\@@lymarkering}{\v!kleur} + {\let\cutmarksymbol=\pagecutmarksymbol + \makecutbox{#1}% + \ifnum\horizontalcutmarks>1 \chardef\colormarkoffset=4 \fi + \ifnum\verticalcutmarks >1 \chardef\colormarkoffset=4 \fi + \colormarkbox{#1}}} + +\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}} + +\def\buildpagebody#1#2% + {\vbox + {\forgetall % igv problemen, check: \boxmaxdepth\maxdimen + \mindermeldingen + \setbox0=\vbox + {\doconvertfont{\@@lyletter}{}% + \offinterlineskip + \ifpagebodyornaments + \getbackgroundbox + \getlogobox + \gettextboxes + \fi + \getmainbox#1#2}% + \buildpagebox0 + \ifpagebodyornaments + \addpagebackground0 + \fi + \ifarrangingpages \else + \addpagecutmarks0 + \replicatepagebox0 + \scalepagebox0 + \mirrorpaperbox0 + \rotatepaperbox0 + \addpagecolormarks0 + \centerpagebox0 + \mirrorprintbox0 + \rotateprintbox0 + \offsetprintbox0 + \negateprintbox0 + \fi + \box0}} + +\def\finishpagebox#1% + {\ifarrangingpages + \addpagecutmarks#1% + \addpagecolormarks#1% + \centerpagebox#1% + \mirrorprintbox#1% + \rotateprintbox#1% + \offsetprintbox#1% + \negateprintbox#1% + \fi} + +% TBV testdoeleinden: + +\def\dotoonprint[#1][#2][#3]% + {\omlijnd + [\c!offset=\v!overlay, + \c!strut=\v!nee] + {\forgetall + \mindermeldingen + \globaldefs=-1 + \dimen0=\pagegoal + \definieerpapierformaat[X][\c!breedte=4em, \c!hoogte=6em]% + \definieerpapierformaat[Y][\c!breedte=12em,\c!hoogte=14em]% + \stelpapierformaatin[#1,X][#2,Y]% + \stellayoutin[#3]% + \setbox0=\vbox + {\omlijnd + [\c!offset=\v!overlay,\c!strut=\v!nee, + \c!breedte=\papierbreedte,\c!hoogte=\papierhoogte] + {\ss ABC\par DEF}}% + \dubbelzijdigfalse + \def\cutmarklength{.5em}% + \addpagecutmarks0% + \replicatepagebox0% + \scalepagebox0% + \mirrorpaperbox0% + \rotatepaperbox0% + \centerpagebox0% + \mirrorprintbox0% + \rotateprintbox0% + \offsetprintbox0% + \pagegoal=\dimen0 + \box0}} + +\def\toonprint% + {\dotripleempty\dotoonprint} + +% \switchnaarkorps[8pt] +% +% \startcombinatie[4*4] +% {\toonprint} {\strut} +% {\toonprint[][][plaats=midden]} {\type{plaats=midden}} +% {\toonprint[][][plaats=midden,markering=aan]} {\type{markering=aan}\break +% \type{plaats=midden}} +% {\toonprint[][][plaats=midden,markering=aan,nx=2]} {\type{markering=aan}\break +% \type{plaats=midden}\break +% \type{nx=2}} +% {\toonprint[][][plaats=links]} {\type{plaats=links}} +% {\toonprint[][][plaats=rechts]} {\type{plaats=rechts}} +% {\toonprint[][][plaats={links,onder}]} {\type{plaats={links,onder}}} +% {\toonprint[][][plaats={rechts,onder}]} {\type{plaats={rechts,onder}}} +% {\toonprint[][][nx=2,ny=1]} {\type{nx=2,ny=1}} +% {\toonprint[][][nx=1,ny=2]} {\type{nx=1,ny=2}} +% {\toonprint[][][nx=2,ny=2]} {\type{nx=2,ny=2}} +% {\toonprint[][][nx=2,ny=2,plaats=midden]} {\type{nx=2,ny=2}\break +% \type{plaats=midden}} +% {\toonprint[][][rugoffset=3pt]} {\type{rugoffset=.5cm}} +% {\toonprint[][][kopoffset=3pt]} {\type{kopoffset=.5cm}} +% {\toonprint[][][schaal=1.5]} {\type{schaal=1.5}} +% {\toonprint[][][schaal=0.8]} {\type{schaal=0.8}} +% \stopcombinatie +% +% \startcombinatie[3*4] +% {\toonprint[liggend][][plaats=midden]} {\type{liggend}} +% {\toonprint[][liggend][plaats=midden]} {\strut\break\type{liggend}} +% {\toonprint[liggend][liggend][plaats=midden]} {\type{liggend}\break\type{liggend}} +% {\toonprint[90][][plaats=midden]} {\type{90}} +% {\toonprint[][90][plaats=midden]} {\strut\break\type{90}} +% {\toonprint[90][90][plaats=midden]} {\type{90}\break\type{90}} +% {\toonprint[180][][plaats=midden]} {\type{180}} +% {\toonprint[][180][plaats=midden]} {\strut\break\type{180}} +% {\toonprint[180][180][plaats=midden]} {\type{180}\break\type{180}} +% {\toonprint[gespiegeld][][plaats=midden]} {\type{gespiegeld}} +% {\toonprint[][gespiegeld][plaats=midden]} {\strut\break\type{gespiegeld}} +% {\toonprint[gespiegeld][gespiegeld][plaats=midden]} {\type{gespiegeld}\break\type{gespiegeld}} +% \stopcombinatie + +\chardef\normalpagebox=255 + +\def\dopagebody#1#2% + {\getallmarks + \restoreglobalbodyfont + \startcolorpage + \gotonextsubpage + \dontshowboxes + \naastpagina + \checkreferences + \checkmargeblokken + \dotoks\beforeeverypage + \flushtoks\beforepage + \inpagebodytrue + \buildpagebody#1#2% + \flushtoks\afterpage + \dotoks\aftereverypage + \resetpagina + \updatelistreferences + \resetlayoutregels % mischien in shipout + \stopcolorpage} + +\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 + \setvsize} % this is needed for interacting components, like floats and multicolumns + +\def\setpagecounters% + {\setuserpageno{\ruwenummer[\s!page]}% + \doifelse{\@@snstatus}{\v!stop} + {\global\subpageno=0} + {\global\subpageno=\ruwenummer[\s!subpage]}} + +\def\dofinaloutput#1#2% + {\beforefinaloutput + \myshipout{\hbox{\dopagebody#1#2\setpagecounters}}% + \afterfinaloutput + \popcolor} % ... and here ... + +\def\donofinaloutput#1#2% + {\beforefinaloutput + \setpagecounters + \message{[-\the\realpageno]}% + \setbox0=\hbox + {\the\everyshipout + \dopagebody#1#2}% + \deadcycles=0 + \gotonextrealpage + \afterfinaloutput + \popcolor} % ... and here + +\let\checkpageversion=\relax + +\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} + +\output={\dooutput} + +%I n=Beeldmerken +%I c=\definieerbeeldmerk,\plaatsbeeldmerken +%I +%I In het hoofd of in de voet kan een logo worden gezet met +%I het commando: +%I +%I \plaatsbeeldmerken[naam] +%I +%I Plaatsen kan dan ook pas nadat een beeldmerk is gedefinieerd: +%I +%I \definieerbeeldmerk[naam][lokatie][plaats][commando=,status=] +%I +%I waarbij status 'start' of 'stop' kan zijn. In geval van +%I 'start' wordt op elke bladzijde het logo geplaatst. +%I +%I Mogelijke lokaties zijn 'boven', 'hoofd', 'voet' en 'onder' en +%I als plaats kan worden opgegeven 'linkerrand', 'linkermarge', +%I 'links', 'midden', 'rechts', 'rechtermarge' en 'rechterrand'. +%I +%I Logo's worden boven, onder of in de hoofd- of voetregel gezet, +%I zo hoog of laag mogelijk. Verdere positionering zal dus in +%I het commando moeten plaatsvinden! + +\newbox\leftlogos +\newbox\rightlogos + +\newif\ifnewlogos + +% \logostatus +% +% 0 = niet plaatsen > 0 +% 1 = direkt plaatsen > 1 +% 2 = berekenen en plaatsen > 1 +% 3 = een pagina berekenen en plaatsen > 2 + +\def\logostatus{0} + +\def\gedefinieerdebeeldmerken{} +\def\teplaatsenbeeldmerken{} + +\def\dodefinieerbeeldmerk[#1][#2][#3][#4]% + {\addtocommalist{#1}\gedefinieerdebeeldmerken + \setvalue{\??lo#2#3}{#1}% + \getparameters[\??lo#2#3][#4]% + \gdef\logostatus{2}} + +\def\definieerbeeldmerk% + {\doquadrupleargument\dodefinieerbeeldmerk} + +\def\complexplaatsbeeldmerken[#1]% + {\xdef\teplaatsenbeeldmerken{#1}% + \gdef\logostatus{3}} + +\def\simpleplaatsbeeldmerken% + {\global\let\teplaatsenbeeldmerken=\gedefinieerdebeeldmerken + \gdef\logostatus{3}} + +\definecomplexorsimple\plaatsbeeldmerken + +\def\doplaatsbeeldmerken#1#2% + {\bgroup + \setbox0=\vbox + {\hbox + {\ifnum\logostatus=3 + \def\docommando##1% + {\ExpandBothAfter\doifinset{\getvalue{\??lo#1##1}}{\teplaatsenbeeldmerken} + {#2{\hbox{\getvalue{\??lo#1##1\c!commando}}}}}% + \else + \def\docommando##1% + {\doifvalue{\??lo#1##1\c!status}{\v!start} + {#2{\hbox{\getvalue{\??lo#1##1\c!commando}}}}}% + \fi + \def\dodocommando##1##2##3##4##5##6% + {\hskip\linkerrandafstand + \hskip\pageseparation + \hbox to \linkermargebreedte{\docommando{##2}\hss}% + \hskip\linkermargeafstand + \hbox to \zetbreedte{\docommando{##3}\hss\docommando{##4}}% + \hskip\rechtermargeafstand + \hbox to \rechtermargebreedte{\hss\docommando{##5}}% + \hskip\pageseparation + \hskip\rechterrandafstand + \hbox to \rechterrandbreedte{\hss\docommando{##6}}}% + \normalbaselines + \hsmash + {\hbox to \zetbreedte{\hss\docommando\c!midden\hss}}% + \hsmash + {\doifbothsides + \hskip-\rugwit + \orsideone + \hskip-\rugwit + \orsidetwo + \hskip-\papierbreedte + \hskip+\rugwit + \hskip+\zetbreedte + \od + \hbox to \papierbreedte{\docommando\v!pagina\hss}}% + \swapmargins + \goleftonpage + \doifbothsidesoverruled + \dodocommando + {\v!linkerrand}{\v!linkermarge}{\v!links} + {\v!rechts}{\v!rechtermarge}{\v!rechterrand}% + \orsideone + \dodocommando + {\v!linkerrand}{\v!linkermarge}{\v!links} + {\v!rechts}{\v!rechtermarge}{\v!rechterrand}% + \orsidetwo + \dodocommando + {\v!rechterrand}{\v!rechtermarge}{\v!rechts} + {\v!links}{\v!linkermarge}{\v!linkerrand}% + \od}}% + \getboxheight\dimen0\of\box0\relax + \vskip-\dimen0 + \box0 + \egroup} + +\def\setlogobox#1#2% + {\global\setbox#1=\vbox to \papierhoogte + {\offinterlineskip + \mindermeldingen + \calculatereducedvsizes + #2\relax + \vskip-\kopwit + \doplaatsbeeldmerken\v!boven\vsmash + \vskip\kopwit + \doplaatsbeeldmerken\v!hoofd\vsmash + \vskip\hoofdhoogte + \vskip\hoofdafstand + \doplaatsbeeldmerken\v!tekst\vsmash % evt \vbox + \vskip\teksthoogte + \vskip\voetafstand + \vskip\voethoogte + \doplaatsbeeldmerken\v!voet\vbox + \vfilll + \doplaatsbeeldmerken\v!onder\vbox% + \vskip\kopwit} + \smashbox#1} + +\def\setlogoboxes% + {\showmessage{\m!layouts}{7}{}% + \setlogobox\leftlogos\relax + \ifdubbelzijdig + \setlogobox\rightlogos\doswapmargins + \fi} + +\def\getlogobox% + {\ifnum\logostatus>0 + \ifnum\logostatus=3 + \setlogoboxes + \gdef\logostatus{2}% + \else\ifnum\logostatus=2 + \setlogoboxes + \gdef\logostatus{1}% + \else\ifnewlogos + \gdef\logostatus{2}% + \setlogoboxes + \gdef\logostatus{1}% + \global\newlogosfalse + \fi\fi\fi + \doifmarginswapelse + {\copy\leftlogos} + {\copy\rightlogos}% + \fi} + +%I n=Spatiering +%I c=\stelspatieringin +%I c=\omlaag,\opelkaar,\spatie,\vastespaties +%I +%I De ruimte na interpunctie worden ingesteld met: +%I +%I \stelspatieringin[instelling] +%I +%I waarbij de volgende instellingen mogelijk zijn: +%I +%I ruim flexibele ruimte na interpunctie +%I opelkaar een spatie na interpunctie +%I +%I Bij een smalle layout levert de instelling 'ruim' minder +%I in de marge uitstekende (niet af te breken) woorden op. +%I +%P +%I Andere commando's zijn: +%I +%I \omlaag[afstand] een vaste afstand omlaag +%I \opelkaar ruimte tussen regels weghalen +%I +%I \spatie een (harde) spatie +%I \geenspatie geen vorige/volgende spatie +%I +%I \hfil \hfill \hfilll opvullen met horizontaal wit +%I \vfil \vfill \vfilll opvullen met vertikaal wit +%I +%I \strut karakter-box zonder breedte +%I +%I \vastespaties geeft ~ de breedte van een cijfer + +% \frenchspacing leidt soms tot afbreken tussen -, vandaar +% de variant \newfrenchspacing. + +\def\dofrenchspacing#1% + {\sfcode`\.#1 \sfcode`\,#1\relax + \sfcode`\?#1 \sfcode`\!#1\relax + \sfcode`\:#1 \sfcode`\;#1\relax} + +\def\frenchspacing% + {\dofrenchspacing{1000}} % \@m + +\def\newfrenchspacing% + {\dofrenchspacing{1050}} % \@ml + +\def\dostelspatieringin[#1]% + {\processaction + [#1] + [\v!opelkaar=>\newfrenchspacing, + \v!ruim=>\nonfrenchspacing]} + +\def\stelspatieringin% + {\dosingleargument\dostelspatieringin} + +\def\space% + { } + +\def\spatie% kan tzt vervallen, eerst overal in zetten + { } + +\def\hardespatie% + {~} + +\bgroup +\catcode`\~=\@@active % eigenlijk is ~ al actief +\gdef\fixedspaces% % in Plain \TeX, maar we weten + {\catcode`\~=\@@active % nooit wat er inmiddels is + \def~{\hskip.5em}} % gebeurd, vandaar. +\egroup + +\def\nospace% + {\unskip\ignorespaces} + +\def\geenspatie% % kan tzt vervallen, eerst overal in zetten + {\unskip\ignorespaces} + +\def\geenspaties{\geenspaties} % kan weg + +\def\opelkaar% + {\nointerlineskip} + +\def\omlaag[#1]% + {\nointerlineskip% + \vskip#1 } + +%I n=Witruimte +%I c=\stelwitruimtein,\witruimte,\geenwitruimte +%I c=\startopelkaar,\startvanelkaar +%I c=\startregelcorrectie,\corrigeerwitruimte +%I +%I De afstand tussen paragrafen is in te stellen met: +%I +%I \stelwitruimtein[maat] +%I +%I In te vullen op de plaats van 'maat' (12pt, 1cm) of een +%I van de aanduidingen klein, middel of groot. Als niets +%I wordt meegegeven, dus alleen \stelwitruimtein, dan +%I wordt de ingestelde witruimte aangepast aan het formaat +%I letter. +%I +%I Voor elke lege regel in de ASCII-file voegt TEX de +%I ingestelde witruimte tussen. +%I +%I Het commando \witruimte dwingt witruimte af en het +%I commando \geenwitruimte maakt witruimte ongedaan. +%I +%I Behalve met de hier beschreven witruimte-commando's is de +%I witruimte tussen paragrafen te be‹nvloeden met behulp van +%I de elders beschreven blanko-commando's. +%P +%I Een stuk tekst kan zonder witruimte worden gezet door het +%I tussen de volgende commando's op te nemen: +%I +%I \startopelkaar +%I \stopopelkaar +%I +%I Waarbij een optioneel argument [blanko] mogelijk is. De +%I tegenhanger hiervan is: +%I +%I \startvanelkaar +%I \stopvanelkaar +%P +%I TeX handelt de interlinie van een (omlijnde) box of een +%I rule anders af dan van een regel tekst. In dergelijke +%I gevallen kan de volgende constructie worden gebruikt: +%I +%I \startregelcorrectie +%I \omlijnd{tekst} +%I \stopregelcorrectie + +\newskip\tussenwit +\tussenwit=\!!zeropoint + +\def\blankokleinmaat% + {\smallskipamount} + +\def\blankomiddelmaat% + {\medskipamount} + +\def\blankogrootmaat% + {\bigskipamount} + +\def\currentwitruimte% + {\!!zeropoint} + +\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 + +\def\dodostelwitruimtein[#1]% + {\witruimteflexibeltrue + \processallactionsinset + [#1] + [\v!herstel=>, + \v!vast=>\witruimteflexibelfalse, + \v!flexibel=>\witruimteflexibeltrue, + \v!regel=>\tussenwit=\baselineskip, + \s!default=>\doifnot{\currentwitruimte}{\v!geen} + {\stelwitruimteopnieuwin}, + \s!unknown=>\@EA\assigndimension\@EA{\commalistelement} % \@EA is nodig + {\tussenwit}{\blankokleinmaat} % om loops af + {\blankomiddelmaat}{\blankogrootmaat}]% % te vangen + \edef\currentwitruimte% + {\ifdim\tussenwit=\!!zeropoint + \v!geen + \else + \ifgridsnapping\the\baselineskip\else\the\tussenwit\fi + \fi}% + \ifgridsnapping + \witruimteflexibelfalse + \tussenwit=1\tussenwit + \ifdim\tussenwit>\!!zeropoint + \tussenwit=\baselineskip + \fi + \else + \ifwitruimteflexibel \else \tussenwit=1\tussenwit \fi + \fi + \parskip=\tussenwit} + +\def\dostelwitruimtein[#1]% + {\expanded{\dodostelwitruimtein[#1]}} + +\def\stelwitruimtein% + {\dosingleempty\dostelwitruimtein} + +\def\geenwitruimte% + {\ifdim\parskip>\!!zeropoint\relax + \ifdim\lastskip=-\parskip + \else + \vskip-\parskip + \fi + \fi} + +% deze variant is nodig binnen \startopelkaar +% steeds testen: +% +% \hoofdstuk{..} +% \plaatslijst[..] +% \hoofdstuk{..} +% \input tufte +% +% met/zonder witruimte + +\def\witruimte% + {\par + \ifdim\parskip>\!!zeropoint\relax + %\ifdim\lastskip>\parskip \else + % \removelastskip interferes with blanko blokkeer en klein + \vskip\parskip + %\fi + \fi} + + +\def\nonoblanko[#1]% + {\par} + +\def\noblanko% + {\dosingleempty\nonoblanko} + +% De onderstaande macro handelt ook de situatie dat er geen +% tekst tussen \start ... \stop is geplaatst. Daartoe wordt de +% laatste skip over de lege tekst heen gehaald. Dit komt goed +% van pas bij het plaatsen van (mogelijk lege) lijsten. + +\newif\ifopelkaar + +\def\noparskipsignal {0.00001pt} +\def\lastdoneparskip {0pt} + +\def\startopelkaar% + {\dosingleempty\dostartopelkaar} + +\def\dostartopelkaar[#1]% nesting afvangen + {\par + \ifvmode + \edef\lastdoneparskip{\the\lastskip}% +\edef\lastdoneprevdepth{\the\prevdepth}% zeer recent toegevoegd + \ifdim\prevdepth=-1000pt % toegevoegd omdat binnen + \else % een vbox een extra skip + \witruimte % ongewenst is; dit kan + \vskip\noparskipsignal % waarschijnlijk ook in + \fi % blanko blokkeer + \bgroup + \doifelse{#1}{\v!blanko} + {\opelkaarfalse} + {\opelkaartrue}% + \blanko[\v!blokkeer]% + \stelwitruimtein[\v!geen] + \fi} + +\def\stopopelkaar% + {\par +\ifvmode + \egroup + \ifdim\lastskip=\noparskipsignal\relax + \removelastskip + \geenwitruimte + \vskip-\lastdoneparskip + \vskip+\lastdoneparskip +\prevdepth-\lastdoneprevdepth % zeer recent toegevoegd + \fi +\fi} + +\def\startvanelkaar% + {\blanko + \leavevmode + \bgroup} + +\def\stopvanelkaar% + {\egroup + \blanko} + +% De onderstaande macro's moeten nog eens nader worden uitgewerkt. +% Ze spelen een rol bij de spatiering rond omkaderde teksten +% en/of boxen zonder diepte. + +\def\toonregelcorrectie {\showbaselinecorrection} +\def\regelcorrectie {\baselinecorrection} +%\def\startregelcorrectie {\startbaselinecorrection} +%\def\stopregelcorrectie {\stopbaselinecorrection} + +\definecomplexorsimpleempty\startregelcorrectie + +% \prevdepth crosses pageboundaries! + +\let\dorondomregelcorrectie=\relax + +\def\complexstartregelcorrectie[#1]% + {\bgroup + \processaction + [#1] + [ \v!blanko=>\let\dorondomregelcorrectie=\blanko, + \s!default=>\let\dorondomregelcorrectie=\relax, + \s!unknown=>{\def\dorondomregelcorrectie{\blanko[#1]}}]% + \dorondomregelcorrectie + \startbaselinecorrection + \offbaselinecorrection} + +\def\stopregelcorrectie% + {\stopbaselinecorrection + \dorondomregelcorrectie + \egroup} + +\def\corrigeerwitruimte% + {\dowithnextbox + {\startbaselinecorrection + \box\nextbox + \stopbaselinecorrection}% + \vbox} + +%I n=Regelafstand +%I c=\stelinterliniein +%I +%I De regelafstand is in te stellen met het commando: +%I +%I \stelinterliniein[factor] +%I +%I Invulmogelijkheden voor 'factor' zijn: klein (1.00), +%I middel (1.25), groot (1.50) of een getal. OOk kan +%I aan of uit worden opgegeven. +%I +%I Als het commando zonder [factor] wordt gegeven, dan +%I worden de interlinie aangepast aan het formaat van het +%I actuele letterformaat. Een aan het formaat aangepaste +%I interlinie kan ook worden ingesteld met: +%I +%I \stelinterliniein[reset,factor] +%I +%I In z'n eenvoudigste vorm \stelinterliniein wordt de +%I interlinie aangepast aan het formaat letter. + +\def\complexstelinterliniein[#1]% \commalistelement ipv #1 + {\doifassignmentelse{#1} + {\getparameters[\??it][#1]% + \scratchdimen=0\@@ithoogte pt + \advance\scratchdimen by 0\@@itdiepte pt + \ifdim\scratchdimen>1pt + \showmessage{\m!layouts}{10}{\@@ithoogte,\@@itdiepte}% + \let\@@ithoogte=\strutheightfactor + \let\@@itdiepte=\strutdepthfactor + \else + \let\strutheightfactor=\@@ithoogte + \let\strutdepthfactor =\@@itdiepte + \fi + \let\normallineheight =\@@itregel + \let\topskipfactor =\@@itboven + \let\maxdepthfactor =\@@itonder + \setfontparameters\setstrut} + {\processallactionsinset % \regelwit = dummy ! + [#1] + [ \v!aan=>\oninterlineskip, + \v!uit=>\offinterlineskip, + \v!reset=>\setfontparameters, + \s!unknown=>\assignvalue{#1}{\regelwit}{1.00}{1.25}{1.50}% + \spacing{\regelwit}]}} + +\def\simplestelinterliniein% + {\setfontparameters} + +\definecomplexorsimple\stelinterliniein + +%I n=Blanko +%I c=\blanko,\geenblanko,\stelblankoin +%I c=\startregelcorrectie +%I +%I Behalve met de hier beschreven blanko-commando's is de +%I witruimte tussen paragrafen te be‹nvloeden met behulp van +%I de elders beschreven witruimte-commando's. +%I +%I Het commando +%I +%I \blanko[sprong] +%I +%I voegt witruimte tussen paragrafen toe. +%I +%I Mogelijke instellingen voor 'sprong' zijn: terug, klein, +%I middel, groot. Per blanko is elke combinatie van +%I instellingen toegestaan. Ook een veelvoud van een instelling +%I is mogelijk. Enkele voorbeelden: +%I +%I \blanko[terug,3*groot] +%I \blanko[klein,middel] +%P +%I Naast de genoemde instellingen zijn enkele bijzondere +%I instellingen mogelijk: +%I +%I wit tussenvoegen van \witruimte +%I geenwit terugspringen van \witruimte +%I blokkeer overslaan van de volgende \blanko +%I reset opheffen van \blanko[blokkeer] +%I forceer afdwingen van een blanko (bovenaan) +%I +%I Ook deze instellingen zijn in combinatie met andere te +%I gebruiken. Een voorbeeld: \blanko[forceer,wit,2*middel]. +%I +%I Het commando \blanko (zonder instelling) is gelijk aan +%I \blanko[groot]. +%I +%I Het commando \geenblanko maakt het commando \blanko +%I ongedaan. +%P +%I Met het commando's +%I +%I \stelblankoin[maat] +%I +%I is het mogelijk de spronggrootte in te stellen. De maat +%I kan worden opgegeven in getallen en eenheden (12pt, 1cm). +%I De standaard instellingen krijgt met met 'normaal', +%I regelafstanden met 'regel'. +%I +%I Het commando \stelblankoin (zonder argument) past de sprong +%I aan het formaat letter aan. +%P +%I Rond omlijnde tekst, of algemener: rond lijnen, wordt +%I geen witruimte gegenereerd. Wil men dit wel, dan dient men +%I de betreffende tekst te omringen met: +%I +%I \startregelcorrectie +%I \stopregelcorrectie + +% In earlier versions \type{\bigskipamount} was +% \type{\ht\strutbox} and the stretch was plus or minus +% \type{.4\dp\strutbox}. Don't ask me why. The most recent +% implementation is based on a user supplied distance, which +% is by default \type{.75\normalskipamount} where +% \type{\normalskipamount} equals the current baseline +% distance. + +\newif\ifblankoreset \blankoresetfalse +\newif\ifblankoblokkeer \blankoblokkeerfalse +\newif\ifblankogeenwit \blankogeenwitfalse +\newif\ifdoeblanko \doeblankofalse +\newif\ifblankoflexibel \blankoflexibeltrue +\newif\ifblankobuiten + +\newskip\blankoskip \blankoskip=\bigskipamount +\newskip\blankoskipamount + +\def\skipfactor {.75} +\def\skipgluefactor {.25} + +%\def\normalskipamount% +% {\openlineheight +% \ifblankoflexibel +% \!!plus\skipgluefactor\openlineheight +% \!!minus\skipgluefactor\openlineheight +% \fi +% \relax} + +\def\normalskipamount% + {\openlineheight + \ifgridsnapping \else \ifblankoflexibel + \!!plus\skipgluefactor\openlineheight + \!!minus\skipgluefactor\openlineheight + \fi \fi + \relax} + +\def\regelafstand{\normalskipamount} + +\def\deblankoskip{\skipfactor\regelafstand} + +\def\laatsteblankoskip% + {\blankoskip} + +\def\geenblanko% + {\removelastskip} + +\def\dosingleblanko#1% + {\doifelse{#1}{\v!regel} + {\blankoskipamount=\openlineheight} + {\ifgridsnapping + \assigndimension{#1}{\blankoskipamount}% + {.25\openlineheight}{.5\openlineheight}{\openlineheight}% + \else + \assigndimension{#1}{\blankoskipamount}% + {\smallskipamount}{\medskipamount}{\bigskipamount}% + \fi}% + \global\advance\blankoskip by \blankoskipamount} + +\def\doblanko#1% + {\processallactionsinset + [#1] + [ \v!groot=>\dosingleblanko\v!groot, % happens often + \v!buiten=>\ifvmode\ifinner\blankobuitentrue\fi\fi, + \v!reset=>\global\blankoresettrue, + \v!terug=>\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=>\endgraf\ifdim\prevdepth>0pt\else\line{}\kern-\lineheight\fi, + \v!regel=>\global\advance\blankoskip by \lineheight, + \s!unknown=>{\herhaalmetcommando[#1]\dosingleblanko}]} + +\def\oldprevdepth{\prevdepth}% +\def\newprevdepth{-1001pt} + +\def\mindimen{0.00002pt} + +\def\docomplexdoblanko[#1]% pas op \relax's zijn nodig ivm volgende \if + {\global\blankoresetfalse + \global\blankoblokkeerfalse + \global\blankogeenwitfalse + \global\blankoskip=\!!zeropoint\relax + \blankobuitenfalse + \processcommalist[#1]\doblanko + \ifblankobuiten + \else + \par + \ifvmode + \ifblankoblokkeer + \global\doeblankofalse + \edef\oldprevdepth{\the\prevdepth}% + \prevdepth=\newprevdepth + \else + \global\doeblankotrue + \fi + \ifblankoreset + \global\doeblankotrue + \ifdim\prevdepth=\newprevdepth + \prevdepth=\oldprevdepth + \fi + \fi + \ifdoeblanko + \ifdim\lastskip<\blankoskip\relax + % else when \blanko[2*groot] + \blanko[3*groot] with parskip + % equaling 1*groot, gives a groot=\parskip so adding a small + % value makes it distinguishable; can also be done at parskip + % setting time (better) + \global\advance\blankoskip by \mindimen\relax % = skip + % test this on 2* + 3* and parskip groot + \ifblankogeenwit + \global\advance\blankoskip by -\parskip + \else + \ifdim\lastskip=\parskip + \else % force this due to previous comment + \ifdim\parskip>\!!zeropoint\relax + \ifdim\blankoskip<\parskip\relax + \global\blankoskip=\!!zeropoint + \else + \global\advance\blankoskip by -\parskip + \fi + \fi + \fi + \fi + \ifdim\prevdepth=\newprevdepth + \else + \removelastskip + \vskip\blankoskip + \fi + \fi + \fi + \fi + \fi} + +\def\complexdoblanko[#1]% + {\flushfootnotes + \ifopelkaar + \ifinpagebody + \expanded{\docomplexdoblanko[#1]}% \expanded=nieuw + \else + \par + \fi + \else + \expanded{\docomplexdoblanko[#1]}% \expanded = nieuw + \fi} + +\def\currentblanko% + {\v!groot} + +\def\simpledoblanko% + {\doifelse{\currentwitruimte}{\v!geen} + {\blanko[\currentblanko]} + {\blanko[\currentwitruimte]}} + +\def\blanko% + {\complexorsimple{doblanko}} + +\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}% + +\def\complexstelblankoin[#1]% + {\ExpandFirstAfter\processallactionsinset + [#1] + [ \v!flexibel=>\blankoflexibeltrue, + \v!vast=>\blankoflexibelfalse]% + \ExpandFirstAfter\processallactionsinset + [#1] + [ \v!flexibel=>\dostelblankoin{\deblankoskip}, + \v!vast=>\dostelblankoin{\deblankoskip}, + \v!regel=>\edef\deblankoskip{\regelafstand}% + \dostelblankoin{\deblankoskip}% + \let\deblanko=\v!groot, + \v!groot=>\ifgridsnapping + \edef\deblankoskip{\regelafstand}% + \dostelblankoin{\deblankoskip}% + \fi + \def\currentblanko{\v!groot}% + \let\deblanko=\v!groot, + \v!middel=>\def\currentblanko{\v!middel}% + \let\deblanko=\v!middel, + \v!klein=>\def\currentblanko{\v!klein}% + \let\deblanko=\v!klein, + \v!normaal=>\dostelblankoin{\deblankoskip}% + \let\deblanko=\v!groot, + \v!standaard=>\edef\deblankoskip{\skipfactor\regelafstand}% + \dostelblankoin{\deblankoskip}% + \let\deblanko=\v!groot, + \s!default=>\dostelblankoin{\deblankoskip}% + \let\deblanko=\v!groot, + \s!unknown=>\let\deblankoskip=\commalistelement + \dostelblankoin{\deblankoskip}% + \let\deblanko=\v!groot]% + \stelwitruimtein} + +\def\stelblankoin% + {\complexorsimpleempty{stelblankoin}} + +%I n=Inspringen +%I c=\inspringen,\nietinspringen,\welinspringen +%I c=\stelinspringenin +%I +%I Het inspringen van de eerste regel van een paragraaf +%I wordt ingesteld met het commando: +%I +%I \inspringen[parameter] +%I +%I waarbij als parameter kan worden meegegeven: +%I +%I niet de volgende paragraaf niet inspringen +%I nooit de volgende paragrafen niet inspringen +%I altijd de volgende paragrafen inspringen +%I +%I De mate van inspringen wordt ingesteld met: +%I +%I \stelinspringenin[maat] +%I +%I waarbij maat staat voor een TeX-maat of het woord klein, +%I middel, groot of geen. + +\def\currentvoorwit{} + +\newdimen\voorwit + +\def\dostelinspringenin[#1]% + {\doifsomething{#1}{\def\currentvoorwit{#1}}% + \assigndimension{\currentvoorwit}{\voorwit}{1em}{1.5em}{2em}% + \parindent=\voorwit\relax} + +\def\stelinspringenin% + {\dosingleempty\dostelinspringenin} + +\def\doinspringen[#1]% + {\processaction + [#1] + [ \v!nee=>\parindent=\voorwit\relax\noindent, + \v!niet=>\parindent=\voorwit\relax\noindent, + \v!ja=>\parindent=\voorwit\relax, % geen \indent ! + \v!altijd=>\parindent=\voorwit\relax, % geen \indent ! + \v!nooit=>\parindent=\!!zeropoint\relax]} + +\def\inspringen% + {\dosingleargument\doinspringen} + +\def\nietinspringen{\inspringen[\v!nee]} +\def\welinspringen{\inspringen[\v!ja]} + +%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=Kapitalen +%I c=\kap,\Kap,\KAP,\Kaps,\Woord,\Woorden,\opgerekt +%I +%I Kapitalen kunnen in een kleiner letterformaat worden +%I weergegeven met de commando's: +%I +%I \kap{tekst} +%I \Kap{tekst} +%I \KAP{tekst} +%I +%I Bij het eerste commando wordt de hele tekst in kapitalen +%I gezet, bij het tweede alleen de eerste letter en bij het +%I laatste commando de letters die worden voorafgegaan door +%I \\, bijvoorbeeld \KAP{\\Commissie \\Ziezo}. +%I +%I Als de tekst van het laatste commando uit woorden bestaat, +%I kan ook het volgende commando worden gebruikt: +%I +%I \Kaps{tekst tekst tekst} +%I +%I In dat geval zijn geen \\ nodig. +%P +%I Binnen \kap kan \nokap worden gebruikt om een kleine +%I letter af te dwingen: \kap{AM\nokap{v}B}. +%I +%I Een eerste letter(s) van een of meer woorden kunnen worden +%I omgezet in een hoofdletter met het commando +%I +%I \Woord{woord} +%I \Woorden{woord woord woord ...} +%I +%I Een heel woord kan in hoofdletters worden omgezet met: +%I +%I \WOORD{tekst} +%P +%I Woorden kunnen worden uitgerekt over de actuele breedte +%I met: +%I +%I \opgerekt{tekst} +%I +%I bijvoorbeeld: +%I +%I \hbox to 20em{\opgerekt{abcdef\\ghijk}} +%I +%I met \\ of {} wordt een spatie afgedwongen. + +%T n=kap +%T m=kap +%T a=k +%T +%T \kap{?} + +%I n=Afbreken +%I c=\stelkoppeltekenin +%I +%I Met streepjes (-, --, ---) verbonden worden alleen afgebroken +%I op de plaats van het streepje. Wil men kunnen afbreken op +%I andere plaatsen, dan moet men de volgende constructie +%I gebruiken: +%I +%I ditiseen|---|heellangwoord|--|hoeweleigenlijkis|-|heteenzin +%I +%I Het is ook mogelijk geen teken mee te geven: +%I +%I ditiseen||heellangwoord +%I +%I In dat geval wordt het ingestelde teken tussengevoegd. Het +%I teken kan worden ingesteld met: +%I +%I \stelkoppeltekenin[teken=] +%I +%I Betekenisvolle waarden zijn: - en --, eventueel kan ~ +%I worden meegegeven. In dat geval wordt een \thinspace +%I geplaatst. +%P +%I Een |~| levert midden in de zin een spatie en aan het +%I eind van de zin een streepje, || is standaard equivalent +%I met |--|. +%I +%I Het koppelteken zelf kan worden opgeroepen met |=|, +%I bijvoorbeeld in alfa|=| en beta||deeltjes. Dit levert +%I dus alfa- en beta-deeltjes of alfa-- en beta--deeltjes. +%I Andere instellingen worden afgevangen. +%I +%I Ook ( en ) worden afgevangen. Hierbij wordt bij het +%I afbreken van voor(na) op de volgende regel (-na) +%I geplaatst. En wat te denken van |<| en |>|. + +% we use module supp-lan.tex + +\installdiscretionaries || \@@kpteken + +\newsignal\subsentencesignal +\newcounter\subsentencelevel +\def\subsentenceskip{.25em\relax} + +\def\stelkoppeltekenin% + {\dodoubleargument\getparameters[\??kp]} + +\def\beginofsubsentence% + {\ifdim\lastkern=\subsentencesignal + \unskip + \kern\subsentenceskip + \fi + \doglobal\increment\subsentencelevel + \ifnum\subsentencelevel=1 + \leaveoutervmode + \fi + \ifodd\subsentencelevel + \getvalue{\??la\currentlanguage\c!leftsentence}% + \else + \getvalue{\??la\currentlanguage\c!leftsubsentence}% + \fi + \ignorespaces} + +\def\beginofsubsentencespacing% + {\kern\subsentencesignal\ignorespaces} + +\def\endofsubsentence% + {\ifodd\subsentencelevel + \getvalue{\??la\currentlanguage\c!rightsentence}% + \else + \getvalue{\??la\currentlanguage\c!rightsubsentence}% + \fi + \doglobal\decrement\subsentencelevel + \unskip + \kern\subsentencesignal} + +\def\endofsubsentencespacing% + {%\ifdim\lastkern=\subsentencesignal \else + % \unskip + %\fi + \ifdim\lastkern=\subsentencesignal + \unskip + \hskip\subsentenceskip + \ignorespaces + \else + \unskip + \fi} + +% test |<|test |<|test|>| test|>| test \par +% test|<|test|<|test|>|test|>|test \par +% test |<||<|test|>||>| test \par + +\enableactivediscretionaries + +%I n=Positioneren +%I c=\startpositioneren,\stelpositionerenin +%I +%I Er kan (binnen zekere grenzen) gepositioneerd worden met +%I de commando's: +%I +%I \startpositioneren +%I \stoppositioneren +%I +%I met daartussen +%I +%I \positioneer(x,y){...} +%I +%I waarbij x en y alleen getallen worden ingevuld. Ongewenste +%I spaties moeten zonodig met worden voorkomen met een %-teken. +%P +%I Een en ander kan worden ingesteld met: +%I +%I \stelpositionerenin[eenheid=,factor=,schaal=,xstap=, +%I ystap=,xoffset=,yoffset=,offset=] +%I +%I Standaard is de eenheid cm en de factor 1. Mogelijke +%I stapaanduidingen zijn 'absoluut' en 'relatief'. Deze +%I instellingen kunnen \resetpositioneren worden hersteld. +%I +%I Als men negatieve coordinaten (of een negatieve offset) +%I gebruikt, dan kan het soms wenselijk zijn het nulpunt te +%I laten samenvallen met de linkerbovenhoek van de omringende +%I box. In dat geval kan met offset=nee instellen. De negatieve +%I posities vallen in dat geval buiten de box. + +% Het gebruik van \skip's spaart \dimen's. + +\newskip\xpositie +\newskip\ypositie + +\newskip\xafmeting +\newskip\yafmeting + +\newskip\xoffset +\newskip\yoffset + +\newbox\positiebox + +\def\startpositioneren% + {\bgroup + \xpositie=\!!zeropoint + \ypositie=\!!zeropoint + \xafmeting=\!!zeropoint + \yafmeting=\!!zeropoint + \xoffset=\!!zeropoint + \yoffset=\!!zeropoint + \hfuzz=30cm + \vfuzz=30cm + \setbox\positiebox=\hbox\bgroup} + +\def\stoppositioneren% + {\doifnot{\@@psoffset}{\v!ja} + {\global\xoffset=\!!zeropoint + \global\yoffset=\!!zeropoint}% + \global\advance\xafmeting by \xoffset + \global\advance\yafmeting by \yoffset + \egroup + \vbox to \yafmeting + {\vskip\yoffset + \hbox to \xafmeting + {\hskip\xoffset + \box\positiebox + \hfill}% + \vfill}% + \egroup} + +\def\resetpositioneren% + {\getparameters[\??ps] + [\c!eenheid=\s!cm, + \c!factor=1, + \c!xfactor=\@@psfactor, + \c!yfactor=\@@psfactor, + \c!schaal=1, + \c!xschaal=\@@psschaal, + \c!yschaal=\@@psschaal, + \c!xstap=\v!absoluut, + \c!ystap=\v!absoluut, + \c!xoffset=\!!zeropoint, + \c!yoffset=\!!zeropoint]} + +\resetpositioneren + +\def\stelpositionerenin% + {\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 + \ifdim##3<-##7\relax + \global##7=-##3\relax + \fi + \skip2=##5\relax + \advance\skip2 by ##3\relax + \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\dorooster[#1]% + {\bgroup + \getparameters[\??rt] + [\c!nx=10,\c!ny=10, + \c!dx=.5,\c!dy=.5, + \c!xstap=0,\c!ystap=0, + \c!eenheid=\s!cm, + \c!schaal=1, + \c!factor=1, + \c!offset=\v!ja, + #1]% + \startpositioneren + \dimen0=\@@rtdx\@@rteenheid + \dimen0=\@@rtschaal\dimen0 + \dimen0=\@@rtfactor\dimen0 + \multiply\dimen0 by \@@rtnx + \dimen2=\@@rtdy\@@rteenheid + \dimen2=\@@rtschaal\dimen2 + \dimen2=\@@rtfactor\dimen2 + \multiply\dimen2 by \@@rtny + \def\horline + {\vbox + {\hrule + \!!width \dimen0 + \!!height \lijndikte + \!!depth \!!zeropoint}}% + \def\verline% + {\vrule + \!!width \lijndikte + \!!height \dimen2 + \!!depth \!!zeropoint}% + \def\setlegend##1##2% + {\global\!!countc=0 + \dimen0=2em + \dimen2=##2\@@rteenheid + \dimen2=\@@rtschaal\dimen2 + \dimen2=\@@rtfactor\dimen2 + \divide\dimen0 by \dimen2 + \global\!!counte=\dimen0 + \ifnum\!!counte>50 + \global\!!counte=100 + \else\ifnum\!!counte>10 + \global\!!counte=50 + \else\ifnum\!!counte>5 + \global\!!counte=10 + \else\ifnum\!!counte>1 + \global\!!counte=5 + \else + \global\!!counte=1 + \fi\fi\fi\fi + \global\!!countd=0 + \def\legend% + {\ifnum\!!countd=0 + \vbox + {\hbox to 2em{\hss\the\!!countc\hss}}% + \global\!!countd=\!!counte + \fi + \global\advance\!!countd by -1 + \global\advance\!!countc by ##1}}% + \def\draw##1##2##3##4##5##6##7% + {\stelpositionerenin + [\c!xstap=\v!absoluut, + \c!ystap=\v!absoluut, + \c!eenheid=\@@rteenheid, + \c!schaal=\@@rtschaal, + \c!factor=\@@rtfactor, + \c!offset=\@@rtoffset, + \c!xoffset=##6, + \c!yoffset=##7]% + \positioneer(0,0){##1}% + \stelpositionerenin + [\c!xstap=\v!relatief, + \c!ystap=\v!relatief, + \c!schaal=\@@rtschaal, + \c!factor=\@@rtfactor, + \c!offset=\@@rtoffset, + \c!eenheid=\@@rteenheid]% + \dorecurse{##2}{\positioneer(##3,##4){##5}}}% + \draw{\verline}{\@@rtnx}{\@@rtdx}{0}{\verline}{\!!zeropoint}{\!!zeropoint}% + \draw{\horline}{\@@rtny}{0}{\@@rtdy}{\horline}{\!!zeropoint}{\!!zeropoint}% + \tfx + \doifnot{\@@rtxstap}{0} + {\setlegend{\@@rtxstap}{\@@rtdx}% + \draw{\legend}{\@@rtnx}{\@@rtdx}{0}{\legend}{-1em}{-1.5em}}% + \doifnot{\@@rtystap}{0} + {\setlegend{\@@rtystap}{\@@rtdy}% + \draw{\legend}{\@@rtny}{0}{\@@rtdy}{\legend}{-2em}{-.75ex}}% + \stoppositioneren + \egroup} + +\def\rooster% + {\dosingleempty\dorooster} + +%I n=Kolommen +%I c=\stelkolommenin,\startkolommen,\kolom +%I +%I Tekst kan in kolommen worden gezet. Het aantal kolommen +%I en het al dan niet opnemen van een vertikale lijn kan +%I worden ingesteld. +%I +%I \stelkolommenin[n=,lijn=,tolerantie=,afstand=, +%I balanceren=,uitlijnen=,hoogte=] +%I +%I Hierin staat n voor het aantal kolommen. Aan lijn +%I kan aan of uit worden toegekend. Aan voor en na kan +%I een commando worden toegekend, bijvoorbeeld ~~. +%I +%I Mogelijke waarden voor de tolerantie zijn: zeerstreng, +%I streng, soepel en zeersoepel. +%P +%I De in kolommen te zetten tekst moet worden opgenomen +%I tussen de commando's: +%I +%I \startkolommen +%I \stopkolommen +%I +%I Er wordt naar een nieuwe kolom gesprongen met: +%I +%I \kolom + +\newif\ifbinnenkolommen +\newif\if@@klbalanceren +\newif\if@@kluitlijnen + +\binnenkolommenfalse + +\def\stelkolommenin% + {\dodoubleargument\getparameters[\??kl]} + +\def\linebetweencolumns% + {\bgroup + \startcolorpage + \ifdim\@@klafstand>\!!zeropoint + \dimen0=\@@klafstand + \else + \dimen0=\linewidth + \fi + \advance\dimen0 by -\linewidth + \hskip.5\dimen0 + \vrule + \!!width\linewidth + \ifb@selinebottom\!!depth\strutdepth\fi + \hskip.5\dimen0\relax + \stopcolorpage + \egroup} + +\def\spacebetweencolumns% + {\hskip\@@klafstand} + +\presetlocalframed[\??kl] + +\def\backgroundfinishcolumnbox% + {\dimen0=\@@kloffset + \advance\dimen0 by -\@@kllijndikte + \localframed + [\??kl] + [\c!offset=\dimen0, + \c!strut=\v!nee, + \c!breedte=\v!passend, + \c!hoogte=\v!passend, + \c!uitlijnen=]} + +\def\backgroundsetcolumntextheight% + {\dimen0=-\@@kloffset + \multiply\dimen0 by 2 + \advance\dimen0 by \teksthoogte + \edef\columntextheight{\the\dimen0}} + +\def\backgroundsetcolumntextwidth% + {\dimen0=-\@@kloffset + \multiply\dimen0 by \nofcolumns + \multiply\dimen0 by 2 + \advance\dimen0 by \tekstbreedte + \edef\columntextwidth{\the\dimen0}} + +\def\complexstartkolommen[#1]% %% \startkolommen + {\bgroup + \let\stopkolommen=\egroup + \ifbinnenkolommen + \else + \stelkolommenin[#1]% + \ifnum\@@kln>1\relax + \witruimte + \begingroup + \doif{\@@kloptie}{\v!achtergrond} + {\let\finishcolumnbox = \backgroundfinishcolumnbox + \let\setcolumntextheight = \backgroundsetcolumntextheight + \let\setcolumntextwidth = \backgroundsetcolumntextwidth}% +% \doifelse{\@@kllijn}{\v!aan} +% {\let\betweencolumns=\linebetweencolumns} +% {\let\betweencolumns=\spacebetweencolumns}% + \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}% + \doifelse{\@@klbalanceren}{\v!ja} + {\balancecolumnstrue} + {\balancecolumnsfalse}% + \processaction % ook nog: laatsteuitlijnen + [\@@kluitlijnen] + [ \v!ja=>\stretchcolumnstrue + \inheritcolumnsfalse, + \v!nee=>\stretchcolumnsfalse + \inheritcolumnsfalse, + \v!tekst=>\stretchcolumnsfalse + \inheritcolumnstrue]% + \nofcolumns=\@@kln + \edef\fixedcolumnheight{\@@klhoogte}% + \steltolerantiein[\@@kltolerantie]% %% \startkolommen + \stelblankoin[\@@klblanko]% + \ifdim\tussenwit>\!!zeropoint + \stelwitruimtein[\@@klblanko]% + \fi + \def\stopkolommen% + {\endmulticolumns + \global\binnenkolommenfalse + \endgroup + \egroup}% + \global\binnenkolommentrue + \beginmulticolumns + \fi + \fi} + +\def\startkolommen% + {\complexorsimpleempty{startkolommen}} + +\def\kolom% + {\ifbinnenkolommen + \ejectcolumn + \fi} + +%I n=Kader +%I c=\toonkader,\tooninstellingen,\toonlayout +%I +%I Met behulp van de drie commando's: +%I +%I \toonkader +%I \tooninstellingen +%I +%I kan de zetspiegel zichtbaar worden gemaakt, of eventueel +%I met: +%I +%I \toonkader [rand,tekst,marge] +%I +%I Het commando: +%I +%I \toonlayout +%I +%I genereert enkele (linker en rechter) pagina's. + +\def\complextoonkader[#1]% + {\stelachtergrondenin + [\v!hoofd,\v!tekst,\v!voet] + [#1] + [\c!achtergrond=, + \c!kader=\v!aan, + \c!hoek=\v!recht, + \c!kaderoffset=\!!zeropoint, + \c!kaderdiepte=\!!zeropoint, + \c!kaderkleur=] + \let\pageseparation=\!!zeropoint} + +\def\simpletoonkader% + {\complextoonkader + [\v!linkerrand,\v!linkermarge, + \v!tekst, + \v!rechtermarge,\v!rechterrand]} + +\definecomplexorsimple\toonkader + +\def\tooninstellingA#1#2% + {\ifx#2\??ly + #1&\dimen0=\getvalue{#2#1}\PtToCm{\the\dimen0}&\dimen0=\getvalue{#2#1}\the\dimen0&\cr + \else + #1&\PtToCm{\the#2}&\the#2&\tttf\string#2\cr + \fi} + +\def\tooninstellingB#1#2#3% + {#1&#3&\tttf\string#3\cr} + +\def\tooninstellingen% % engels maken + {\noindent + \vbox + {\forgetall + \mindermeldingen + \switchnaarkorps[\v!klein] + \tabskip\!!zeropoint + \halign + {\strut##\quad\hss&##\quad\hss&##\quad\hss&##\hss\cr + \tooninstellingA{papierhoogte} \papierhoogte + \tooninstellingA{papierbreedte} \papierbreedte + \tooninstellingA{printpapierhoogte} \printpapierhoogte + \tooninstellingA{printpapierbreedte} \printpapierbreedte + \tooninstellingA{kopwit} \kopwit + \tooninstellingA{rugwit} \rugwit + \tooninstellingA{hoogte} \zethoogte + \tooninstellingA{breedte} \zetbreedte + \tooninstellingA{teksthoogte} \teksthoogte + \tooninstellingA{tekstbreedte} \tekstbreedte + \tooninstellingA{bovenafstand} \??ly + \tooninstellingA{hoofd} \hoofdhoogte + \tooninstellingA{hoofdafstand} \??ly + \tooninstellingA{boven} \bovenhoogte + \tooninstellingA{voetafstand} \??ly + \tooninstellingA{voet} \voethoogte + \tooninstellingA{onderafstand} \??ly + \tooninstellingA{onder} \onderhoogte + \tooninstellingA{linkerrand} \linkerrandbreedte + \tooninstellingA{linkerrandafstand} \??ly + \tooninstellingA{linkermarge} \linkermargebreedte + \tooninstellingA{linkermargeafstand} \??ly + \tooninstellingA{rechtermargeafstand}\??ly + \tooninstellingA{rechtermarge} \rechtermargebreedte + \tooninstellingA{rechterrandafstand} \??ly + \tooninstellingA{rechterrand} \rechterrandbreedte + \noalign{\blanko} + \tooninstellingB{korps} \the \globalbodyfontsize + \noalign{\blanko} + \tooninstellingB{regel} \relax \strutheightfactor + \tooninstellingB{hoogte} \relax \strutdepthfactor + \tooninstellingB{diepte} \relax \normallineheight + \tooninstellingB{boven} \relax \topskipfactor + \tooninstellingB{onder} \relax \maxdepthfactor}}} + +\def\toonlayout% + {\bgroup + \pagina + \toonkader + \stellayoutin[\c!markering=\v!aan] + \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\ifsomkolommen \somkolommenfalse +\newif\ifsubsom \subsomfalse +\newif\ifsymsom \symsomfalse +\newif\ifkopsom \kopsomfalse +\newif\ifsomintro \somintrofalse +\newif\ifsomautointro \somautointrofalse +\newif\ifpackeditems \packeditemsfalse +\newif\iffirstlist \firstlistfalse + +\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!marletter,\c!symletter,\c!kopletter, + \c!markleur,\c!symkleur,\c!kopkleur, + \c!kopvoor,\c!kopna,\c!voor,\c!tussen,\c!na, + \c!afsluiter,\c!plaatsafsluiter, + \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}]% + \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]% + {\processaction + [#2#3] + [ \v!opelkaar=>\packitems, + \v!intro=>\somintrotrue, + \v!autointro=>\somautointrotrue, + \v!ruim=>{\doassign[\??op#1][\c!factor=1]}, + #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!aansluitend=>{\getparameters[\??op#1] + [\c!kopvoor=,\c!kopna=, + \c!voor=,\c!tussen=,\c!na=]% + \packitems}, + \v!aanelkaar=>{\doassign[\??op#1][\c!factor=-1]}, + #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]}]} + {\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} + +\def\setitemmark#1% % maakt gebruik van \??ss en \??cv + {\doifdefinedelse{\??ss#1} % en pas op: resets \docommando + {\setxvalue{\??op\c!symbool\s!global\itemlevel}% + {#1}% + \setgvalue{\??op\c!symbool\s!local\itemlevel}% + {?}% + \def\listitem% + {\symbol[#1]}% + \def\docommando##1{}} + {\doifdefined{\??cv#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}% + \def\docommando##1{}}}} + +\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\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 + \doifelsevalue{\??op1\c!marge}{\v!standaard} + {\ifdim\voorwit=\!!zeropoint + \advance\leftskip by \@@sllinks + \else + \advance\leftskip by \voorwit + \fi} + {\advance\leftskip by \getvalue{\??op1\c!marge}}% + \fi + \doifinset{\v!kolommen}{#1}% + {\ifbinnenkolommen\else + \global\somkolommentrue + \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, + \c!hoogte=, + \c!lijn=\v!uit, + \c!balanceren=\v!ja, + \c!uitlijnen=\v!nee]% + \fi}% + \doifinsetelse{\v!intro}{#1} + {\somintrotrue} + {\somintrofalse}% + \doglobal\increment\noflists + \let\currentlist=\noflists + \newcounter\noflistelements + \kopsomfalse + \subsomfalse + \symsomfalse + \let\marsymbol=\relax + \let\somdestination=\empty + \def\symsymbol{}% + \def\som% + {\dosom}% + \def\but[##1]% + {\def\somdestination{##1}% + \dosom}% + \def\nop% + {\sym{\strut}\strut}% + \definecomplexorsimple\its + \setvalue{\v!mar}##1% + {\def\marsymbol% + {\llap + {\doattributes{\??op\itemlevel\v!mar}{##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\v!sym}{##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}}}}% + \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}% + {\edef\@@opsymbool{\getvalue{\??op\c!symbool\s!global\itemlevel}}% + \getvalue{\??op\v!verder\itemlevel}} + {\edef\@@opsymbool{\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 + \dolistreference + \endgroup + \ifsomkolommen + \global\somkolommenfalse + \stopkolommen + \getvalue{\??op\itemlevel\c!na}% + \else + \ifnum\itemlevel=1\relax + \dosomebreak\allowbreak % toegevoegd + \getvalue{\??op1\c!na}% + \fi + \fi + \endgroup + \doglobal\decrement(\itemlevel,\itemincrement)% + \egroup} + +\def\sombreak% + {\flushfootnotes\penalty-5\relax} % -10 + +\def\somnobreak% + {\flushfootnotes\penalty+5\relax} % \nobreak + +\def\dolistitem% + {\par + \ignorespaces + \increment\noflistelements + \ifnum\noflistelements=1\relax % als gevolg van nesting + \findtwopassdata{\s!list}{\noflists:}% % van wordt soms de volgorde + \fi % verstoord, vandaar \find + \ifsomkolommen\else + \iftwopassdatafound + \ifnum\twopassdata=3\relax + \ifnum\noflistelements>1\relax + \dosomebreak\somnobreak + \fi + \else\ifnum\twopassdata>3\relax + \ifnum\noflistelements=2\relax + \ifsomkolommen\else + \ifsomintro + \dosomebreak\nobreak + \else + \dosomebreak\somnobreak + \fi + \fi + \else\ifnum\twopassdata=\noflistelements\relax + \dosomebreak\somnobreak + \else\ifnum\noflistelements>2\relax + \dosomebreak\sombreak + \else + \ifsomintro\else\dosomebreak\sombreak\fi + \fi\fi\fi + \fi\fi + \fi + \fi + \noindent + \ifkopsom + \setbox8=\hbox{\doattributes{\??op\itemlevel\v!kop}{\listitem}}% + \else\ifsymsom + \setbox8=\hbox{\symsymbol}% + \else + \setbox8=\hbox{\listitem}% + \fi\fi + \doifsomething{\somdestination} + {\setbox8=\hbox{\naar{\copy8}[\somdestination]}}% + \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}}% + \kopsomfalse + \subsomfalse + \symsomfalse + \EveryPar{\ignorespaces}% + \ignorespaces} + +\def\complexdosom[#1]% + {\par + \ignorespaces + \doadvanceitem + \ifsomkolommen\else + \ifnum\noflistelements>0\relax\dosomebreak\nobreak\fi + \fi + \iffirstlist + \firstlistfalse + \begingroup + \ifcase\itemlevel + \or % 1 + \ifsomkolommen\else + \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} + {\bgroup + \protectconversion + \rawreference{\s!lst}{#1}{\itemreference}% + \egroup}% + \ignorespaces} + +\def\complexsom[#1]#2\par% + {\startopsomming[#1] + \complexdosom[]\ignorespaces#2\par + \stopopsomming} + +\def\som% + {\complexorsimpleempty{som}} + +\def\dosom% + {\complexorsimpleempty{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\v!kop}{\ignorespaces#2}}\par% + \ifpackeditems\else\itemuse{\c!kopna}\fi% + \dosomebreak\nobreak} + +\def\complexkop[#1]#2\par#3\par% + {\startopsomming[#1]% + \complexdokop[]\ignorespaces#2\par#3\par% + \stopopsomming} + +\setvalue{\v!kop}% + {\complexorsimpleempty{kop}} + +\def\dokop% + {\complexorsimpleempty{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's \??dd#1\c!lokaal en \??dd#1\c!commando leveren +% 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!commando +% moet in dat geval \v!ja zijn. + +% herimplementeren met \nextbox en \unhbox\unvbox + +\newbox\@@definitiebox + +% \setvalue{@@dodefinitiewoord\v!links}#1% +% {\hbox to \!!widtha{#1\hss}} +% \setvalue{@@dodefinitiewoord\v!rechts}#1% +% {\hbox to \!!widtha{\hss#1}} +% \setvalue{@@dodefinitiewoord\v!midden}#1% +% {\hbox to \!!widtha{\hss#1\hss}} +% \setvalue{@@dodefinitiewoord}#1% +% {#1} +% +% \def\@@definitiewoord#1% +% {\getvalue{\??dd#1\c!commando}{#1}} +% +% \def\normal@@definitiewoord#1[#2]#3% +% {\bgroup +% \getvalue{@@dodefinitiewoord\getvalue{\??dd#1\c!uitlijnen}} +% {\doattributes{\??dd#1\v!kop}{\strut\getvalue{\??dd#1\c!tekst}#3}}% +% \rawreference{\s!def}{#2}{#3}% +% \egroup} +% +% \def\@@definitielinks#1[#2]#3% +% {\doifelsevaluenothing{\??dd#1\c!hang} +% {\@@definitielinkspure{#1}[#2]{#3}} +% {\@@definitielinkshang{#1}[#2]{#3}}} +% +% \def\@@definitierechts#1[#2]#3% +% {\doifelsevaluenothing{\??dd#1\c!hang} +% {\@@definitierechtspure{#1}[#2]{#3}} +% {\@@definitierechtshang{#1}[#2]{#3}}} +% +% \def\@@definitielinkspure#1[#2]#3% +% {\@@dostartdefinitie{#1}{#3}% +% \advance\leftskip by \!!widtha +% \llap +% {\hbox to \!!widtha{\@@definitiewoord{#1}[#2]{#3}% +% \hss}}% +% \@@dodefinitie{#1}} +% +% \def\@@definitierechtspure#1[#2]#3% +% {\@@dostartdefinitie{#1}{#3}% +% \advance\rightskip by \!!widtha +% \rlap +% {\hskip\hsize +% \hskip-\leftskip +% \hskip-\rightskip +% \hbox to \!!widtha{\hss\@@definitiewoord{#1}[#2]{#3}}}% +% \@@dodefinitie{#1}} +% +% \def\@@makedefinitiebox#1[#2]#3#4% +% {\setbox\@@definitiebox=\vtop % \vbox gaat fout in hang +% {\forgetall +% \hsize\!!widtha +% #4% +% \def\\{\endgraf}% +% \@@definitiewoord{#1}[#2]{\begstrut#3\endstrut}}% +% \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}}}% +% +% \def\@@definitielinkshang#1[#2]#3% +% {\@@dostartdefinitie{#1}{#3}% +% \mindermeldingen +% \hangindent=\!!widtha\relax +% \@@makedefinitiebox{#1}[#2]{#3}{}% +% \llap +% {\dontshowcomposition +% \vtop to \!!zeropoint{\box\@@definitiebox}}% +% \@@dodefinitie{#1}}% +% +% \def\@@definitierechtshang#1[#2]#3% +% {\@@dostartdefinitie{#1}{#3}% +% \mindermeldingen +% \hangindent=-\!!widtha\relax +% \@@makedefinitiebox{#1}[#2]{#3}{\raggedleft}% +% \rlap +% {\dontshowcomposition +% \dimen0=\hsize +% \advance\dimen0 by -\leftskip +% \advance\dimen0 by -\rightskip +% \hbox to \dimen0 +% {\hss +% \vtop to \!!zeropoint{\box\@@definitiebox}}}% +% \@@dodefinitie{#1}} +% +% \def\@@definitieboven#1[#2]#3% +% {%\pagina[\v!voorkeur]% % Weg ermee! +% \dosomebreak{\goodbreak}% % Dit is beter en nodig! +% \@@dostartdefinitie{#1}{#3}% +% \@@definitiewoord{#1}[#2]{#3}% +% \nobreak +% \getvalue{\??dd#1\c!tussen}% +% \@@dodefinitie{#1}} +% +% \def\@@definitieinmarge#1[#2]#3% +% {\@@dostartdefinitie{#1}{#3}% +% \inmarge{\@@definitiewoord{#1}[#2]{#3}}% +% \@@dodefinitie{#1}} +% +% \def\@@definitieinlinker#1[#2]#3% +% {\@@dostartdefinitie{#1}{#3}% +% \inlinker{\@@definitiewoord{#1}[#2]{#3}}% +% \@@dodefinitie{#1}} +% +% \def\@@definitieinrechter#1[#2]#3% +% {\@@dostartdefinitie{#1}{#3}% +% \inrechter{\@@definitiewoord{#1}[#2]{#3}}% +% \@@dodefinitie{#1}} +% +% \def\@@definitieaanelkaarpassend#1[#2]#3% +% {\@@dostartdefinitie{#1}{#3}% +% \@@definitiewoord{#1}[#2]{#3}% +% \tfskip % nog afstand implementeren +% \@@dodefinitie{#1}} +% +% \def\@@definitieaanelkaarbreed#1[#2]#3% +% {\@@dostartdefinitie{#1}{#3}% +% \ignorespaces +% \hbox to \!!widtha +% {\@@definitiewoord{#1}[#2]{#3}% +% \tfskip +% \hss}% % nog afstand implementeren +% \@@dodefinitie{#1}} +% +% \def\@@definitieaanelkaar#1[#2]#3% +% {\doifinsetelse{\getvalue{\??dd#1\c!breedte}}{\v!passend,\v!ruim}% +% {\@@definitieaanelkaarpassend{#1}[#2]{#3}}% +% {\@@definitieaanelkaarbreed{#1}[#2]{#3}}} +% +% \def\@@dostartdefinitie#1#2% +% {\getvalue{\??dd#1\c!voor}% +% \begingroup +% %\showcomposition +% \assignwidth +% {\!!widtha} +% {\getvalue{\??dd#1\c!breedte}} +% {\doattributes +% {\??dd#1\v!kop} +% {\getvalue{\??dd#1\c!tekst}% +% \doifelsevaluenothing{\??dd#1\c!monster} +% {#2} +% {\getvalue{\??dd#1\c!monster}}}} +% {1em}% +% \getvalue{\??dd#1\c!lokaal}% +% \parindent=\!!zeropoint\relax +% \noindent +% \ignorespaces} + +\def\@@definitiewoord#1% + {\getvalue{\??dd#1\c!commando}{#1}} + +\def\normal@@definitiewoord#1[#2]#3% + {\doattributes + {\??dd#1\v!kop} + {\begstrut\getvalue{\??dd#1\c!tekst}#3\endstrut}% + \rawreference{\s!def}{#2}{#3}} + +\def\@@definitielinks#1% + {\@@definitiehang{#1}\@@definitielinkspure\@@definitielinkshang} + +\def\@@definitierechts#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}}% + \@@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\@@makedefinitiepurebox#1#2% + {\setbox\@@definitiebox=\vtop + {\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 + {\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 + \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}}}% + +\def\@@definitieboven#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}} + +\def\@@definitieinmarge#1[#2]#3% + {\@@dostartdefinitie{#1}[#2]{#3}% + \inmarge{\unhcopy\@@definitiebox}% + \@@dodefinitie{#1}} + +\def\@@definitieinlinker#1[#2]#3% + {\@@dostartdefinitie{#1}[#2]{#3}% + \inlinker{\unhcopy\@@definitiebox}% + \@@dodefinitie{#1}} + +\def\@@definitieinrechter#1[#2]#3% + {\@@dostartdefinitie{#1}[#2]{#3}% + \inrechter{\unhcopy\@@definitiebox}% + \@@dodefinitie{#1}} + +\def\@@definitieaanelkaarpassend#1[#2]#3% + {\@@dostartdefinitie{#1}[#2]{#3}% + \unhcopy\@@definitiebox + \@@dodefinitie{#1}} + +\def\@@definitieaanelkaarruim#1[#2]#3% + {\@@dostartdefinitie{#1}[#2]{#3}% + \hbox spread \!!widthb + {\unhcopy\@@definitiebox\hss}% + \@@dodefinitie{#1}} + +\def\@@definitieaanelkaarbreed#1[#2]#3% + {\@@dostartdefinitie{#1}[#2]{#3}% + \hbox to \!!widtha + {\unhcopy\@@definitiebox\hss}% + \kern\!!widthb + \ignorespaces + \@@dodefinitie{#1}} + +\def\@@definitieaanelkaar#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}} + +\def\@@dostartdefinitie#1[#2]#3% + {\getvalue{\??dd#1\c!voor}% + \begingroup + \showcomposition + \setbox\@@definitiebox=\hbox + {\forgetall + \def\\{\crcr}% + \doattributes + {\??dd#1\v!kop} + {\@@definitiewoord{#1}[#2]{\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\v!kop} + {\getvalue{\??dd#1\c!tekst}\getvalue{\??dd#1\c!monster}}}} + {\!!widthb}% + \getvalue{\??dd#1\c!lokaal}% + \parindent=\!!zeropoint\relax + \noindent + \ignorespaces} + +\def\@@stopdefinitie#1% + {\par + \dostopattributes + \endgroup + \egroup % temporary hack + \getvalue{\??dd#1\c!na}% + \pagina[\v!voorkeur]} % toegevoegd maar heroverwegen + +\def\@@dodefinitie#1% + {\dostartattributes + {\??dd#1} + {}% + \ignorespaces} + +\def\@@somedefinitie#1[#2]#3% + {\bgroup % temporary hack + \BeforePar{\getvalue{\??dd#1}[#2]{#3}}% + \AfterPar{\@@stopdefinitie{#1}}% + \GetPar} + +\def\@@startdefinitie#1[#2]#3% + {\bgroup % temporary hack + \BeforePar{\getvalue{\??dd#1}[#2]{#3}}% + \GotoPar} + +\def\dodosteldoordefinierenin[#1][#2]% + {\getparameters[\??dd#1][#2]} + +\def\dosteldoordefinierenin[#1][#2]% + {\ConvertToConstant\doifelse{#2}{} + {\dodosteldoordefinierenin[][#1]} + {\dodoubleargumentwithset\dodosteldoordefinierenin[#1][#2]}} + +\def\steldoordefinierenin% + {\dodoubleempty\dosteldoordefinierenin} + +% kan zonder \interfaced wanneer \setvalue{...\v!...} + +\def\executedoordefinitie#1[#2]% + {\ExpandAfter\doifundefined{@@definitie\interfaced{\getvalue{\??dd#1\c!plaats}}} + {\setvalue{\??dd#1\c!plaats}{\v!links}}% + \getvalue{@@definitie\interfaced{\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!uitlijnen,\c!inspringen,\c!tekst,\c!afstand]% + \getparameters[\??dd#1] + [\s!do\c!commando=\v!nee, + \c!commando=\normal@@definitiewoord, + \c!lokaal=, + #2]% + \doifvalue{\??dd#1\c!plaats}{\v!boven}% + {\doassign[\??dd#1][\c!tussen={\blanko}]}% + \setvalue{\??dd#1}[##1]% + {\executedoordefinitie{#1}[##1]}% + \doifelsevalue{\??dd#1\s!do\c!commando}{\v!ja} + {\setvalue{\s!complex\??dd#1}[##1]% + {\@@somedefinitie{#1}[##1]{}}% + \setvalue{\s!complex\??dd\s!start#1}[##1]% + {\@@startdefinitie{#1}[##1]{}}}% + {\setvalue{\s!complex\??dd#1}[##1]% + {\dowithwargument{\@@somedefinitie{#1}[##1]}}% + \setvalue{\s!complex\??dd\s!start#1}[##1]% + {\dowithwargument{\@@startdefinitie{#1}[##1]}}}% + \setvalue{#1}% + {\complexorsimpleempty{\??dd#1}}% + \setvalue{\e!start#1}% + {\complexorsimpleempty{\??dd\s!start#1}}% + \setvalue{\e!stop#1}% + {\@@stopdefinitie{#1}}}% + +\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} } + +\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=#1[#2]#3 van definitie + +\def\special@@definitiewoord#1#2#3#4[#5]#6% + {\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\v!kop} + {\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 + \ExpandBothAfter\doattributes + {\??dd#1\v!kop} + {\showdnpuretext{#2#1}}% + \rawreference{\s!num}{#5}{}% + \fi} + +% De macro's \??dd#1\c!lokaal en \??dd#1\c!commando leveren +% 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!commando +% moet in dat geval \v!ja zijn. + +\def\@@ddleftskip#1#2% + {\do@@ddleftskip{#1}{#2}{}} + +\def\do@@ddleftskip#1#2#3% + {\ExpandFirstAfter\processaction + [\getvalue{\??dd#2#1\c!inspringen}] + [ \v!nee=>, + \v!ja=>\dodo@@ddleftskip{#1}{#2}{#3}% + \doifnot{#2}{\v!sub#3} + {\do@@ddleftskip{#1}{#2}{\v!sub#3}}, + \s!unknown=>\advance\leftskip by \getvalue{\??dd#2#1\c!inspringen}]} + +\def\dodo@@ddleftskip#1#2#3% + {\ExpandFirstAfter\processaction + [\getvalue{\??dd#3\v!sub#1\c!inspringen}] + [ \v!nee=>, + \v!ja=>\ExpandFirstAfter\doifnotinset + {\getvalue{\??dd#3#1\c!breedte}}{\v!passend,\v!ruim} + {\advance\leftskip by \getvalue{\??dd#3#1\c!breedte}}, + \s!unknown=>\advance\leftskip by \commalistelement]} + +\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% + {\dodoordefinieren[#3#1]% + [\s!do\c!commando=\v!ja, + \c!lokaal=\@@ddleftskip{#1}{#3}, + \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!monster,\c!hang,\c!uitlijnen,\c!voor,\c!tussen,\c!na, + \c!niveaus,\c!wijze,\c!blokwijze,\c!scheider, % \c!conversie + \c!afsluiter,\c!sectienummer,\c!nummer,\c!inspringen]% + \ConvertToConstant\doifinstringelse{=}{#4} + {\getparameters[\??dd#3#1]% + [\c!tekst=#1,\??dd\c!nummer=#1,\c!conversie=, + \c!links=,\c!rechts=,\c!koppeling=,#4]}% + {\doifelsenothing{#4} + {\getparameters[\??dd#3#1]% + [\c!tekst=#1,\??dd\c!nummer=#1,\c!conversie=, + \c!links=,\c!rechts=,\c!koppeling=,#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!monster,\c!hang,\c!uitlijnen,\c!voor,\c!tussen,\c!na, + \c!links,\c!rechts,\c!koppeling,\c!inspringen]% + \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}% + {\getvalue{\??dd\s!reset#3\c!nummer}{#1}}% + \setvalue{\s!complex\e!volgende#3#1}% + {\getvalue{\??dd\c!volgende#3\c!nummer}{#1}}% + \setvalue{\e!volgende#3#1}% + {\complexorsimpleempty{\e!volgende#3#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 + \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\v!kop} + {\getvalue{\??ds#1\c!monster}\getvalue{\??ds#1\c!scheider}}} + {1em}% + \advance\!!widtha by \tfskipsize + \setbox2=\hbox to \!!widtha + {\doattributes + {\??ds#1\v!kop} + {\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}{}% #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\v!kop}{\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, +%I c=\woordrechts +%I +%I De regelval kan worden ingesteld met: +%I +%I \steluitlijnenin[instelling] +%I +%I waarbij de volgende instellingen mogelijk zijn: +%I +%I links links niet uitvullen +%I midden links/rechts niet uitvullen = centreren +%I rechts rechts niet uitvullen +%I breedte uitvullen over breedte (default) +%I beide wisselend (afhankelijk bladzijde) +%I onder onderkant niet uitgelijnd (default) +%I hoogte uitvullen over hoogte (op baseline) +%I regel uitvullen over hoogte (binnen kader) +%I reset uitvullen over breedte en hoogte +%I +%I In combinatie met links, midden en rechts kan 'ruim' +%I worden opgegeven. +%P +%I Aanvullend zijn de volgende commando's beschikbaar: +%I +%I \startuitlijnen[instelling] +%I \stopuitlijnen +%I +%I Een regel kan op verschillende manieren worden uitgelijnd +%I met behulp van de commando's: +%I +%I \regellinks{tekst} +%I \regelrechts{tekst} +%I \regelmidden{tekst} +%I +%I Aan het eind van een paragraaf kan een stukje tekst +%I worden geplaatst met: \woordrechts{ziezo} +%P +%I De tolerantie waarbinnen het uitlijnen plaatsvindt kan +%I worden ingesteld met: +%I +%I \steltolerantiein[instelling] +%I +%I Mogelijke waarden zijn: zeerstreng, streng, soepel en +%I zeersoepel. +%I +%I Standaard heeft de tolerantie betrekking op horizontaal +%I uitlijnen. Vertikaal kan het uitlijnen worden beinvloed +%I door het trefwoord 'vertikaal' mee te geven. Standaard +%I geldt [vertikaal,streng] en [horizontaal,zeerstreng]. + +\definetwopasslist{\s!paragraph} + +\newcounter\nofraggedparagraphs + +\def\doparagraphreference% looks very much like domarginreference + {\doglobal\increment\nofraggedparagraphs\relax + \edef\writeparref% + {\writeutilitycommand% + {\twopassentry% + {\s!paragraph}% + {\nofraggedparagraphs}% + {\noexpand\realfolio}}}% + \writeparref} + +\def\setraggedparagraphmode#1#2% + {\ifinner + \ifdubbelzijdig + \gettwopassdata{\s!paragraph}% + \iftwopassdatafound + \ifodd\twopassdata#1\else#2\fi + \else + \ifodd\realfolio#1\else#2\fi + \fi + \doparagraphreference + \else + #2\relax + \fi + \else + #2\relax + \fi} + +% De onderstaande macro's zijn opgenomen in Plain TeX. +% +% \def\raggedright% +% {\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax} +% +% \def\ttraggedright% +% {\tttf\rightskip\z@ plus2em\relax} +% +% \newif\ifr@ggedbottom +% +% \def\raggedbottom% +% {\topskip 10\p@ plus60\p@ \r@ggedbottomtrue} +% +% \def\normalbottom% +% {\topskip 10\p@ \r@ggedbottomfalse} +% +% en worden hieronder wat aangepast. + +\newif\ifn@rmalbottom +\newif\ifr@ggedbottom +\newif\ifb@selinebottom + +\def\normalbottom% + {\n@rmalbottomtrue + \r@ggedbottomfalse + \b@selinebottomfalse + \settopskip} + +\def\raggedbottom% + {\n@rmalbottomfalse + \r@ggedbottomtrue + \b@selinebottomfalse + \settopskip} + +\def\baselinebottom% + {\n@rmalbottomfalse + \r@ggedbottomfalse + \b@selinebottomtrue + \settopskip} + +% \hyphenpenalty = ( 2.5 * \hsize ) / \raggedness +% \tolerance >= 1500 % was 200 +% \raggedness = 2 .. 6\korpsgrootte + +\def\leftraggedness {2\korpsgrootte} +\def\rightraggedness {2\korpsgrootte} +\def\middleraggedness {6\korpsgrootte} + +\def\setraggedness#1% + {\ifnum\tolerance<1500\relax % kleinere waarden + \tolerance=1500\relax % geven ongewenste + \fi % effecten + \spaceskip=2.5\hsize % voorkomt conflict + \xspaceskip=#1\relax % met \dimen0/2 en + \divide\spaceskip by \xspaceskip % deze skips worden + \hyphenpenalty=\spaceskip} % toch al aangepast + +\def\setraggedskips#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\notragged% + {\setraggedskips{0em}{0em}{0em}{0em}{1fil}{\parindent}} % {\voorwit}} + +\def\raggedleft% + {\setraggedness\leftraggedness + \setraggedskips{\leftraggedness}{0em}{.3333em}{.5em}{0em}{0em}} + +\def\raggedcenter% + {\setraggedness\middleraggedness + \setraggedskips{\middleraggedness}{\middleraggedness}{.3333em}{.5em}{0em}{0em}} + +\def\raggedright% + {\setraggedness\rightraggedness + \setraggedskips{0em}{\rightraggedness}{.3333em}{.5em}{0em}{\parindent}} % {\voorwit}} + +\def\veryraggedleft% + {\setraggedskips{1fil}{0em}{.3333em}{.5em}{0em}{0em}} + +\def\veryraggedcenter% + {\setraggedskips{1fil}{1fil}{.3333em}{.5em}{0em}{0em}} + +\def\veryraggedright% + {\setraggedskips{0em}{1fil}{.3333em}{.5em}{0em}{\parindent}} % {\voorwit}} + +\def\ttraggedright% + {\tttf + \setraggedskips{0em}{\rightraggedness}{0em}{0em}{0em}{\parindent}} % {\voorwit}} + +\def\dosteluitlijnenin[#1]% + {\doifinsetelse{\v!ruim}{#1}{\!!doneatrue}{\!!doneafalse}% + \processallactionsinset + [#1] + [ \v!regel=>\baselinebottom, + \v!onder=>\raggedbottom, + \v!hoogte=>\normalbottom, + \v!breedte=>\notragged, + \v!binnen=>\setraggedparagraphmode\raggedleft\raggedright, + \v!buiten=>\setraggedparagraphmode\raggedright\raggedleft, + \v!links=>\if!!donea\veryraggedleft\else\raggedleft\fi, + \v!rechts=>\if!!donea\veryraggedright\else\raggedright\fi, + \v!midden=>\if!!donea\veryraggedcenter\else\raggedcenter\fi, + \v!reset=>\notragged + \normalbottom]} + +\def\steluitlijnenin% + {\dosingleargument\dosteluitlijnenin} + +\def\startuitlijnen% + {\bgroup + \steluitlijnenin} + +\def\stopuitlijnen + {\par + \egroup} + +%\def\regellinks#1% +% {\noindent\leftline{{\strut#1}}} +% +%\def\regelrechts#1% +% {\noindent\rightline{{#1\strut}}} +% +%\def\regelmidden#1% +% {\noindent\centerline{{\strut#1}}} + +\def\doalignline#1#2% + {\dowithnextbox + {\noindent\hbox to \hsize + {\strut#1\unhbox\nextbox#2}} + \hbox} + +\def\regellinks {\doalignline \relax \hss } +\def\regelrechts {\doalignline \hss \relax} +\def\regelmidden {\doalignline \hss \hss } + +\def\doregelplaats#1% + {\getvalue{regel\interfaced{#1}}} + +\def\dosteltolerantiein[#1]% + {\doifinsetelse{\v!vertikaal}{#1}% + {\processfirstactioninset + [#1] + [\v!zeerstreng=>\def\bottomtolerance{}, + \v!streng=>\def\bottomtolerance{.050}, + \v!soepel=>\def\bottomtolerance{.075}, + \v!zeersoepel=>\def\bottomtolerance{.100}]}% + {\processfirstactioninset + [#1] + [\v!zeerstreng=>\tolerance=200, + \v!streng=>\tolerance=1500, + \v!soepel=>\tolerance=3000, + \v!zeersoepel=>\tolerance=4500]}} + +\def\steltolerantiein% + {\dosingleargument\dosteltolerantiein} + +\def\woordrechts% + {\groupedcommand{\hfill\hbox}{\parfillskip\!!zeropoint}} + +%I n=Margeteksten +%I c=\inmarge,\inlinker,\inrechter,\stelinmargein +%I c=\margetitel,\figuurinmarge +%I c=\oplinker +%I +%I Een paragraaf kan worden ingeluid met een tekst in +%I de marge: +%I +%I \inmarge{tekst} +%I \inlinker{tekst} +%I \inrechter{tekst} +%I +%I Met \\ kan binnen een margetekst naar een volgende regel +%I worden gesprongen. +%P +%I Het onderstaande commando kan gebruikt worden om een +%I paragraafaanduiding in de marge te plaatsen. Het commando +%I moet aan het begin van de paragraaf staan. Er wordt +%I gecontroleerd of een en ander nog op de bladzijde past. +%I +%I \margetitel{tekst} +%I +%I Tussen \margetitel{tekst} en de volgende alinea mag, +%I omwille van de overzichtelijkheid, een lege regels staan. +%I Als dit commando wordt gebruikt na een commando als +%I \paragraaf, kan het controlemechanisme leiden tot een +%I ongewenste overgang naar een nieuwe bladzijde. In dat +%I geval kan beter het volgende commando worden gebruikt. +%I +%I \margewoord{tekst} +%I +%I Dit commando komt overeen met \inmarge, alleen is bij +%I \margewoord de lege regel toegestaan. +%P +%I Er kan eventueel voor {tekst} een [referentie] worden +%I meegegeven. In dat geval kan worden verwezen naar het +%I paginanummer waarop het margewoord staat. +%I +%I Als TeX twijfelt in welke marge het woord moet staan, is +%I een tweede verwerkingsslag nodig. Als een margewoord bij +%I herhaling verkeerd wordt geplaatst, dan kan het +%I automatisme worden verstoord door [+] mee te geven. Een +%I margewoord kan lager worden gezet met [laag]. Combinaties +%I kunnen ook: +%I +%I \margewoord[+,laag][referentie]{woord} +%P +%I De wijze van weergeven kan worden ingesteld met het +%I commando: +%I +%I \stelinmargein[letter=,plaats=,voor=,na=,uitlijnen=] +%I +%I Als plaats kan links, rechts of beide worden meegegeven. In +%I het laatste geval hangt de plaats af van het +%I enkel/dubbelzijdig zetten. +%I +%I Uitlijnen kent twee instellingen: 'ja' en 'nee'. Inhet +%I eerste geval (default) worden de margewoorden tegen de +%I kantlijn geplaatst. +%P +%I Vooruitlopend op meer commando's is er al vast het +%I commando: +%I +%I \oplinker{tekst} +%I +%I Dit commando kan bijvoorbeeld worden gebruikt binnen +%I een midden-uitgelijnde tekst. Het commando is nog niet +%I definitief en robuust. + +% %P +% %I Aanvullend zijn commando's beschikbaar om figuren in +% %I de marge te plaatsen: +% %I +% %I \figuurinmarge{figuur} +% %I \figuurinlinker{figuur} +% %I \figuurinrechter{figuur} + +%T n=margetitel +%T m=mar +%T a=m +%T +%T \margetitel{?} +%T + +\newif\iflowinmargin + +\def\stelinmargein% + {\dodoubleempty\dostelinmargein} + +\def\dostelinmargein[#1][#2]% + {\ifsecondargument + \doifundefinedelse{\??im#1\c!offset} + {\presetlocalframed + [\??im#1]% + \getparameters + [\??im#1] + [\c!kader=\v!uit, + \c!offset=\v!overlay, + \c!regel=1, + \c!scheider=, + \c!breedte=\v!ruim, + \c!afstand=\!!zeropoint, + \c!letter=\@@imletter, + \c!kleur=\@@imkleur, + \c!plaats=\@@implaats, + \c!uitlijnen=\@@imuitlijnen, + \c!voor=\@@imvoor, + \c!na=\@@imna, + #2]} + {\getparameters[\??im#1][#2]}% + \else + \getparameters[\??im][#1]% + \fi} + +\let\margetekstafstand = \!!zeropoint +\def\margetekstregels {1} +\def\margetekstnummer {0} +\let\margetekstscheider = \empty + +\def\maakmargetekstblok#1#2#3#4#5#6% + {#4\relax + \bgroup + \mindermeldingen + \hsize#1\relax + \ifnum\margetekstnummer=0 + \def\margetekstnummer{#2}% + \fi + \processaction + [\getvalue{\??im\margetekstnummer\c!uitlijnen}] + [ \v!ja=>\setvalue{\??im\margetekstnummer\c!uitlijnen}{#2}, + \v!binnen=>\setvalue{\??im\margetekstnummer\c!uitlijnen}{#2}, + \v!buiten=>\setvalue{\??im\margetekstnummer\c!uitlijnen}{#3}, + \s!default=>\setvalue{\??im\margetekstnummer\c!uitlijnen}{#2}]% + \setbox0=\vbox\localframed + [\??im\margetekstnummer] + [\c!strut=\v!nee] + {\decrement\margetekstregels + \@@imvoor + \doattributes{\??im\margetekstnummer} + {\dorecurse{\margetekstregels}{\strut\\}% + \begstrut#6\endstrut\endgraf}% + \@@imna}% + \ht0=\ht\strutbox + \box0 + \egroup + #5\relax} + +\def\plaatsmargetekstscheider% + {\ifnum\margincontent>0 + \bgroup + \dimen0=\margetekstregels\lineheight + \advance\dimen0 by -\lineheight + \lower\dimen0\hbox{\margetekstscheider}% + \egroup + \fi} + +\def\linkermargetekstblok#1% + {\maakmargetekstblok + {\linkermargebreedte} + {\v!links}{\v!rechts} + {\llap{\plaatsmargetekstscheider}}{\hskip\margetekstafstand} + {#1}} + +\def\rechtermargetekstblok#1% + {\maakmargetekstblok + {\rechtermargebreedte} + {\v!rechts}{\v!links} + {\hskip\margetekstafstand}{\rlap{\plaatsmargetekstscheider}} + {#1}} + +\def\doplacemargintext#1#2#3% + {\strut + \setbox0=\hbox{#1}% + \dimen0=\ht0 + \advance\dimen0 by \dp0 + \ifdim\dimen0>\marginheight + \global\marginheight=\dimen0 + \fi + \setbox0=\hbox + {#2{\hskip#3\strut\iflowinmargin\else\raise\dp\strutbox\fi\box0}}% + \ht0=\!!zeropoint + \dp0=\!!zeropoint + \vadjust{\box0}} + +\def\doinlinker#1% + {\doplacemargintext + {\linkermargetekstblok{#1}\hskip\linkermargeafstand} + \llap\!!zeropoint} + +\def\doinrechter#1% + {\doplacemargintext + {\hskip\rechtermargeafstand\rechtermargetekstblok{#1}} + \rlap\hsize} + +\newcounter \nofmarginnotes +\newif \iftrackingmarginnotes +\newif \ifrightmargin % documenteren + +\definetwopasslist{\s!margin} + +\def\domarginreference% + {\doglobal\increment\nofmarginnotes\relax + \edef\writemarref% + {\writeutilitycommand% + {\twopassentry% + {\s!margin}% + {\nofmarginnotes}% + {\noexpand\realfolio}}}% + \writemarref} + +\def\dodoinmargenormal#1#2#3#4% + {\iffirstsidefloatparagraph\geenwitruimte\fi % zo laat mogelijk + \ifodd#1\relax + \rightmargintrue + #3{#4}% + \else + \rightmarginfalse + #2{#4}% + \fi} + +\def\doinmargenormal#1#2#3% + {\bgroup + \iftrackingmarginnotes + \gettwopassdata{\s!margin}% + \iftwopassdatafound + \dodoinmargenormal\twopassdata#1#2{#3}% + \else + \dodoinmargenormal\realfolio#1#2{#3}% + \fi + \domarginreference + \else + \dodoinmargenormal\realfolio#1#2{#3}% + \fi + \egroup} + +\def\doinmargereverse#1#2#3% + {\dodoinmargenormal\realfolio#2#1{#3}} + +\def\doinmarge[#1][#2][#3][#4][#5]#6% + {\doifcommonelse{+,-,\v!laag}{#4} + {\dodoinmarge[#1][#2][#3][#4][#5]{#6}} + {\dodoinmarge[#1][#2][#3][][#4]{#6}}% + \ignorespaces} + +\def\dodoinmarge[#1][#2][#3][#4][#5]#6% + {\ignorespaces + \doifinsetelse{\v!laag}{#4} + {\lowinmargintrue} + {\lowinmarginfalse}% + \processaction + [#1] + [ \v!links=>#2{#6}, + \v!rechts=>#3{#6}, + \s!unknown=>\ifdubbelzijdig + \doifcommonelse{+,-}{#4} + {\doinmargereverse#2#3{#6}} + {\doinmargenormal#2#3{#6}}% + \else + #2{#6}% + \fi]% + \rawpagereference{\s!mar}{#5}% + \ignorespaces} + +\def\inlinker% + {\indentation\doquintupleempty\doinmarge + [\c!links][\doinlinker][\doinrechter]} + +\def\inrechter% + {\indentation\doquintupleempty\doinmarge + [\c!rechts][\doinlinker][\doinrechter]} + +\def\inmarge% + {\doquintupleempty\doinmarge + [\@@implaats][\doinlinker][\doinrechter]} + +\def\inanderemarge% + {\doquintupleempty\doinmarge + [\@@implaats][\doinrechter][\doinlinker]} + +\newcounter\margincontent + +\def\flushmargincontent% [#1][#2]#3% hier plaats 'globaal' (geen 1,2 enz) + {\doinmarge[\@@implaats][\doinlinker][\doinrechter]} % [#1][#2]{#3}} + +\newdimen\marginheight + +\let\restoreinterlinepenalty=\relax + +\def\flushmargincontents% % links + rechts + {\restoreinterlinepenalty + \ifnum\margincontent>0 + \bgroup + \forgetall + \global\marginheight\!!zeropoint + \dorecurse{\margincontent} + {\bgroup + \edef\margetekstafstand {\getvalue{\??im\recurselevel\c!afstand}}% + \edef\margetekstregels {\getvalue{\??im\recurselevel\c!regel}}% + \edef\margetekstscheider{\getvalue{\??im\recurselevel\c!scheider}}% + \let\margetekstnummer=\recurselevel + \getvalue{\??im\recurselevel}% + \global\setvalue{\??im\recurselevel}{}% + \egroup}% + \ifdim\marginheight>\lineheight % This is something real dirty! + \advance\marginheight by \pagetotal + \advance\marginheight by \lineheight % a sort of bonus + \ifdim\marginheight>\pagegoal + \xdef\restoreinterlinepenalty% + {\global\let\restoreinterlinepenalty\relax + \global\interlinepenalty=\the\interlinepenalty}% + \global\interlinepenalty=10000 + \fi + \else % We need the above because interlinepenalties overrule vadjusted \nobreaks. + %\vadjust + % {\forgetall + % \global\advance\marginheight by \lineheight + % \global\divide\marginheight by \lineheight + % \dorecurse{\number\marginheight} + % {\nobreak\vskip\lineheight}% + % \kern-\number\marginheight\lineheight}% + \vadjust{\nobreak}% + \fi + \doglobal\newcounter\margincontent + \egroup + \fi} + +\def\complexmargewoord[#1][#2]#3% + {\doglobal\increment\margincontent + \stelinmargein[\margincontent][]% + \global\setvalue{\??im\margincontent}% + {\flushmargincontent[#1][#2]{#3}}} + +\def\margewoord% + {\dodoubleempty\complexmargewoord} + +\def\margetitel% + {\margewoord} + +\def\margetekst% + {\margewoord} + +\def\margewoordpositie[#1]#2% + {\ifnum#1>\margincontent + \xdef\margincontent{#1}% + \fi + \stelinmargein[#1][]% + \global\setvalue{\??im#1}% + {\flushmargincontent[][]{#2}}} + +\def\oplinker#1% + {\strut + \vadjust + {\mindermeldingen + \setbox0=\vtop{\forgetall\strut#1}% + \getboxheight\dimen0\of\box0 + \vskip-\dimen0\ + \box0}} + +%D \macros +%D {inleftside,inleftmargin,inrightmargin,inrightside} +%D {} +%D +%D The fast and clean way of putting things in the margin is +%D using \type{\rlap} or \type{\llap}. Unfortunately these +%D macro's don't handle indentation, left and right skips. We +%D therefore embed them in some macro's that (force and) +%D remove the indentation and restore it afterwards. + +\def\inleftmargin#1% + {\pushindentation + \llap{#1\hskip\leftskip\hskip\linkermargeafstand}% + \popindentation + \ignorespaces} + +\def\inrightmargin#1% + {\pushindentation + \rlap{\hskip\hsize\hskip-\rightskip\hskip\rechtermargeafstand#1}% + \popindentation + \ignorespaces} + +\def\inleftside#1% + {\inleftmargin + {#1\relax + \hskip\linkermargebreedte + \hskip\pageseparation + \hskip\linkerrandafstand}} + +\def\inrightside#1% + {\inrightmargin + {\hskip\rechtermargebreedte + \hskip\rechterrandafstand + \hskip\pageseparation + #1}} + +%D We want to keep things efficient and therefore only handle +%D situations like: +%D +%D \startbuffer +%D \inleftside {fine} some text \par +%D \strut \inleftmargin {fine} some text \par +%D \noindent \inrightmargin {fine} some text \par +%D \noindent \strut \inrightside {fine} some text \par +%D \stopbuffer +%D +%D \typebuffer +%D +%D which looks like: +%D +%D \bgroup +%D \haalbuffer +%D \parindent 30pt +%D \haalbuffer +%D \egroup + +%D \macros +%D {pushindentation,popindentation} +%D +%D The pushing and popping is done by: + +\newbox\indentationboxA +\newbox\indentationboxB + +\def\pushindentation% + {\bgroup + \ifhmode + \unskip + \setbox\indentationboxA=\lastbox % get \strut if present + \unskip + \setbox\indentationboxB=\lastbox % get \indent generated box + \unskip + \else + \hskip\!!zeropoint % switch to horizontal mode + \unskip + \setbox\indentationboxA=\lastbox % get \indent generated box + \setbox\indentationboxB=\box\voidb@x + \fi} + +\def\popindentation% + {\box\indentationboxB\box\indentationboxA % put back the boxes + \egroup} + +%D The only complication lays in \type{\strut}. In \PLAIN\ +%D \TEX\ a \type{\strut} is defined as: +%D +%D \starttypen +%D \def\strut% +%D {\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi} +%D \stoptypen +%D +%D But what is a \type{\strut}? Normally it's a rule of width +%D zero, but when made visual, it's a rule and a negative skip. +%D The mechanism for putting things in the margins described +%D here cannot handle this situation very well. One +%D characteristic of \type{\strut} is that the \type{\unhcopy} +%D results in entering horizontal mode, which in return leads +%D to some indentation. +%D +%D To serve our purpose a bit better, the macro \type{\strut} +%D can be redefined as: +%D +%D \starttypen +%D \def\strut% +%D {\relax\ifmmode\else\hskip0pt\fi\copy\strutbox} +%D \stoptypen +%D +%D Or more compatible: +%D +%D \starttypen +%D \def\strut% +%D {\relax\ifmmode +%D \copy\strutbox +%D \else +%D \bgroup\setbox\strutbox=\normalhbox{\box\strutbox}\unhcopy\strutbox\egroup +%D \fi} +%D \stoptypen +%D +%D In \CONTEXT\ however we save some processing time by putting +%D an extra \type{\hbox} around the \type{\strutbox}. + +% dit zijn voorlopig lokale commando's + +\def\woordinlinker {\inlinkermarge} +\def\woordinrechter{\inrechtermarge} + +\def\woordinmarge% + {\doquintupleempty\doinmarge + [\@@implaats][\woordinlinker][\woordinrechter]} + +%I n=Paginanummer +%I c=\stelpaginanummerin,\stelsubpaginanummerin +%I +%I Het paginanummer kan worden ingesteld met het commando: +%I +%I \stelpaginanummerin[nummer=,status=] +%I +%I Het nummeren kan gedurende een of meerdere pagina's worden +%I stilgezet door in plaats van een nummer start, stop of +%I handhaaf mee te geven. +%I +%I Het paginanummer is oproepbaar met: +%I +%I \paginanummer +%I +%I en het totaal aantal paginanummers met: +%I +%I \totaalaantalpaginas +%P +%I Er zijn subnummers beschikbaar. De wijze van nummeren +%I wordt ingesteld met: +%I +%I \stelsubpaginanummerin[wijze=,status=] +%I +%I De status kan 'stop', 'start' of 'geen' zijn. In het +%I laatste geval wordt gewoon doorgenummerd, maar wordt het +%I nummer niet geplaatst. +%I +%I Standaard wordt 'perdeel' genummerd. De subnummers zijn +%I oproepbaar met: +%I +%I \subpaginanummer +%I \aantalsubpaginas + +% Standaard is \count0 in Plain TeX de paginateller. Omwille +% van de afhandeling van lokaal nummeren, definieren we +% echter een eigen nummer. + +\definieernummer + [\s!page] + [\c!conversie=\@@nmconversie, + \c!wijze=\@@nmwijze, + \c!status=\@@nmstatus, + \c!start=1] + +\def\dostelpaginanummerin[#1]% + {\getparameters + [\??pn] + [\c!status=\v!start, + #1]% + \doifinstringelse{\c!nummer}{#1} + {\setnummer[\s!page]{\@@pnnummer}% + \setuserpageno{\ruwenummer[\s!page]}}% + {}} + +\def\stelpaginanummerin% + {\dosingleargument\dostelpaginanummerin} + +\def\verlaagpaginanummer% + {\doif{\@@pnstatus}{\v!start} + {\verlaagnummer[\s!page]% + \setuserpageno{\ruwenummer[\s!page]}}} + +\def\verhoogpaginanummer% + {\processaction + [\@@pnstatus] + [ \v!start=>{\verhoognummer[\s!page]% + \setuserpageno{\ruwenummer[\s!page]}}, + \v!handhaaf=>{\doassign[\??pn][\c!status=\v!start]}]} + +\def\checkpagecounter% + {\checknummer{\s!page}} + +%I n=Pagina +%I c=\pagina +%I +%I Het volgende commando kan worden gebruikt om pagina's af +%I te dwingen of blokkeren: +%I +%I \pagina[instelling] +%I +%I Waarbij als instelling kan worden gegeven: +%I +%I ja een geforceerde paginaovergang met \vfill +%I opmaak een geforceerde paginaovergang zonder \vfill +%I nee bij voorkeur geen paginaovergang +%I voorkeur bij voorkeur de paginaovergang hier (3) +%I grotevoorkeur bij voorkeur de paginaovergang hier (7) +%I links ga naar een linker pagina +%I rechts ga naar een rechter pagina +%I leeg een lege pagina +%I blokkeer blokkeer ja ... grotevoorkeur (1 pagina) +%I reset het blokkering ja ... grotevoorkeur op +%I +%I Als geen instelling wordt meegegeven (\pagina), wordt een +%I overgang geforceerd. Als een nummer wordt meegegeven, wordt +%I naar de opgegeven pagina gegaan. + +\newif\ifpaginageblokkeerd +\paginageblokkeerdfalse + +\def\testpagina[#1][#2]% + {\global\!!doneafalse + \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 + \global\!!doneatrue + \fi + \else + \goodbreak + \fi + \fi} + +\let\resetcurrentsectionmarks=\relax + +% was: \resetsectionmarks[\firstsection], zie \handelpaginaaf + +% dummy page & insert check +% +% \def\complexpagina[#1]% +% {\flushfootnotes +% \processaction +% [#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!nee=>\ifpaginageblokkeerd\else +% \nobreak +% \fi, +% \v!voorkeur=>{\ifpaginageblokkeerd\else +% \ifbinnenkolommen +% \goodbreak +% \else +% \testpagina[3][\!!zeropoint]% +% \fi +% \fi}, +% \v!grotevoorkeur=>{\ifpaginageblokkeerd\else +% \ifbinnenkolommen +% \goodbreak +% \else +% \testpagina[5][\!!zeropoint]% +% \fi +% \fi}, +% \v!leeg=>{\ejectinsert +% \ejectpage +% \doifnotvalue{\??tk\v!hoofd\v!tekst\c!status}{\v!stop} +% {\stelhoofdin[\c!status=\v!leeg]}% +% \doifnotvalue{\??tk\v!voet\v!tekst\c!status}{\v!stop} +% {\stelvoetin[\c!status=\v!leeg]}% +% \hardespatie +% \vfill +% \ejectpage}, +% \v!links=>{\ejectinsert +% \superejectpage +% \doifbothsidesoverruled +% \orsideone +% \resetcurrentsectionmarks +% \hardespatie +% \vfill +% \ejectpage +% \orsidetwo +% \od}, +% \v!rechts=>{\ejectinsert +% \superejectpage +% \doifbothsidesoverruled +% \orsideone +% \orsidetwo +% \resetcurrentsectionmarks +% \hardespatie +% \vfill +% \ejectpage +% \od}, +% \v!even=>\doifonevenpaginaelse +% {\ejectinsert\ejectpage}{}, +% \v!oneven=>\doifonevenpaginaelse +% {}{\ejectinsert\ejectpage}, +% \v!viertal=>{\ifdubbelzijdig +% \!!counta=\realpageno +% \!!countb=\realpageno +% \divide\!!counta by 4\relax +% \divide\!!countb by 2\relax +% \ifnum\!!counta=\!!countb\relax +% \else +% \pagina +% \pagina[\v!leeg]% +% \pagina[\v!leeg]% +% \fi +% \fi}, +% \v!laatste=>{\ejectinsert +% \superejectpage +% \doifbothsidesoverruled +% \naastpagina +% \orsideone +% \orsidetwo +% \ifodd\realpageno \else +% \stelvoetin[\c!status=\v!leeg]% +% \stelhoofdin[\c!status=\v!leeg]% +% \hardespatie +% \vfill +% \ejectpage +% \fi +% \od}, +% \s!unknown=>\doifnumberelse{#1} +% {\ejectinsert +% \ejectpage +% \loop +% \ifnum\userpageno<#1\relax +% \hardespatie +% \vfill +% \ejectinsert +% \ejectpage +% \repeat} +% {}]} + +\def\insertdummypage% + {\ejectinsert % beter + \hardespatie + \vfill + \ejectpage} + +\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} + {\stelhoofdin[\c!status=\v!leeg]}% + \doifnotvalue{\??tk\v!voet\v!tekst\c!status}{\v!stop} + {\stelvoetin[\c!status=\v!leeg]}% + \insertdummypage}, + \v!links=>{\ejectinsert + \superejectpage + \doifbothsidesoverruled + \orsideone + \resetcurrentsectionmarks + \insertdummypage + \orsidetwo + \od}, + \v!rechts=>{\ejectinsert + \superejectpage + \doifbothsidesoverruled + \orsideone + \orsidetwo + \resetcurrentsectionmarks + \insertdummypage + \od}, + \v!even=>\pagina + \doifonevenpaginaelse + {\resetcurrentsectionmarks\insertdummypage}{}, + \v!oneven=>\pagina + \doifonevenpaginaelse + {}{\resetcurrentsectionmarks\insertdummypage}, + \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 + \geenhoofdenvoetregels + \insertdummypage + %\fi + \od + \filluparrangedpages}, + \s!unknown=>\doifnumberelse{#1} + {\ejectinsert + \ejectpage + \loop + \ifnum\userpageno<#1\relax + \insertdummypage + \repeat} + {}]% + \egroup} + +\def\complexpagina[#1]% + {\expanded{\docomplexpagina[#1]}} + +\def\simplepagina% + {\docomplexpagina[\v!ja]} + +\def\pagina% + {\complexorsimple{pagina}} + +\def\resetpagina% + {\global\paginageblokkeerdfalse} + +% \getpagestatus +% \ifrightpage als odd/enkelzijdig + +\newif\ifrightpage \rightpagetrue + +\newcounter \nofpagesets + +\definetwopasslist{\s!page} + +\def\dopagesetreference% + {\doglobal\increment\nofpagesets\relax + \edef\writepagref% + {\writeutilitycommand + {\twopassentry + {\s!page}% + {\nofpagesets}% + {\noexpand\realfolio}}}% + \writepagref} + +\def\getpagestatus% hierboven gebruiken + {\ifdubbelzijdig + \gettwopassdata{\s!page}% + \iftwopassdatafound \else + \let\twopassdata=\realpageno + \fi + \ifodd\twopassdata + \global\rightpagetrue + \else + \global\rightpagefalse + \fi + \dopagesetreference + \else + \global\rightpagetrue + \fi} + +%I n=Hoofdteksten +%I c=\stelnummeringin +%I c=\stelhoofdtekstenin,\stelvoettekstenin,\stelhoofdin,\stelvoetin +%I c=\stelboventekstenin,\stelondertekstenin,\stelbovenin,\stelonderin +%I +%I Zogeheten hoofd- en/of voetteksten kan men instellen +%I met: +%I +%I \stelhoofdtekstenin [linker tekst] [rechter tekst] +%I \stelvoettekstenin [linker tekst] [rechter tekst] +%I +%I Bij dubbelzijdig zetten worden de linker en rechter +%I teksten gespiegeld. +%I +%I In plaats van een tekst kunnen de woorden 'hoofdstuk', +%I 'paragraaf' en 'deel' worden meegegeven. Ook kan het +%I woord 'datum' worden meegegeven. +%P +%I Als men op de even en oneven pagina's een andere tekst +%I wil hebben, dan kan men een tweede paar meegeven. In dat +%I geval zijn er dus vier argumenten: [][][][]. +%I +%I Als men in de marge of randen teksten wil, kan men dat +%I direct achter het commando aangeven: +%I +%I \stelhoofdtekstenin [lokatie] [links] [rechts] +%I \stelvoettekstenin [lokatie] [links] [rechts] +%I +%I Mogelijke lokaties zijn: tekst, marge en rand. +%P +%I In de tekst opgenomen commando's kunnen soms voor +%I problemen zorgen. Commando's kan men daarom laten +%I voorafgaan \geentest, bijvoorbeeld: +%I +%I \stelvoettekstenin[\geentest\lastigcommando][] +%I +%I Meestal geven commando's geen problemen. Wel moet men +%I oppassen met []. Accolades zijn hiervoor de oplossing: +%I +%I \stelvoettekstenin[{{\huidigedatum[mm,/,jj]}}][] +%I +%I of +%I +%I \stelvoettekstenin[\geentest{\huidigedatum[mm,/,jj]}][] +%P +%I De wijze van nummeren wordt gedefinieerd met: +%I +%I \stelnummeringin[variant=,plaats=,conversie=, +%I links=,rechts=,tekst=,tekstscheider=,nummerscheider, +%I wijze=,blok=,status=,letter=,<sectie>nummer=,commando=] +%I +%I De plaats van het nummer hangt af van het eerste +%I meegegeven argument: +%I +%I enkelzijdig dubbelzijdig +%I +%I links, rechts kantlijn (links of rechts) +%I marge marge (links of rechts) +%I midden midden +%I inlinker, inrechter inlinker, inrechter +%P +%I Met plaats geeft men tevens aan of het nummer in het hoofd +%I of in de voet komt {hoofd,midden}. Met 'nummerscheider' geeft +%I men aan wat er binnen een (eventueel) samengestelde nummer +%I als scheider wordt gezet, standaard: 2-3. Met 'tekstscheider' +%I geeft men aan wat er tussen het paginanummer en een hoofd- of +%I voettekst wordt gezet (in geval van plaatsen op de marge). +%I +%I Liefhebbers kunnen aan 'commando' een eigen commando om het +%I nummer te zetten meegeven. Dit eigen commando krijgt als +%I argument het paginanummer mee. +%I +%I Het is mogelijk een dubbelzijdige tekst met enkelzijdige +%I marges te zetten: +%I +%I \stelnummeringin[variant={enkelzijdig,dubbelzijdig}] +%I +%I In dit geval worden de hoofd- en voetregels dus wel +%I gespiegeld en hebben commando's als \pagina[rechts] betekenis. +%P +%I Als 'conversie' is mogelijk: cijfers, letters, Letters, +%I romeins en Romeins. Als 'status' kan 'start' of 'stop' +%I worden meegegeven. Op deze manier kan het aangeven van +%I een paginanummer worden aan- en uitgezet. +%I +%I Er kan per sectienummer (deelnummer, hoofdstuknummer enz.) +%I worden ingesteld of het zichtbaar is ('ja' of 'nee'). +%I +%I Mogelijke wijzen van nummeren zijn: perdeel of perhoofdstuk. +%P +%I Hoofd- en voetregels blijven achterwege of juist niet na het +%I commando: +%I +%I \geenhoofdenvoetregels +%I \welhoofdenvoetregels +%I +%I of na: +%I +%I \stelhoofdin[lokatie][linkerletter=,rechterletter=, +%I letter=,linkerbreedte=,rechterbreedte=,voor=,na=] +%I \stelvoetin[locatie][linkerletter=,rechterletter=, +%I letter=,linkerbreedte=,rechterbreedte=,voor=,na=] +%I +%I mogelijke lokaties zijn: tekst, marge en rand. Als [lokatie] +%I wordt wegelaten, dan wordt tekst verondersteld. +%I +%I Als de breedte wordt ingesteld, dan wordt de weergegeven +%I tekst zonodig ingekort en gevolgd door ... +%P +%I Het is mogelijk het plaatsen van hoofd- en voetregels +%I stop te zetten: +%I +%I \stelhoofdin[status=] +%I \stelvoetin[status=] +%I +%I Aan status kunnen de olgende aarden worden toegekend: +%I +%I geen de kop/voet vervalt (de tekst schuift omhoog) +%I leeg de kop/voet blijft 1 pagina leeg +%I hoog de kop/voet vervalt 1 pagina leeg (idem) +%I normaal de kop/voet wordt gezet +%I stop de kop/voet blijft vanaf nu leeg +%I start de kop/voet wordt vanaf nu weer gevuld +%I +%I Het is ook mogelijk bij \stelhoofdin en \stelvoetin als +%I parameters [voor=] en [na=] mee te geven. De toegekende +%I commando's worden in dat geval voor en na het hoofd en de +%I de voet uitgevoerd. +%P +%I Boven het hoofd en onder de voet is ook ruimte. Deze kan +%I worden gedefinieerd met vergelijkbare commando's: +%I +%I \stelboventekstenin[...][...][...] +%I \stelondertekstenin[...][...][...] +%I +%I \stelbovenin[...] +%I \stelonderin[...] +%I +%I \geenbovenenonderregels +%I \welbovenenonderregels + +% De onderstaande macro's lijken op het eerste gezicht vrij +% ingewikkeld en omslachtig. Dit is het gevolg van een +% dubbel optioneel zijn van argumenten: zowel het eerste als +% de twee laatste argumenten zijn optioneel. Dit is mede het +% gevolg van een uitbreiding naar marges en randen, waarbij +% upward-compatibiliteit zwaar heeft gewogen. + +\def\dostellayouttekstin[#1][#2][#3]% + {\ifthirdargument + \getparameters[\??tk#1#2][#3]% + \else + \getparameters[\??tk#1\v!tekst][#2]% + \fi + \calculatevsizes} + +\def\stelbovenin {\dotripleempty\dostellayouttekstin[\v!boven]} +\def\stelhoofdin {\dotripleempty\dostellayouttekstin[\v!hoofd]} +\def\steltekstin {\dotripleempty\dostellayouttekstin[\v!tekst]} +\def\stelvoetin {\dotripleempty\dostellayouttekstin[\v!voet]} +\def\stelonderin {\dotripleempty\dostellayouttekstin[\v!onder]} + +\letvalue{\??tk\v!boven\v!tekst\c!status}=\v!normaal +\letvalue{\??tk\v!hoofd\v!tekst\c!status}=\v!normaal +\letvalue{\??tk\v!tekst\v!tekst\c!status}=\v!normaal +\letvalue{\??tk\v!voet \v!tekst\c!status}=\v!normaal +\letvalue{\??tk\v!onder\v!tekst\c!status}=\v!normaal + +\def\geenhoofdenvoetregels% + {\stelhoofdin[\c!status=\v!leeg]% + \stelvoetin[\c!status=\v!leeg]} + +\def\geenbovenenonderregels% + {\stelbovenin[\c!status=\v!leeg]% + \stelonderin[\c!status=\v!leeg]} + +\def\dolimitateteksten#1#2% + {\limitatetext{#2}{\getvalue{#1\c!breedte}}{}} + +\def\doteksten#1#2#3#4% + {\bgroup + \convertargument#4\to\ascii + \doifsomething{\ascii} + {\doattributes{#1#2#3} + {\doifvalue{#1\v!tekst\c!strut}{\v!ja}{\setstrut\strut}% hier! + \doifdefinedelse{\??mk\ascii\c!koppeling} % brrr + {\dolimitateteksten{#1#2#3}{\haalmarkering[\ascii][\v!eerste]}} + {\ConvertConstantAfter\doifelse{\v!paginanummer}{#4} + {\@@plaatspaginanummer} + {\ConvertConstantAfter\doifelse{\v!datum}{#4} + %{\currentdate[\v!dag,\v!maand,\v!jaar]} + {\currentdate} + {\opeenregel\dolimitateteksten{#1#2#3}{#4}}}}}}% + \egroup} + +\def\dodoteksten#1#2#3#4#5#6% + {\doifonevenpaginaelse + {\doteksten{#1}{#2}{#3}{#4}} + {\doteksten{#1}{#2}{#5}{#6}}} + +\def\dodododoteksten[#1][#2][#3][#4][#5][#6]% + {\ifsecondargument + \ifsixthargument + \setvalue{\??tk#1#2\c!linkertekst}% + {\dodoteksten{\??tk#1}{#2}{\c!linker}{#3}{\c!rechter}{#6}}% + \setvalue{\??tk#1#2\c!rechtertekst}% + {\dodoteksten{\??tk#1}{#2}{\c!rechter}{#4}{\c!linker}{#5}}% + \else\iffifthargument + \setvalue{\??tk#1\v!tekst\c!linkertekst}% + {\dodoteksten{\??tk#1}{\v!tekst}{\c!linker}{#2}{\c!rechter}{#5}}% + \setvalue{\??tk#1\v!tekst\c!rechtertekst}% + {\dodoteksten{\??tk#1}{\v!tekst}{\c!rechter}{#3}{\c!linker}{#4}}% + \else\iffourthargument + \setvalue{\??tk#1#2\c!linkertekst}% + {\dodoteksten{\??tk#1}{#2}{\c!linker}{#3}{\c!linker}{#3}}% + \setvalue{\??tk#1#2\c!rechtertekst}% + {\dodoteksten{\??tk#1}{#2}{\c!rechter}{#4}{\c!rechter}{#4}}% + \else + \setvalue{\??tk#1\v!tekst\c!linkertekst}% + {\dodoteksten{\??tk#1}{\v!tekst}{\c!linker}{#2}{\c!linker}{#2}}% + \setvalue{\??tk#1\v!tekst\c!rechtertekst}% + {\dodoteksten{\??tk#1}{\v!tekst}{\c!rechter}{#3}{\c!rechter}{#3}}% + \fi\fi\fi + \else + \dosixtupleempty\dodododoteksten[#1][\v!tekst][][][][]% + \dosixtupleempty\dodododoteksten[#1][\v!marge][][][][]% + \dosixtupleempty\dodododoteksten[#1][\v!rand] [][][][]% + \fi + \dosetpagenumberlocation\@@plaatspaginanummer} + +\def\stelboventekstenin {\dosixtupleempty\dodododoteksten[\v!boven]} +\def\stelhoofdtekstenin {\dosixtupleempty\dodododoteksten[\v!hoofd]} +\def\stelteksttekstenin {\dosixtupleempty\dodododoteksten[\v!tekst]} +\def\stelvoettekstenin {\dosixtupleempty\dodododoteksten[\v!voet]} +\def\stelondertekstenin {\dosixtupleempty\dodododoteksten[\v!onder]} + +\def\@@plaatspaginanummer% + {\doif{\@@nmstatus}{\v!start}% + {{\@@nmcommando{\doattributes{\??nm}{\volledigepaginanummer}}}}} + +\def\@@nmpre#1{\setbox0=\hbox{#1}\ifdim\wd0=\!!zeropoint\else\unhbox0\tfskip\fi} +\def\@@nmpos#1{\setbox0=\hbox{#1}\ifdim\wd0=\!!zeropoint\else\tfskip\unhbox0\fi} + +\def\dodoplaatsteksten#1#2#3#4#5#6% \hsize toegevoegd + {\hbox + {\hbox to \linkerrandbreedte + {\hsize\linkerrandbreedte + \hss\getvalue{\??tk#1\v!rand#2}}% + \hskip\linkerrandafstand + \hskip\pageseparation + \hbox to \linkermargebreedte + {\hsize\linkermargebreedte + \hsmash{\hbox to \linkermargebreedte + {\hss\getvalue{\??tk#1\v!marge#2}}}% + \hsmash{\hbox to \linkermargebreedte + {\hss#5{\??tk#1\v!marge\c!margetekst}}}% + \hss}% let op: \smashed + \hskip\linkermargeafstand + \hbox to \zetbreedte + {\hsize\zetbreedte + \hsmash{\hbox to \zetbreedte + {\@@nmpre{#5{\??tk#1\v!tekst\c!kantlijntekst}}% + \getvalue{\??tk#1\v!tekst#2}\hss}}% + \hsmash{\hbox to \zetbreedte + {\hss\getvalue{\??tk#1\v!tekst#3}\hss}}% + \hsmash{\hbox to \zetbreedte + {\hss\getvalue{\??tk#1\v!tekst#4}% + \@@nmpos{#6{\??tk#1\v!tekst\c!kantlijntekst}}}}% + \hss}% + \hskip\rechtermargeafstand + \hbox to \rechtermargebreedte + {\hsize\rechtermargebreedte + \hsmash{\hbox to \rechtermargebreedte + {\getvalue{\??tk#1\v!marge#4}\hss}}% + \hsmash{\hbox to \rechtermargebreedte + {#6{\??tk#1\v!marge\c!margetekst}\hss}}% + \hss}% let op: \smashed + \hskip\pageseparation + \hskip\rechterrandafstand + \hbox to \rechterrandbreedte + {\hsize\rechterrandbreedte + \getvalue{\??tk#1\v!rand#4}\hss}}} + +\def\doplaatslayoutregel#1#2% + {\ifdim#2>\!!zeropoint\relax % prevents pagenumbers when zero height + \goleftonpage + \hbox + {\setbox0=\vbox to #2 + {\forgetall + \vsize#2 + \normalbaselines + \def\\{ \ignorespaces}% + \def\crlf{ \ignorespaces}% + \getvalue{\??tk#1\v!tekst\c!voor}% + \doifbothsidesoverruled + \dodoplaatsteksten#1\c!linkertekst\c!middentekst\c!rechtertekst + \gobbleoneargument\getvalue + \orsideone + \dodoplaatsteksten#1\c!linkertekst\c!middentekst\c!rechtertekst + \gobbleoneargument\getvalue + \orsidetwo + \dodoplaatsteksten#1\c!rechtertekst\c!middentekst\c!linkertekst + \getvalue\gobbleoneargument + \od + \getvalue{\??tk#1\v!tekst\c!na}% + \kern\!!zeropoint}% keep the \dp, beware of \vtops, never change this! + \dp0=\!!zeropoint + \box0}% + \fi} + +% \stelhoofdin[status=normaal] \titel{NORMAAL} \dorecurse{8}{\input tufte} \pagina +% \stelhoofdin[status=hoog] \titel{HOOG} \dorecurse{8}{\input tufte} \pagina +% \stelhoofdin[status=leeg] \titel{LEEG} \dorecurse{8}{\input tufte} \pagina +% \stelhoofdin[status=geen] \titel{GEEN} \dorecurse{8}{\input tufte} \pagina +% \stelhoofdin[status=stop] \titel{STOP} \dorecurse{8}{\input tufte} \pagina + +\def\plaatslayoutregel#1#2% % handelt o.b.v. tekst + {\ExpandFirstAfter\processaction + [\getvalue{\??tk#1\v!tekst\c!status}] + [ \v!geen=>, + \v!hoog=>, % is reset later on + \v!start=>\setgvalue{\??tk#1\v!tekst\c!status}{\v!normaal}% + \doplaatslayoutregel{#1}{#2}, + \v!stop=>\vskip#2\relax, + \v!leeg=>\setgvalue{\??tk#1\v!tekst\c!status}{\v!normaal}% + \vskip#2\relax, + \v!geenmarkering=>\bgroup + \setgvalue{\??tk#1\v!tekst\c!status}{\v!normaal}% + \let\dohaalmarkering=\nohaalmarkering + \doplaatslayoutregel{#1}{#2}% + \egroup, + \v!normaal=>\doplaatslayoutregel{#1}{#2}, + \s!default=>\doplaatslayoutregel{#1}{#2}, + \s!unknown=>\doplaatslayoutregel{#1}{#2}]} + +\def\resetlayoutregel#1% + {\doifvalue{\??tk#1\v!tekst\c!status}{\v!hoog} + {\setgvalue{\??tk#1\v!tekst\c!status}{\v!normaal}% ! global + \doglobal\calculatevsizes + \global\newlogostrue + \global\newbackgroundtrue}} + +\def\resetlayoutregels% + {\resetlayoutregel\v!boven + \resetlayoutregel\v!hoofd + \resetlayoutregel\v!tekst + \resetlayoutregel\v!voet + \resetlayoutregel\v!onder} + +\def\plaatsbovenregel {\plaatslayoutregel\v!boven\bovenhoogte} +\def\plaatshoofdregel {\plaatslayoutregel\v!hoofd\hoofdhoogte} +\def\plaatstekstregel {\plaatslayoutregel\v!tekst\teksthoogte} +\def\plaatsvoetregel {\plaatslayoutregel\v!voet\voethoogte} +\def\plaatsonderregel {\plaatslayoutregel\v!onder\onderhoogte} + +\def\gettextboxes% elders weghalen + {\bgroup + \setbox0=\vbox + {\mindermeldingen + \calculatereducedvsizes + \swapmargins + \forgetall + \offinterlineskip + \vskip-\bovenhoogte + \vskip-\bovenafstand + \plaatsbovenregel + \vskip\bovenafstand + \plaatshoofdregel + \vskip\hoofdafstand + \plaatstekstregel + \vskip\voetafstand + \plaatsvoetregel + \vskip\onderafstand + \plaatsonderregel + \plaatsversieaanduiding + \vfilll}% + \smashbox0 + \box0 + \egroup} + +\def\@@plaatspaginascheider% + {\doif{\@@nmstatus}{\v!start}% + {\@@nmtekstscheider}} + +% ook rand ondersteunen, iets als: + +% \def\dodosetpagenumberlocation#1#2% +% {\let\somepagenumberlocation=\v!tekst +% \ExpandFirstAfter\processallactionsinset +% [\@@nmplaats] +% [ \v!midden=>\setvalue{\??tk#1\somepagenumberlocation\c!middentekst}{#2}, +% \v!links=>\setvalue{\??tk#1\somepagenumberlocation\c!linkertekst}{#2}, +% \v!rechts=>\setvalue{\??tk#1\somepagenumberlocation\c!rechtertekst}{#2}, +% \v!inlinker=>\setvalue{\??tk#1\v!marge\c!linkertekst}{#2}, +% \v!inrechter=>\setvalue{\??tk#1\v!marge\c!rechtertekst}{#2}, +% \v!inmarge=>\setvalue{\??tk#1\v!marge\ifdubbelzijdig\c!margetekst\else\c!rechtertekst\fi}{#2}, +% \v!marge=>\setvalue{\??tk#1\v!marge\ifdubbelzijdig\c!margetekst\else\c!rechtertekst\fi}{#2}, +% \v!opmarge=>\setvalue{\??tk#1\v!tekst\c!kantlijntekst}{#2}, +% \v!kantlijn=>\setvalue{\??tk#1\v!tekst\c!kantlijntekst}{#2} +% \v!rand=>\let\somepagenumberlocation=\v!rand, +% %\v!marge=>\let\somepagenumberlocation=\v!marge, +% \v!tekst=>\let\somepagenumberlocation=\v!tekst]} + +\def\dodosetpagenumberlocation#1#2% + {\ExpandFirstAfter\processallactionsinset + [\@@nmplaats] + [ \v!midden=>\setvalue{\??tk#1\v!tekst\c!middentekst}{#2}, + \v!links=>\setvalue{\??tk#1\v!tekst\c!linkertekst}{#2}, + \v!rechts=>\setvalue{\??tk#1\v!tekst\c!rechtertekst}{#2}, + \v!inlinker=>\setvalue{\??tk#1\v!marge\c!linkertekst}{#2}, + \v!inrechter=>\setvalue{\??tk#1\v!marge\c!rechtertekst}{#2}, + \v!inmarge=>\setvalue{\??tk#1\v!marge\ifdubbelzijdig\c!margetekst\else\c!rechtertekst\fi}{#2}, + \v!marge=>\setvalue{\??tk#1\v!marge\ifdubbelzijdig\c!margetekst\else\c!rechtertekst\fi}{#2}, + \v!opmarge=>\setvalue{\??tk#1\v!tekst\c!kantlijntekst}{#2}, + \v!kantlijn=>\setvalue{\??tk#1\v!tekst\c!kantlijntekst}{#2}]} + +\def\dosetpagenumberlocation#1% + {\ExpandBothAfter\doifinsetelse{\v!hoofd}{\@@nmplaats,\@@nmin} + {\dodosetpagenumberlocation{\v!hoofd}{#1}} + {\dodosetpagenumberlocation{\v!voet}{#1}}} + +\def\@@nmin {} % kan vervallen (upward compatibility) +\def\@@nmplaats {} % mag {plaats, in} zijn + +\def\dostelnummeringin[#1]% + {\dosetpagenumberlocation\relax + \getparameters[\??nm][#1]% + \preparepaginaprefix{\??nm}% + \enkelzijdigfalse + \dubbelzijdigfalse + \ExpandFirstAfter\processallactionsinset + [\@@nmvariant] + [ \v!enkelzijdig=>\enkelzijdigtrue, + \v!dubbelzijdig=>\dubbelzijdigtrue]% + \ifdubbelzijdig + \trackingmarginnotestrue + \else + \trackingmarginnotesfalse + \fi + \dosetpagenumberlocation\@@plaatspaginanummer + \global\newbackgroundtrue + \global\newlogostrue} + +\def\stelnummeringin% + {\dosingleempty\dostelnummeringin} + +% listig: hangt af van \@@kolijst + +\def\preparepaginaprefix#1% + {\def\dopreparepaginaprefix##1% + {\doifvalue{#1##1\c!nummer}{\v!ja} + {\setvalue{#1\getvalue{\??by##1}\c!nummer}{\v!ja}}}% + \processcommacommand[\@@kolijst]\dopreparepaginaprefix} + +\def\dopaginaprefix#1#2% + {\doifelsevalue{#1#2\c!nummer}{\v!ja}% + {\@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\paginaprefix#1[#2::#3::#4]% kan wat sneller ####1:0: + {\bgroup + \edef\postprefix{#3}% + \def\donexttrackcommando##1% + {\dopaginaprefix{#1}{##1}% + \donexttracklevel{##1}}% + \donexttrackcommando\firstsection + \egroup} + +\def\@@plaatspaginanummer% + {\doif{\@@nmstatus}{\v!start}% + {{\@@nmcommando{\doconvertfont{\@@nmletter}{\volledigepaginanummer}}}}} + +\def\@@plaatspaginascheider% + {\doif{\@@nmstatus}{\v!start}% + {\@@nmtekstscheider}} + +\def\userfolio% naast realfolio + {\nummer[\s!page]} + +\def\pagenumber% + {\userfolio} + +\def\volledigepaginanummer% alleen voor paginanummers !! + {\@@nmlinks + \def\donexttrackcommando##1% + {\doifvalue{\??nm##1\c!nummer}{\v!ja} + {\ifnum\countervalue{\??se##1}>0\relax + \getvalue{##1\c!nummer}\@@nmnummerscheider + \fi}% + \doifsomething{\@@nmtekst} + {\@@nmtekst\@@nmnummerscheider}% + \donexttracklevel{##1}}% + \donexttrackcommando{\firstsection}% + \pagenumber + \@@nmrechts} + +\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. + +% Het commando \newmark\markering genereert +% +% \markering +% +% en het commando \getmarks\markering genereert +% +% \topmarkering +% \botmarkering +% \firstmarkering +% +% voor 'interne' doeleinden zijn beschikbaar: +% +% \prefetchmark[naam] +% \fetchmark[naam][plaats] + +% nog expansie in hoofdmarkering + +\def\hoofdmarkering#1% + {\getvalue{\??mk#1\c!koppeling}} + +\def\dodoresetmarkering#1% + {\expandafter\newmark\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} + +\setvalue{\??mk\v!vorige}{top} +\setvalue{\??mk\v!eerste}{first} +\setvalue{\??mk\v!laatste}{bot} + +\def\dododefinieermarkering[#1][#2]% + {\stelmarkeringin[#1] + [% \c!expansie=\v!nee, scheelt weer een macro + \c!status=\v!start]% + \ontkoppelmarkering[#1]% d.w.z. geen koppeling met secties + \setevalue{\??mk#1\c!koppeling}{#2}% + \expandafter\newmark\csname\??mk#2\endcsname + %\setgvalue{\??mk#2\s!check}{0}% + \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\prefetchmark[#1]% + {%\ifnum\getvalue{\??mk\hoofdmarkering{#1}\s!check}<\realpageno + % \setxvalue{\??mk\hoofdmarkering{#1}\s!check}{\the\realpageno}% + % \expandafter\getmarks\csname\??mk\hoofdmarkering{#1}\endcsname % mag maar eenmaal per pagina + }%\fi} + +\def\fetchmark[#1][#2]% + {\getvalue{\getvalue{\??mk#2}\??mk\hoofdmarkering{#1}}} + +\def\nohaalmarkering[#1][#2]% tzt anders + {} + +\def\dohaalmarkering[#1][#2]% + {\doifvalue{\??mk#1\c!status}{\v!start} + {\bgroup + %\prefetchmark[#1]% + \def\geenmarkering##1{\onbekend\ }% + \doifelsenothing{#2} + {\fetchmark[#1][\v!eerste]} + {\fetchmark[#1][#2]}% + \egroup}} + +\def\haalmarkering% + {\dodoubleargument\dohaalmarkering} + +\def\domarkeer[#1]#2% + {\bgroup + \doifelsevalue{\??mk#1\c!expansie}{\v!ja} + {\expandmarkstrue} + {\expandmarksfalse}% + \getvalue{\??mk\hoofdmarkering{#1}}{#2}% + \egroup} + +\def\markeer% + {\dosingleargument\domarkeer} + +%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{} + +\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} + +\def\dostelsectiein[#1][#2]% + {\getparameters[\??se#1][#2] + \doifelsevalue{\??se#1\c!vorige\c!nummer}{\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{\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!vorige\c!nummer=\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}}} + +% Omdat een markering kan worden herdefinieerd moeten we +% eerst testen of er wel een keten||afhankelijkheid is. + +\def\resetsectionmarks[#1]% + {\ExpandFirstAfter\doifdefinedelse{\??se#1} + {\def\donexttrackcommando##1% + {\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 + +\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% + {\bgroup + \doifelse{#1}{\v!vorige} + {\global\alllevelstrue + \xdef\currentlevel{}% + \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 + \xdef\currentlevel{}} + {\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 + \xdef\currentlevel{}% + \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} + +\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} + +\def\dodosetlocalsectieblok[#1#2][#3]% + {\def\@@sectiontype{#1}% + \def\@@sectieblok{#1#2}% + \def\@@sectieblokken{#3}} + +\def\dosetlocalsectieblok#1#2% + {\@EA\dodosetlocalsectieblok\@EA[#1][#2]} + +\def\doaroundsectieblok#1% + {\doifvaluesomething{\??sb#1\c!pagina} + {\ExpandFirstAfter\pagina[\getvalue{\??sb#1\c!pagina}]}% + \resetsectioncounters[\firstsection]% + \resetsectionmarks[\firstsection]} + +\def\dostartsectieblok#1#2% + {\begingroup + \doaroundsectieblok{#1}% + \dosetlocalsectieblok{#1}{#2}% + \expandafter\csname#2true\endcsname +\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} + +\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 + \setvalue{\??sb#1}% + {\dosetlocalsectieblok{#1}{#2}}% + \setvalue{\e!start#2}% + {\dostartsectieblok{#1}{#2}}% + \setvalue{\e!stop#2}% + {\dostopsectieblok}} + +\def\definieersectieblok% + {\dotripleargument\dodefinieersectieblok} + +\def\sectiebloklabel#1% + {\@EA\ifx\csname#1\@@sectieblok\c!label\endcsname\relax + \else + \labeltext{\getvalue{#1\@@sectieblok\c!label}}% + \fi} + +% BETER: + +\def\sectiebloklabel#1% + {\@EA\ifx\csname\??ko#1\@@sectieblok\c!label\endcsname\relax + \labeltext{#1}% + \else + \labeltext{\getvalue{\??ko#1\@@sectieblok\c!label}}% + \fi} + +\dosetlocalsectieblok{\v!hoofdtekst}{\v!hoofdteksten} + +\def\setsectiontype[#1]% + {\getvalue{\??sb#1}} + +\def\writesection#1#2#3% + {\bgroup + \convertargument#3\to\ascii + \edef\!!stringa{#1}% + \@EA\writestatus\@EA + {\!!stringa} + {\ifsectienummer#2\else(#2)\fi\normalspace\ascii}% + \egroup} + +\def\@@koniveau{1} \def\kopniveau{\@@koniveau} + +% \def\dohandelpaginaafA#1% +% {\ifnum\lastpenalty>0 +% \global\paginageblokkeerdtrue +% \fi +% \witruimte +% \flushsidefloats +% \getvalue{\??ko#1\c!voor}% +% \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}]}}}} +% +% \def\handelpaginaaf#1% +% {\dohandelpaginaafA{#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} + +\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}]}}}} + +\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\dolocalkopsetup#1% koppeling met standaard kopcommando + {\forgetall + \ExpandFirstAfter\steluitlijnenin[\getvalue{\??ko#1\c!uitlijnen}]% + \def\\{\crlf\strut}} + +\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\dosomekop#1[#2]#3% + {\doifelsevalue{\??ko#1\c!eigennummer}{\v!ja} + {\def\next{\doquadruplegroupempty\dodosomekop{#1}{#2}{#3}}} + {\def\next{\fourthargumentfalse\dodosomekop{#1}{#2}{#3}{}}}% + \next} + +\def\dodosomekop#1#2#3#4% + {\iffourthargument + \dododosomekop{#1}[#2]{\sectiebloklabel{#1}}{#3}{#4}% + \else + \dododosomekop{#1}[#2]{\sectiebloklabel{#1}}{\getvalue{\@@sectie\c!nummer}}{#3}% + \fi} + +\def\dododosomekop#1[#2]#3#4#5% % pas met \ExpandFirstAfter op bij twee||taligheid + {\flushingcolumnfloatsfalse + \setsectieenkoppeling{#1}% + \doifelsevalue{\??ko#1\c!prefix}{} + {\kopprefixfalse} + {\kopprefixtrue}% + \doifelsevalue{\??ko#1\c!plaatskop}{\v!ja} + {\plaatskoptrue} + {\plaatskopfalse}% + \doifelsevalue{\??ko#1\c!verhoognummer}{\v!ja} + {\verhoognummertrue} + {\verhoognummerfalse}% + \ifsectienummer + \doifelsevalue{\??sb\@@sectieblok\c!nummer}{\v!ja} + {\doifelsevalue{\??ko#1\c!nummer}{\v!ja} + {\kopnummertrue} + {\kopnummerfalse}} + {\kopnummerfalse}% + \else + \kopnummerfalse + \fi + \ifverhoognummer + \ifplaatskop + \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 + \noindent % ipv \witruimte elders + \doplaatskopnummertekst + {#1} + {\setsectionlistreference{\@@sectie}{#1}% + \ExpandFirstAfter\soortpagina[\@@koppeling]% + \rawreference{\s!sec}{#2}{#4}% + \resetsectionmarks[\@@sectie]% + \doschrijfnaarlijst{\@@koppeling}{#4}{#5}{\v!kop}} + {#3#4} + {#5} + {\markeer[#1]{#5}% }% + \bepaalkopnummer[#1]% + \expanded{\markeer[#1\v!nummer]{\getvalue{\@@sectie\c!nummer}}}}% + \writesection{#1}{#4}{#5}% + \else + \noindent % ipv \witruimte elders + \doplaatskoptekst + {#1} + {\setsectionlistreference{\@@sectie}{#1}% + \ExpandFirstAfter\soortpagina[\@@koppeling]% + \rawpagereference{\s!sec}{#2}% + \resetsectionmarks[\@@sectie]% + \doschrijfnaarlijst{\@@koppeling}{}{#5}{\v!kop}} + {#5} + {\markeer[#1]{#5}% }% + \bepaalkopnummer[#1]% + \expanded{\markeer[#1\v!nummer]{\getvalue{\@@sectie\c!nummer}}}}% + \writesection{#1}{-}{#5}% + \fi + \ifkopprefix + \ExpandFirstAfter\setupreferencing[\c!prefix=\getvalue{\??ko#1\c!prefix}]% + \fi + \dosomebreak\nobreak + \getvalue{\??ko#1\c!na}% + \else + \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]% + \markeer[#1]{#5}% + \bepaalkopnummer[#1]% + \expanded{\markeer[#1\v!nummer]{\getvalue{\@@sectie\c!nummer}}}% + \ExpandFirstAfter\soortpagina[\@@koppeling]% + \ifkopnummer + \rawreference{\s!sec}{#2}{#4}% + \doschrijfnaarlijst{\@@koppeling}{#4}{#5}{\v!kop}% + \writesection{#1}{#4}{#5}% + \else + \rawpagereference{\s!sec}{#2}% + \doschrijfnaarlijst{\@@koppeling}{}{#5}{\v!kop}% + \writesection{#1}{-}{#5}% + \fi + \ifkopprefix + \ExpandFirstAfter\setupreferencing[\c!prefix=\getvalue{\??ko#1\c!prefix}]% + \fi + \fi + \else + \ifplaatskop + \handelpaginaaf{#1}% + \setsectieenkoppeling{#1}% can be changed when [voor=\somehead{..}...] + \getvalue{\??ko#1\c!tussen}% + \noindent % ipv \witruimte elders + \doplaatskoptekst + {#1} + {\rawpagereference{\s!sec}{#2}} + {#5} + {}% + \writesection{#1}{-}{#5}% + \dosomebreak\nobreak + \getvalue{\??ko#1\c!na}% + \else + % do nothing + \fi + \fi + \flushingcolumnfloatstrue} + +% \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% + {\bgroup + \forgetall + %\showcomposition + \mindermeldingen + \postponefootnotes + \def\localkopsetup% + {\dolocalkopsetup{#1}}% + \startsynchronisatie + \snaptogrid\hbox + {\getvalue{\??ko#1\c!commando} + {} % no number + {\doattributes{\??ko#1}{\doattributes{\??ko#1\c!tekst} + {\dontconvertfont + \stelinterliniein + #2% + \getvalue{\??ko#1\c!voorcommando}% + \getvalue{\??ko#1\c!tekstcommando}{\setstrut\begstrut#3\endstrut}% + \getvalue{\??ko#1\c!nacommando}% + \endgraf}}}} + \endgraf + \nointerlineskip + \dosomebreak\nobreak + #4% + \prevdepth\openstrutdepth % \dp\strutbox % ivm grid + \stopsynchronisatie + \egroup + \noindentation} + +\def\doplaatskopnummertekst#1#2#3#4#5% + {\bgroup + \forgetall + %\showcomposition + \mindermeldingen + \postponefootnotes + \def\localkopsetup% + {\dolocalkopsetup{#1}}% + \startsynchronisatie + \snaptogrid\hbox + {\getvalue{\??ko#1\c!commando}% + {\doattributes{\??ko#1}{\doattributes{\??ko#1\c!nummer} + {\getvalue{\??ko#1\c!voorcommando}% + \getvalue{\??ko#1\c!nummercommando}{\setstrut\begstrut#3\endstrut}}}} + {\doattributes{\??ko#1}{\doattributes{\??ko#1\c!tekst} + {\dontconvertfont + \stelinterliniein + #2% + \getvalue{\??ko#1\c!tekstcommando}{\setstrut\begstrut#4\endstrut}% + \getvalue{\??ko#1\c!nacommando}% + \endgraf}}}} + \endgraf + \nointerlineskip + \dosomebreak\nobreak + #5% + \prevdepth\openstrutdepth % \dp\strutbox % important, see comment + \stopsynchronisatie + \egroup + \noindentation} + +\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{\getvalue{\@@sectie\c!nummer}}{0} % kan effienter +% {\getvalue{\@@sectie\c!nummer}}% +% \egroup} +% +% beter : + +\def\huidigekopnummer{0} + +\def\bepaalkopnummer[#1]% + {\bgroup + \setsectieenkoppeling{#1}% + \xdef\huidigekopnummer{\@@sectionvalue{\@@sectie}}% + \egroup} + +\def\dokopnummer[#1]% + {\bgroup + \setsectieenkoppeling{#1}% + \xdef\huidigekopnummer{\@@sectionvalue{\@@sectie}}% + \doifnot{\huidigekopnummer}{0} + {\getvalue{\@@sectie\c!nummer}}% + \egroup} + +\def\kopnummer% + {\dosingleargument\dokopnummer} + +\def\alinea% + {\par} + +\def\plaatskopnormaal#1#2% + {\doifelsenothing{#1} + {\vbox + {\localkopsetup + \noindent + #2}}% + {\setbox0=\hbox{{#1}\hskip0.75em}% + \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 + \raggedcenter + \doifsomething{#1}{\strut#1\par}\begstrut#2}} + +\def\plaatsgeenkop#1#2% + {} + +% 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!pagina=, + \c!hoofd=, + \c!letter=, + \c!nummercommando=, + \c!tekstcommando=, + \c!eigennummer=\v!nee, + \c!nummer=\v!ja, + \c!kleur=, + \c!doorgaan=\v!ja, + \c!plaatskop=\v!ja, + \c!verhoognummer=\v!ja, + \c!commando=\@@plaatskop, + #2]% + \ConvertToConstant\doifnot{#1}{\getvalue{\??ko#1\c!default}} + {\doifsomething{\getvalue{\??ko#1\c!default}} + {%\presetlabeltext[#1=\labeltext{\getvalue{\??ko#1\c!default}}]% + \copyparameters + [\??ko#1][\??ko\getvalue{\??ko#1\c!default}] + [\c!voor,\c!na,\c!commando,\c!pagina,\c!doorgaan,\c!hoofd, + \c!nummer,\c!eigennummer,\c!plaatskop,\c!verhoognummer, + \c!letter,\c!kleur, + %\c!nummerletter,\c!tekstletter, + \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}\v!nummer]}}% + \doifundefined{\??li#1}{\definieerlijst[#1]}} + {\ConvertToConstant\doifelse{#1}{#2} + {\doifundefined{\??li#1}{\definieerlijst[#1]}} + {%\presetlabeltext[#1=\labeltext{#2}]% + \copyparameters + [\??ko#1][\??ko#2] + [\c!niveau,\c!sectie,\c!koppeling,\c!prefix, + \c!voor,\c!na,\c!commando,\c!pagina,\c!doorgaan,\c!hoofd, + \c!nummer,\c!eigennummer,\c!plaatskop,\c!verhoognummer, + \c!letter,\c!kleur, + %\c!nummerletter,\c!tekstletter, + \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}% + {\complexorsimpleempty{#1}}% + \setvalue{\s!complex#1}[##1]% + {\dowithpargument{\dosomekop{#1}[##1]}}} + +\def\definieerkop% + {\dodoubleemptywithset\dodefinieerkop} + +\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 + +\def\dostelkoppenin[#1]% + {\getparameters[\??ko][#1]% + \doifelse{\@@kosectienummer}{\v!ja} + {\sectienummertrue} + {\sectienummerfalse}% + \processaction + [\@@kovariant] + [ \v!normaal=>\def\@@plaatskop{\plaatskopnormaal}, + \v!midden=>\def\@@plaatskop{\plaatskopmidden}, + \v!marge=>\def\@@plaatskop{\plaatskopinmarge}, + \v!inmarge=>\def\@@plaatskop{\plaatskopinmarge}]} + +\def\stelkoppenin% + {\dosingleargument\dostelkoppenin} + +\def\systemsuppliedchapter {\getvalue{\v!hoofdstuk}} +\def\systemsuppliedtitle {\getvalue{\v!titel}} + +\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 +%I Het is mogelijk pagina's te markeren en selectief te +%I verwerken. Markering vindt plaats met het commando: +%I +%I \soortpagina[aanduiding] +%I +%I en selecteren vindt plaats met: +%I +%I \verwerkpagina[aanduiding,...][instelling] +%I +%I waarbij de instelling 'ja' of 'nee' is en meerdere +%I aanduidingen worden gescheiden door een comma. +%P +%I Er kunnen commando's worden gekoppeld aan pagina's: +%I +%I \koppelpagina[aanduiding,...][voor=,na=,optie=] +%I +%I De opgegeven commando's worden voor respectievelijk na het +%I vrijgeven van de pagina uitgevoerd. + +% hier nog uti blokkeren + +\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} + +\newif\iflocation + +\def\ifinteractief{\iflocation} + +\def\previoussectionformat{} +\def\currentsectionformat{} + +\let\updatelistreferences=\relax +\def\updatedlistreferences{} + +\def\setsectionlistreference#1#2% + {\ifnum\countervalue{\??se\previoussection{#1}}>0\relax + \xdef\previoussectionformat{\@@longformatnumber{\previoussection{#1}}}% + \else + \xdef\previoussectionformat{}% + \fi + \xdef\currentsectionformat{\@@longformatnumber{#1}}} + +\def\startlistreferences#1% + {\thisissomeinternal{\s!lst}{#1\currentsectionformat}% + \setxvalue{\v!vorige\c!lokale#1}{\s!lst:#1\previoussectionformat}% + \setxvalue{\c!huidige\c!lokale#1}{\s!lst:#1\currentsectionformat}% + \doifelse{\currentsectionformat}{} + {\setglobalcrossreference + {\v!vorige#1}{}{\realfolio}{}} + {\setglobalsystemreference\rt!list + {\v!vorige#1}{\getvalue{\v!vorige\c!lokale#1}}}% + \def\stoplistreferences{\dostoplistreferences}} + +\def\dostoplistreferences#1% + {\iflijstgeplaatst + \addtocommalist{#1}\updatedlistreferences % nog global (\doglobal) + \global\let\updatedlistreferences=\updatedlistreferences % een noodverbandje + \gdef\updatelistreferences% + {\def\docommando####1% + {\setglobalsystemreference\rt!list + {\v!vorige####1}{\getvalue{\c!huidige\c!lokale####1}}}% + \processcommacommand[\updatedlistreferences]\docommando + \global\let\updatelistreferences=\relax + \gdef\updatedlistreferences{}}% + \fi} + +\def\stoplistreferences% + {\gobbleoneargument} + +% de rest + +\newcount\prefixteller + +\def\referenceprefix{} + +% \def\showlocation #1{#1} +% \def\showcontrastlocation#1#2#3{#3} +% \def\showcoloredlocation #1#2{#2} + + +\def\referencepagenumber[#1]% + {\donottest % nodig i.v.m. scannen {tekst} bij [referentie] in \op + {\paginaprefix\??rf[#1]% + \translatednumber[#1]}} + +%I n=Regels +%I c=\startregels,\stelregelsin +%I c=\startregelnummeren,\stelregelnummerenin +%I c=\crlf +%I c=\startregel,\stopregel,\eenregel,\inregel +%I +%I Het is mogelijk de indeling in regels zoals die in de ruwe +%I tekst wordt gehanteerd af te dwingen. Er wordt in dit +%I geval niet ingesprongen. De regels worden gezet tussen de +%I twee commando's: +%I +%I \startregels +%I +%I ................................................... +%I +%I \stopregels +%P +%I Er kan met betrekking tot regels een en ander worden +%I ingesteld: +%I +%I \stelregelsin[voor=,na=,inspringen=] +%I +%I Aan 'inspringen' kan men 'ja', 'nee', 'even' of 'oneven' +%I toekennen. +%P +%I Het is mogelijk regels te nummeren door ze tussen de +%I volgende commando's te plaatsen: +%I +%I \startregelnummeren +%I \stopregelnummeren +%I +%I Als de regelovergangen moeten worden gehandhaafd, dan moet +%I \startregels voor \startregelnummeren worden gegeven. +%I +%I Het nummeren begint steeds opnieuw bij 1. Als verder moet +%I worden genummeren, dan kan achter \startregelnummeren +%I [verder] worden meegegeven. +%I +%I Standaard worden regels alinea-gewijs genummerd. Als men +%I over een paginagrens wil nummeren, dan moet [opelkaar] +%I worden meegegeven. +%P +%I De wijze van nummeren kan worden ingesteld met: +%I +%I \stelregelnummerenin[conversie=,start=,stap=,letter=, +%I plaats=,breedte=,letter=] +%I +%I Als 'conversie' kan worden meegegeven: cijfers, letters, +%I Letters, romeins of Romeins. Aan 'start' en 'stap' kan +%I een getal worden toegekend, aan 'letter' een trefwoord, +%I aan 'breedte' een maat (bij voorkeur in ex) en aan +%I 'plaats' het trefwoord 'inmarge' of 'intekst'. +%P +%I Er kan worden overgegaan naar een nieuwe regel met: +%I +%I \crlf +%P +%I .... testfase ... +%I +%I \startregel[tag] ... \stopregel[tag] +%I \eenregel[tag] +%I +%I \inregel[tag] + +\newif\ifinregels +\newif\ifregelnummersinmarge + +\def\stelregelsin% + {\dodoubleargument\getparameters[\??rg]} + +\def\startregels% + {\@@rgvoor + \pagina[\v!voorkeur]% + \witruimte + \begingroup + \def\@@rgstepyes{\parindent\!!zeropoint}% + \def\@@rgstepno{\parindent\!!zeropoint}% + \edef\@@rgparindent{\the\parindent}% + \def\@@rglinesteptoggle{1}% + \processaction + [\@@rginspringen] + [ \v!ja=>\def\@@rgstepyes{\parindent\@@rgparindent}% + \def\@@rgstepno{\parindent\@@rgparindent}, + \v!oneven=>\def\@@rgstepyes{\parindent\!!zeropoint}% + \def\@@rgstepno{\parindent\@@rgparindent}, + \v!even=>\def\@@rgstepno{\parindent\!!zeropoint}% + \def\@@rgstepyes{\parindent\@@rgparindent}]% + \inregelstrue + \stelwitruimtein[\v!geen]% + \obeylines + \ignorespaces + \def\obeyedline% + {\par + \ifdim\lastskip>\!!zeropoint + \def\@@rglinesteptoggle{0}% + \else + \increment\@@rglinesteptoggle + \fi + \ifodd\@@rglinesteptoggle\relax + \@@rgstepyes + \else + \@@rgstepno + \fi}% + \GotoPar} + +\def\stopregels% + {\endgroup + \@@rgna} + +\newcount\linenumber +\newcount\linestepper + +% het gebruik van \setlocalreference scheelt een hash entry + +\def\regelweergave% + {\convertnumber\@@rnconversie\linenumber}% + +\def\dostelregelnummerenin[#1]% + {\getparameters + [\??rn] + [\c!start=1, + \c!stap=1, + #1]% + \global\linenumber=1\relax} + +\def\stelregelnummerenin% + {\dosingleargument\dostelregelnummerenin} + +\def\dostartnummerenLINE% % !! \everypar !! + {\EveryPar{\schrijfregelnummer}} + +\def\dostopnummerenLINE% + {\egroup} + +\def\dodoschrijfregelnummer% + {\setbox0=\hbox{\regelweergave}% + \vsmashbox0 + \ifregelnummersinmarge + \llap{\hbox{\box0\hskip\linkermargeafstand}}% + \else + \llap{\hbox to \@@rnbreedte{\box0\hss}}% + \fi} + +\def\complexstartregelnummeren[#1]% + {\doifnotinset{\v!verder}{#1} + {\global\linenumber=1\relax}% + \doifinsetelse{\@@rnplaats}{\v!inmarge,\v!marge} + {\regelnummersinmargetrue} + {\regelnummersinmargefalse}% + \ifregelnummersinmarge\else + \advance\leftskip by \@@rnbreedte\relax + \fi + \ifinregels + \let\dostartnummeren=\dostartnummerenLINE + \let\stopregelnummeren=\dostopnummerenLINE + \def\schrijfregelnummer% + {\doschrijfregelnummer + \global\advance\linenumber by 1\relax}% + \else + \let\dostartnummeren=\dostartnummerenPAR + \let\stopregelnummeren=\dostopnummerenPAR + \def\schrijfregelnummer% + {\global\advance\linenumber by -1\relax + \doschrijfregelnummer}% + \fi + \dostartnummeren} + +\def\startregelnummeren% + {\bgroup + \complexorsimpleempty{startregelnummeren}} + +\def\doschrijfregelnummer% + {\ifnum\linenumber<\@@rnstart\relax + \else + \!!counta=\linenumber + \divide\!!counta by \@@rnstap\relax + \multiply\!!counta by \@@rnstap\relax + \ifnum\!!counta=\linenumber + \doattributes{\??rn}{\dodoschrijfregelnummer}% + \fi + \fi} + +\def\regelreferentie#1[#2]% + {\bgroup + \dimen0=\dp\strutbox + \doif{\@@rnrefereren}{\v!aan} + {\doglobal\increment\linereference + \setxvalue{lrf:n:\linereference}{\@@rnprefix#2}% + \setxvalue{lrf:l:\linereference}{0}% + \setxvalue{lrf:p:\linereference}{#1}% + \advance\dimen0 by \linereference sp}% + \prewordbreak + \vrule \!!width \!!zeropoint \!!depth \dimen0 + \prewordbreak + \egroup} + +\def\eenregel[#1]% + {\regelreferentie0[#1]\ignorespaces} + +\def\startregel[#1]% + {\regelreferentie1[#1]\ignorespaces} + +\def\stopregel[#1]% + {\unskip\regelreferentie2[#1]} + +\def\inregellabel#1% + {\doifinstringelse{--}{#1} + {\labeltext{\v!regels}} + {\labeltext{\v!regel}}} + +\def\inregel#1[#2]% + {\doifelsenothing{#1} + {\in{\inregellabel{\currenttextreference}}[\@@rnprefix#2]} + {\in{#1}[\@@rnprefix#2]}} + +\def\dostartnummerenPAR% + {\beginofshapebox + \doglobal\newcounter\linereference} + +% localcrossref heroverwegen + +\def\dostopnummerenPAR% dp's -> openstrutdepth + {\endofshapebox + \linestepper=0 + \reshapebox{\global\advance\linestepper by 1\relax}% + \global\advance\linenumber by \linestepper + \doifelse{\@@rnrefereren}{\v!aan} + {\reshapebox % We are going back! + {\global\advance\linenumber by -1 + \dimen0=\dp\shapebox + \advance\dimen0 by -\dp\strutbox + \ifdim\dimen0>\!!zeropoint\relax + \dostepwiserecurse{1}{\number\dimen0}{1} + {\setxvalue{lrf:l:\recurselevel}{\the\linenumber}}% + \fi}% + \global\advance\linenumber by \linestepper + \ifnum\linereference>0 % anders vreemde loop in paragraphs+recurse + \dorecurse{\linereference} + {\edef\linereferenceplus{\getvalue{lrf:p:\recurselevel}}% + \ifnum\linereferenceplus=2 + \edef\linereferencename{\getvalue{lrf:n:\recurselevel}}% + \edef\linereferenceline{\getvalue{lrf:l:\recurselevel}}% + \setlocalcrossreference{\referenceprefix\linereferencename}{}{}{\linereferenceline}% + \fi}% + \dorecurse{\linereference} + {\edef\linereferenceplus{\getvalue{lrf:p:\recurselevel}}% + \ifnum\linereferenceplus<2 + \edef\linereferencename{\getvalue{lrf:n:\recurselevel}}% + \edef\linereferenceline{\getvalue{lrf:l:\recurselevel}}% + \ifnum\linereferenceplus=1 +\getreferenceelements{\linereferencename}% + \ifnum\linereferenceline<0\currenttextreference\relax % 0 prevents error + \edef\linereferenceline{\linereferenceline--\currenttextreference}% + \fi + \fi +\setlocalcrossreference{\referenceprefix\linereferencename}{}{}{\linereferenceline}% + \fi}% + \global\let\scratchline=\linenumber % We are going back! + \reshapebox + {\doglobal\decrement\scratchline + \hbox + {\dorecurse{\linereference} + {\edef\linereferencename{\getvalue{lrf:n:\recurselevel}}% +\getreferenceelements{\linereferencename}% + \beforesplitstring\currenttextreference--\at--\to\firstline + \ifnum\firstline=\scratchline\relax + % beter een rawtextreference +\textreference[\linereferencename]{\currenttextreference}% +\setlocalcrossreference{\referenceprefix\linereferencename}{}{}{0}% ==done + \fi}% + \dimen0=\dp\shapebox + \advance\dimen0 by -\dp\strutbox + \ifdim\dimen0>\!!zeropoint\relax + \dp\shapebox=\dp\strutbox + \fi + \schrijfregelnummer\box\shapebox}}% + \else + \reshapebox{\hbox{\schrijfregelnummer\box\shapebox}}% + \fi} + {\reshapebox{\global\advance\linenumber by -1}% + \global\advance\linenumber by \linestepper + \reshapebox{\hbox{\schrijfregelnummer\box\shapebox}}}% + \global\advance\linenumber by \linestepper + \flushshapebox + \egroup} + +\def\crlf% + {\unskip\hfil\break} + +\def\opeenregel% + {\let\crlf=\relax + \let\\=\relax} + +%I n=Opmaak +%I c=\definieeropmaak,\testopmaak,\startstandaardopmaak +%I +%I Het is mogelijk een lege pagina op te maken. Hiertoe wordt +%I een blok gereserveerd met het commando: +%I +%I \definieeropmaak[naam][breedte=,hoogte=,voffset=, +%I hoffset=,pagina=,commandos=,voor=,na=,dubbelzijdig=] +%I +%I Hierbij wordt bij de eerste vier parameters een getal +%I meegegeven (5cm, 24pt, enz.). Met 'pagina' geeft men aan +%I of naar een nieuwe pagina wordt gesprongen (standaard +%I 'rechts'). Aan de 'commandos' kunnen commando's worden +%I toekend die tijdens de opmaak gelden. Aan de laatste twee +%I parameters toegekende commando's worden voor en na het +%I opmaken van de pagina uitgevoerd. De opgemaakte pagina +%I kan worden geselecteerd op naam. Met 'dubbelzijdig' geeft +%I men aan of er een lege achterkant moet worden opgemaakt +%I (standaard: ja). Dit geldt aleen bij dubbelzijdig zetten. +%I +%I Naast het bovenstaande commando is er het commando: +%I +%I \stelopmaakin[naam][instellingen] +%P +%I Na het geven van dit commando zijn twee commando's +%I beschikbaar: \startnaamopmaak en \stopnaamopmaak. Tussen +%I deze twee commando's kunnen zetopdrachten en teksten +%I worden opgenomen. Een en ander wordt op een lege bladzijde +%I gezet. +%I +%I Met het commando \testopmaak kunnen hulplijnen worden +%I opgeroepen. +%I +%I De commando's \startstandaardopmaak en \stopstandaardopmaak +%I maken het opmaken binnen de standaard-layout mogelijk. +%P +%I Eventueel kunnen de volgende twee commando's worden gebruikt +%I om een pagina op te maken met hoofd- en voetregels. +%I +%I \startopmaak +%I ..... +%I \stopopmaak + +\newbox\opmaak + +\def\setopmaaklayout[#1]% + {\stelvoetin [\c!status=\getvalue{\??do#1\c!voetstatus}]% + \stelhoofdin[\c!status=\getvalue{\??do#1\c!hoofdstatus}]% + \steltekstin[\c!status=\getvalue{\??do#1\c!tekststatus}]% + \stelonderin[\c!status=\getvalue{\??do#1\c!onderstatus}]% + \stelbovenin[\c!status=\getvalue{\??do#1\c!bovenstatus}]} + +\def\dododostartopmaak[#1]% + {\doifvaluesomething{\??do#1\c!pagina} + {\ExpandFirstAfter\pagina[\getvalue{\??do#1\c!pagina}]}% + \soortpagina[#1]% + \setopmaaklayout[#1]% + \getvalue{\??do#1\c!commandos}% + \global\setbox\opmaak=\vbox to \getvalue{\??do#1\c!hoogte}% + \bgroup + \forgetall + \hsize=\getvalue{\??do#1\c!breedte}% + \getvalue{\??do#1\c!boven}} + +\def\dododostopopmaak[#1]% + {\getvalue{\??do#1\c!onder}% + \egroup} + +\def\doshipoutopmaak[#1]% + {\bgroup + \getvalue{\??do#1\c!voor}% + \box\opmaak + \setopmaaklayout[#1]% + \pagina + \getvalue{\??do#1\c!na}% + \ifdubbelzijdig + \ifodd\realpageno\else + \processaction + [\getvalue{\??do#1\c!dubbelzijdig}] + [ \v!ja=>\null\pagina\verlaagpaginanummer, + \v!leeg=>\pagebodyornamentsfalse + \null\pagina\verlaagpaginanummer]% + \fi + \fi + \verlaagpaginanummer + \egroup} + +\def\doflushopmaak[#1]% + {\ifverwerken + \ifgeselecteerd + \doshipoutopmaak[#1]% + \fi + \else + \ifgeselecteerd + \else + \doshipoutopmaak[#1]% + \fi + \fi + \ifselecteren + \global\geselecteerdfalse + \fi} + +\def\dodostartopmaak[#1][#2]% + {\begingroup + \stelopmaakin[#1][#2]% + \dododostartopmaak[#1]} + +\def\dodostopopmaak[#1]% + {\dododostopopmaak[#1]% + \doflushopmaak[#1]% + \endgroup} + +\def\dostartopmaak[#1][#2]% + {\iffirstargument + \dodostartopmaak[#1][#2]% + \def\stopopmaak% + {\dodostopopmaak[#1]}% + \else + \pagina + \stelhoofdin[\c!status=\v!leeg] + \stelvoetin[\c!status=\v!leeg] + \vbox to \teksthoogte % nog een topskip optie + \bgroup + \def\stopopmaak% + {\egroup + \eject}% + \fi} + +\def\startopmaak% + {\dodoubleempty\dostartopmaak} + +\def\dodefinieeropmaak[#1][#2]% + {\getparameters + [\??do#1]% + [\c!breedte=\zetbreedte, + \c!hoogte=\teksthoogte, + \c!voffset=\!!zeropoint, + \c!hoffset=\!!zeropoint, + \c!commandos=, + \c!pagina=\v!rechts, + \c!dubbelzijdig=\v!leeg, + \c!voor=, + \c!boven=\vss, + \c!onder=\vss, + \c!na=, + \c!onderstatus=\v!normaal, + \c!bovenstatus=\v!normaal, + \c!tekststatus=\v!normaal, + \c!hoofdstatus=\v!stop, + \c!voetstatus=\v!stop, + #2]% + \setvalue{\e!start#1\e!opmaak}% + {\dodoubleempty\dodostartopmaak[#1]}% + \setvalue{\e!stop#1\e!opmaak}% + {\dodostopopmaak[#1]}} + +\def\definieeropmaak% + {\dodoubleargument\dodefinieeropmaak} + +\def\dostelopmaakin[#1]% + {\getparameters[\??do#1]} + +\def\stelopmaakin% + {\dodoubleargument\dostelopmaakin} + +%I n=Smaller +%I c=\startsmaller,\stelsmallerin +%I +%I Een paragraaf kan smaller gezet worden met behulp van de +%I commando's: +%I +%I \startsmaller[afstand] +%I \stopsmaller +%I +%I Als maat wordt links, rechts, midden of een combinatie +%I hiervan meegegeven. Eventueel wordt geen afstand meegegeven. +%I +%I De linker, rechter of dubbele inspringing kan worden +%I ingesteld met: +%I +%I \stelsmallerin[links=,rechts=,midden=] +%I +%I Enkele voorbeelden van smelelr zetten zijn: +%I +%I \startsmaller[2*links,rechts] +%I \stopsmaller +%I +%I \startsmaller[midden,rechts] +%I \stopsmaller + +\newskip\linkssmaller +\newskip\rechtssmaller +\newskip\middensmaller + +\def\dosinglesmaller#1% + {\dosmaller[#1]} + +\def\dosmaller[#1]% + {\processaction + [#1] + [ \v!links=>\global\advance\linkssmaller by \@@sllinks, + \v!midden=>\global\advance\middensmaller by \@@slmidden, + \v!rechts=>\global\advance\rechtssmaller by \@@slrechts, + \s!unknown=>{\herhaalmetcommando[#1]\dosinglesmaller}]} + +\def\complexstartsmaller[#1]% + {\par + \bgroup + \global\linkssmaller=\!!zeropoint + \global\rechtssmaller=\!!zeropoint + \global\middensmaller=\!!zeropoint + \processcommalistwithparameters[#1]\dosmaller + \advance\leftskip by \linkssmaller + \advance\rightskip by \rechtssmaller + \advance\leftskip by \middensmaller + \advance\rightskip by \middensmaller} + +\def\simplestartsmaller% + {\startsmaller[\v!midden]} + +\def\startsmaller% + {\complexorsimple{startsmaller}} + +\def\stopsmaller% + {\par % else skips forgotten + \egroup} + +\def\stelsmallerin% + {\dodoubleargument\getparameters[\??sl]} + +%I n=Boxen +%I c=\definieerhbox,\cbox,\lbox,\rbox,\sbox +%I +%I Het is mogelijk een tekst in een blok met een vaste +%I omvang te zetten. Dit is vergelijkbaar met het opmaken +%I van een tabel. +%I +%I \hbox?{tekst} (horizontaal blok) +%I +%I De box wordt eerst gedefinieerd met: +%I +%I \definieerhbox[?][maat] +%I +%I Er kan een links, rechts of midden uitgelijnde \vbox worden +%I gezet met de commando: +%I +%I \lbox{tekst\\tekst\\tekst} of \lbox to <maat>{...} +%I \rbox{tekst\\tekst\\tekst} of \rbox to <maat>{...} +%I \cbox{tekst\\tekst\\tekst} of \cbox to <maat>{...} +%I +%I Het commando \\ forceert een overgang naar een nieuwe regel. +%I +%I Een (hoge) box kan een gedwongen hoogte gelijk aan die +%I van een strut krijgen met: +%I +%I \sbox{box} + +\def\dodefinieerhbox[#1][#2]% + {\setvalue{hbox#1}##1% + {\hbox to #2{\begstrut##1\endstrut\hss}}} + +\def\definieerhbox% + {\dodoubleargument\dodefinieerhbox} + +\def\lrcbox#1#2#% + {\vbox#2\bgroup + \let\\=\endgraf + \forgetall#1\let\next=} + +\def\lbox% + {\lrcbox\raggedleft} + +\def\rbox% + {\lrcbox\raggedright} + +\def\cbox% + {\lrcbox\raggedcenter} + +\def\dosetraggedbox#1% + {\processaction + [#1] + [ \v!links=>\def\raggedbox{\lbox}, + \v!rechts=>\def\raggedbox{\rbox}, + \v!midden=>\def\raggedbox{\cbox}, + \v!nee=>\def\raggedbox{\vbox\bgroup\raggedright\let\next=}, + \s!default=>\def\raggedbox{\vbox}, + \s!unknown=>\def\raggedbox{\vbox}]} + +\def\dosetraggedcommand#1% + {\processaction + [#1] + [ \v!links=>\def\raggedcommand{\raggedleft}, + \v!rechts=>\def\raggedcommand{\raggedright}, + \v!midden=>\def\raggedcommand{\raggedcenter}, + \v!nee=>\def\raggedcommand{\raggedright}, + \s!default=>\def\raggedcommand{\raggedcenter}, + \s!unknown=>\def\raggedcommand{}]} + +%I n=Blokken +%I c=\stelplaatsblokkenin,\stelblokkopjesin +%I c=\definieerplaatsblok,\stelplaatsblokin +%I c=\reserveer,\leeg,\plaats,\volledigelijstmet,\plaatslijstmet +%I +%I Figuren, tabellen, grafieken enz. kunnen in de tekst +%I worden geplaatst met het commando: +%I +%I \plaats<bloknaam>[voorkeur][referentie]{titel}{blok} +%I +%I Als voorkeur kan worden opgegeven: +%I +%I hier bij voorkeur op deze plaats in de tekst +%I forceer per se op deze plaats in de tekst +%I pagina op een nieuwe pagina +%I boven bovenaan de huidige pagina +%I onder onderaan de huidige pagina +%I +%I links links in de paragraaf +%I rechts rechts in de paragraaf +%I +%I inlinker in linker marge (gelijke hoogte) +%I inrechter in rechter marge (gelijke hoogte) +%I inmarge in linker/rechter marge (gelijke hoogte) +%I marge in de marge +%P +%I Als er op de huidige bladzijde geen plaats is, dan wordt +%I standaard de figuur verplaatst (eerste vier opties) en/of +%I wordt overgegaan naar een nieuwe bladzijde (laatste twee +%I opties. +%I +%I Men kan plaatsen afdwingen door het trefwoord altijd +%I mee te geven: \plaats[hier,altijd][]{}{}. Er zijn dan +%I twee runs nodig, omdat de nummering van de blokken moet +%I worden aangepast. +%I +%I Als in plaats van een titel 'geen' wordt meegegeven, wordt +%I geen titel geplaatst. +%I +%I Als het blok nog onbekend is, kan in plaats van het blok +%I een van de volgende commando's worden meegegeven: +%I +%I \leeg<bloknaam> +%I \lege<bloknaam> +%P +%I Het is mogelijk ruimte voor een blok te reserveren: +%I +%I \reserveer<bloknaam>[hoogte=,breedte=,kader=][voorkeur] +%I [referentie]{titel} +%I +%I Beide commando's kunnen ook gegeven worden zonder [], +%I dus in de vorm +%I +%I \plaats<bloknaam>{titel}{blok} +%I \reserveer<bloknaam>{titel} +%I +%I Ten behoeve van een consistente verwijzing wordt het +%I commando: +%I +%I \in<bloknaam>[referentie] +%I +%I gedefinieerd. Dit levert in de tekst op: +%I +%I 'in <bloknaam> <nummer>' +%P +%I Blokken kunnen worden gedefinieerd met het commando: +%I +%I \definieerplaatsblok[blok][blokken] +%I +%I Hierna zijn de volgende commando's beschikbaar: +%I +%I \plaatsblok[plaats][referentie]{titel}{blok} +%I \reserveerblok[afmetingen][plaats][referentie]{titel} +%I \leegblok +%I +%I Het is mogelijk een en ander in te stellen met het +%I commando: +%I +%I \stelplaatsblokin[blok][hoogte=,breedte=,kader=, +%I bovenkader=,onderkader=,linkerkader=,rechterkader=, +%I paginaovergangen=] +%I +%I De hoogte en breedte hebben betrekking op de te reserveren +%I ruimte. +%P +%I Naast de eerder genoemde commando's zijn nog beschikbaar: +%I +%I \plaatslijstmetblokken +%I \volledigelijstmetblokken +%I +%I en een (extra) commando om tekst naast een blok (hier met +%I de naam 'blok') te plaatsen: +%I +%I \startbloktekst[plaats][referentie]{kop}{blok} +%I ... +%I \stopbloktekst +%I +%I Mogelijke plaatsen zijn 'links', 'rechts', 'hoog', 'laag' en +%I 'midden'. Ook is een combinatie van deze instellingen +%I mogelijk, bijvoorbeeld [links,hoog]. De instelling 'offset' +%I resulteert in een verschuiving van 1 regel. +%P +%I Blokken die tussen de tekst staan kunnen links, rechts of in +%I het midden worden uitgelijnd. De plaats wordt ingesteld met: +%I +%I \stelplaatsblokkenin[plaats=,breedte=,kader=,bovenkader=, +%I onderkader=,linkerkader=,rechterkader=,offset=,voorwit=, +%I nawit=,marge=] +%I +%I De genummerde kopjes bij blokken kunnen worden ingesteld +%I met: +%I +%I \stelblokkopjesin[plaats=,voor=,tussen=,na=,letter=, +%I kopletter=,breedte=,nummer=,uitlijnen=] +%I +%I waarbij als plaats kan worden meegegeven: 'boven', 'onder', +%I 'geen', 'hoog', 'laag' of 'midden'. Als breedte kan 'passend' +%I of 'max' worden meegegeven. De parameter nummer kan 'ja' of +%I 'nee' zijn. Als breedte=max, dan wordt het kopje over de +%I hele breedte geplaatst. In dat geval kan uitlijnen worden +%I ingesteld: 'links', 'midden' of 'rechts'. +%P +%I Als er geen plaats is, worden plaatsblokken tijdelijk +%I achtergehouden. De opgespaarde blokken worden op de +%I volgende bladzijde(n) geplaatst. Dit plaatsen is te +%I beinvloeden met: +%I +%I \stelplaatsblokkenin[nboven=,nonder=,nregels=] +%I +%I Standaard worden maximaal 2 blokken bovenaan de +%I bladzijde geplaatst en 0 blokken onder. Er wordt overgegaan +%I op een nieuwe bladzijde als het aantal regels groter is +%I dan 4. Deze waarden kunnen worden ingesteld. +%P +%I Kopjes boven lijsten en labels voor nummers kunnen worden +%I ingesteld met de elders beschreven commando's: +%I +%I \stellabeltekstin[label=...] +%I \stelkoptekstin[tekst=...] +%I +%I Standaard zijn deze ingesteld op de opgegeven namen. + +\def\stelplaatsblokkenin% + {\dodoubleargument\getparameters[\??bk]} + +\def\stelblokkopjesin% + {\dodoubleargument\getparameters[\??kj]}% + +\def\dostelplaatsblokin[#1][#2]% + {\getparameters[\??fl#1][#2]} + +\def\stelplaatsblokin% + {\dodoubleargument\dostelplaatsblokin} + +\def\dostelblokkopjein[#1][#2]% + {\getparameters[\??kj#1][#2]} + +\def\stelblokkopjein% + {\dodoubleargument\dostelblokkopjein} + +\def\doleegblok#1% + {\localframed + [\??fl#1][\c!kader=\v!aan]% + {\getmessage{\m!floatblocks}{12}}} + +\def\docomplexplaatsblok[#1][#2][#3]#4% + {\flushfootnotes + \ifmargeblokken + \doifinset{\v!marge}{#2} + {\bgroup + \everypar{\egroup\the\everypar}% + \hsize=\@@mbbreedte}% + \fi + \global\insidefloattrue + \dowithnextbox + {\docompletefloat + {#1}{#3}{#1}{#2}{\labeltext{#1}}{#4} + {\box\nextbox}}% + \vbox} + +\def\docomplexstarttekstblok[#1][#2][#3]% + {\flushfootnotes + \flushsidefloats % hoort eigenlijk niet hier + \docomplexplaatsblok[#1][\v!tekst,#2,\v!links][#3]} + +\def\docomplexreserveerblok[#1][#2][#3][#4]#5% + {\getvalue{\e!plaats#1}[#3][#4]{#5}{\localframed[\??fl#1][#2]{#1}}} + +\def\docomplexstartreserveertekstblok[#1][#2][#3][#4]% + {\flushsidefloats % hoort eigenlijk niet hier + \docomplexreserveerblok[#1][#2][\v!tekst,#3,\v!links][#4]} + +\def\dodefinieerplaatsblok[#1][#2]% #1=naam #2=meervoud + {\presetlocalframed[\??fl#1]% + \stelplaatsblokin + [#1] + [\c!breedte=15\korpsgrootte, + \c!hoogte=10\korpsgrootte, + \c!kader=\@@bkkader, + \c!straal=\@@bkstraal, + \c!hoek=\@@bkhoek, + \c!achtergrond=\@@bkachtergrond, + \c!achtergrondraster=\@@bkachtergrondraster, + \c!achtergrondkleur=\@@bkachtergrondkleur, + \c!bovenkader=\@@bkbovenkader, + \c!onderkader=\@@bkonderkader, + \c!linkerkader=\@@bklinkerkader, + \c!rechterkader=\@@bkrechterkader, + \c!paginaovergangen=]% + \stelblokkopjein + [#1] + [\c!plaats=\@@kjplaats, + %\c!voor=\@@kjvoor, + \c!tussen=\@@kjtussen, + %\c!na=\@@kjna, + \c!breedte=\@@kjbreedte, + \c!kopletter=\@@kjkopletter, + \c!letter=\@@kjletter, + \c!kleur=\@@kjkleur, + \c!uitlijnen=\@@kjuitlijnen, + \c!nummer=\@@kjnummer, + \c!wijze=\@@kjwijze, + \c!blokwijze=\@@kjblokwijze, + \c!sectienummer=\@@kjsectienummer, + \c!conversie=\@@kjconversie]% + \doorlabelen + [#1] + [\c!tekst=#1, + \c!plaats=\v!intekst, + \c!wijze=\getvalue{\??kj#1\c!wijze}, + \c!blokwijze=\getvalue{\??kj#1\c!blokwijze}, + \c!sectienummer=\getvalue{\??kj#1\c!sectienummer}, + \c!conversie=\getvalue{\??kj#1\c!conversie}]% + \presetlabeltext[#1=\Woord{#1}~]% + \presetheadtext[#2=\Woord{#2}]% + \definieerlijst[#1]% + \setvalue{\e!plaats\e!lijstmet#2}% + {\dodoubleempty\doplaatslijst[#1]}% + \setvalue{\e!volledige\e!lijstmet#2}% + {\dotripleempty\dodovolledigelijst[#1][#2]}% + \setvalue{\e!plaats#1}% + {\dotripleempty\docomplexplaatsblok[#1]}% + \setvalue{\e!reserveer#1}% + {\doquadrupleempty\docomplexreserveerblok[#1]}% + \setvalue{\e!start#1\e!tekst}% + {\dotripleempty\docomplexstarttekstblok[#1]}% + \setvalue{\e!stop#1\e!tekst}% + {\dostoptextfloat}% + \setvalue{\e!start\e!reserveer#1\e!tekst}% + {\doquadrupleempty\docomplexstartreserveertekstblok[#1]}% + \setvalue{\e!stop\e!reserveer#1\e!tekst}% + {\dostoptextfloat}% + \setvalue{\e!lege#1}% + {\doleegblok{#1}}% + \setvalue{\e!leeg#1}% + {\doleegblok{#1}}} + +%\setvalue{\c!in#1}[##1]% +% {\c!in\normalspace\in{\labeltext{#1}}[##1]}} + +\def\definieerplaatsblok% + {\dodoubleargument\dodefinieerplaatsblok} + +% De onderstaande macro's ondersteunen het zetten van tekst +% rond figuren. De macro's zijn ontworpen door Daniel Comenetz +% en gepubliceerd in TUGBoat Volume 14 (1993), No. 1: Anchored +% Figures at Either Margin. De macro's zijn slechts op enkele +% punten door mij aangepast. + +% afhankelijke variabelen +% +% \overgap vervangen door \floatsidetopskip +% \sidegap vervangen door \floatsideskip +% \undergap vervangen door \floatsidebottomskip +% +% \prskp vervangen door \tussenwit + +% toegevoegde macro's/aanroepen +% +% \logsidefloat : loginformatie +% \flushsidefloats : nodig voor koppen + +% recente wijzigingen: +% +% namen aangepast: \float... enz. i.p.v. \pic + +% Pas op: \EveryPar{\EveryPar{}\margetitel{whatever}} +% \plaatsfiguur[links]{}{} moet goed gaan. In dat geval +% begint de tekst terecht wat lager. + +\newdimen\sidefloatheight % includes the topskip +\newdimen\sidefloatwidth +\newdimen\sidefloathsize +\newdimen\sidefloatvsize \def\nofloatvsize{-1pt } + +\newbox\floatbottom + +\newif\ifrightfloat +\newif\ifmarginfloat +\newif\ifroomforfloat +\newif\iffloatshort +\newif\iffloatflag +\newif\iffloatrighteqo +\newif\iffloatlefteqo + +\let\floatrighteqo=\eqno +\let\floatleftleqo=\leqno + +% Watch it! + +\everypar ={\flushfootnotes\checksidefloat\checkindentation} + +% Watch it even more! In inner, gaat't mis omdat daar +% pagetotal enz niet zijn aangepast. Inner kan overigens niet +% betrouwbaar worden getest! + +\everypar ={\flushfootnotes\ifinner\else\checksidefloat\fi\flushmargincontents\checkindentation} +\neverypar ={}%\autopostponefootnotes} +\everydisplay={\flushfootnotes\adjustsidefloatdisplaylines} + +\def\flushsidefloats% + {\par + \!!heighta=\sidefloatvsize + \advance\!!heighta by -\pagetotal + \ifdim\!!heighta>\!!zeropoint + \witruimte % nog checken op interferentie + \kern\!!heighta + \fi + \global\sidefloatvsize=\nofloatvsize + \global\floatflagfalse} + +\def\flushsidefloatsafterpar% + {\xdef\oldpagetotal{\the\pagetotal}% + \gdef\checksidefloat% + {\dochecksidefloat + \ifdim\oldpagetotal=\pagetotal \else + \xdef\checksidefloat{\dochecksidefloat}% + \flushsidefloats + \fi}} + +\let\logsidefloat=\relax + +\def\pushpenalties% + {\widowpenalty=1 + \clubpenalty=2 + \brokenpenalty=1 + \let\pushpenalties=\relax + \edef\poppenalties% + {\widowpenalty=\the\widowpenalty + \clubpenalty=\the\clubpenalty + \brokenpenalty=\the\brokenpenalty}} + +\let\poppenalties=\relax + +\def\restorepenalties% + {\ifnum\outputpenalty=\!!tenthousand\relax + \else + \penalty\outputpenalty + \fi} + +\def\sidefloatoutput% + {\iffloatshort + \unvbox\normalpagebox + \setbox\floatbottom=\lastbox + \ifdim\wd\floatbottom>\sidefloathsize + \penalty-201 + \box\floatbottom + \else + \ifvoid\floatbottom + \else + \restoreleftindent + \ifdim\wd\floatbottom<\sidefloathsize + \parskip=\!!zeropoint + %\noindent + \vadjust{\penalty-1}% + \iffloatlefteqo + \global\floatlefteqofalse + \else + \global\advance\sidefloathsize by -\wd\floatbottom + \iffloatrighteqo + \global\floatrighteqofalse + \else + \global\divide\sidefloathsize by 2 + \fi + \hskip\sidefloathsize + \fi + \fi + \box\floatbottom + \restorepenalties + \fi + \fi + \global\holdinginserts=0 + \global\floatshortfalse + \else + \finaloutput\unvbox\normalpagebox + \global\sidefloatvsize=\nofloatvsize + \poppenalties + \fi} + +\def\restoreleftindent% + {\ifrightfloat + \else + \parskip=\!!zeropoint + \noindent + \vadjust{\penalty-1}% + \global\hskip\sidefloatwidth + \fi} + +\def\eqno% + {\iffloatshort + \global\floatrighteqotrue + \fi + \floatrighteqo} + +\def\leftmarginfloat#1% + {\global\rightfloatfalse\marginfloattrue\putsidefloat{#1}} + +\def\rightmarginfloat#1% + {\global\rightfloattrue\marginfloattrue\putsidefloat{#1}} + +\def\leftfloat#1% + {\global\rightfloatfalse\marginfloatfalse\putsidefloat{#1}} + +\def\rightfloat#1% + {\global\rightfloattrue\marginfloatfalse\putsidefloat{#1}} + +\def\putsidefloat#1% + {\par + \witruimte + \previoussidefloat + \stallsidefloat + \setbox\floatbox=\hbox{\vbox{\vskip\sidefloattopoffset#1}} + \measuresidefloat + \ifroomforfloat + \setsidefloat + \else + \tosssidefloat + \measuresidefloat + \stallsidefloat + \setsidefloat + \fi} + +\def\progresssidefloat% + {\!!heighta=\sidefloatvsize + \iffloatflag + \advance\!!heighta by -\dimen3 + \global\floatflagfalse + \else + \advance\!!heighta by -\pagetotal + \fi} + +\def\tosssidefloat% + {\vfill\eject} + +\def\measuresidefloat% + {\global\floatflagtrue + \dimen3=\pagetotal + \ifmarginfloat + \global\sidefloatwidth=\!!zeropoint + \else + \global\sidefloatwidth=\wd\floatbox + \global\advance\sidefloatwidth by \floatsideskip + \fi + \global\sidefloathsize=\hsize + \global\advance\sidefloathsize by -\sidefloatwidth + \global\sidefloatheight=\ht\floatbox +\global\advance\sidefloatheight by \dp\floatbox + \global\advance\sidefloatheight by \sidefloattopskip + \global\sidefloatvsize=\sidefloatheight + \global\advance\sidefloatvsize by \dimen3 + \dimen0=\sidefloatvsize +% \advance\dimen0 by -\baselineskip + \ifdim\dimen0>.99\pagegoal \relax + \roomforfloatfalse + \else + \dimen0=\pagegoal + \advance\dimen0 by -\sidefloatvsize + \ifdim\dimen0<\sidefloatbottomskip + \global\advance\sidefloatvsize by \dimen0 + \global\floatshorttrue + \pushpenalties + \holdinginserts=1 + \else + \global\advance\sidefloatvsize by \sidefloatbottomskip + \global\floatshortfalse + \fi + \roomforfloattrue + \fi} + +\def\setsidefloat% + {\vbox{\strut}\vskip-\lineheight + \kern\sidefloattopskip + \oldprevdepth=\prevdepth + \nointerlineskip + \bgroup + \everypar={}% + \parskip=\!!zeropoint + \logsidefloat + \ifrightfloat + \hfill + \ifmarginfloat + \rlap{\hskip\rechtermargeafstand\unhbox\floatbox}% + \else + \unhbox\floatbox + \fi + \else + \noindent + \ifmarginfloat + \llap{\unhbox\floatbox\hskip\linkermargeafstand}% + \else + \unhbox\floatbox + \fi + \hfill + \fi + \egroup + \par + \kern-\sidefloatheight + \penalty10001 + \normalbaselines + \prevdepth=\oldprevdepth + %\noindent + \resetsidefloatparagraph + \ignorespaces} + +\newcount\sidefloatparagraph + +\def\iffirstsidefloatparagraph% + {\ifnum\sidefloatparagraph=1\relax} + +\def\setsidefloatparagraph% + {\global\advance\sidefloatparagraph by 1\relax} + +\def\resetsidefloatparagraph% + {\global\sidefloatparagraph=0\relax} + +\def\dochecksidefloat% + {\progresssidefloat + \ifdim\!!heighta>\!!zeropoint + \advance\!!heighta by \sidefloatbottomskip + \!!counta=\!!heighta + \divide\!!counta by \baselineskip + \ifnum\!!counta>0 + \ifrightfloat + \hangindent=-\sidefloatwidth + \else + \hangindent=\sidefloatwidth + \fi + \hangafter=-\!!counta + \fi + \setsidefloatparagraph + \else + \resetsidefloatparagraph + \fi + \parskip=\tussenwit} + +\def\checksidefloat% + {\dochecksidefloat} + +\def\doadjustsidefloatdisplaylines% + {\par + \vskip-\parskip + \noindent + \ignorespaces} + +\def\adjustsidefloatdisplaylines% + {\aftergroup\doadjustsidefloatdisplaylines} + +\def\previoussidefloat% + {\progresssidefloat + \ifdim\!!heighta>\!!zeropoint \relax + \iffloatshort + \global\floatshortfalse + \tosssidefloat + \else + \kern\!!heighta + \fi + \fi} + +\def\stallsidefloat% + {\!!counta=\pageshrink + \divide\!!counta by \baselineskip + \advance\!!counta by 1 + \parskip=\!!zeropoint + \dorecurse{\!!counta}{\line{}} + \kern-\!!counta\baselineskip + \penalty0\relax} + +% De onderstaande macro's zijn verantwoordelijk voor het plaatsen +% van floats. De macro's moeten nog worden aangepast en +% uitgebreid: +% +% - nofloatpermitted : top, bot en mid counters en geen topins +% als reeds midfloat of botfloat +% +% - links, rechts, midden als niet hangend + +\newif\ifsomefloatwaiting \somefloatwaitingfalse +\newif\ifroomforfloat \roomforfloattrue +\newif\ifnofloatpermitted \nofloatpermittedfalse +\newif\iffloatsonpage \floatsonpagefalse + +\newcount\totalnoffloats \totalnoffloats=0 +\newcount\savednoffloats \savednoffloats=0 +\newcount\noffloatinserts \noffloatinserts=0 + +\newbox\floatlist + +\newinsert\botins + +\skip\botins=\!!zeropoint +\count\botins=\!!thousand +\dimen\botins=\maxdimen + +\newdimen\topinserted +\topinserted=\!!zeropoint + +\newdimen\botinserted +\botinserted=\!!zeropoint + +\newif\ifflushingfloats +\flushingfloatsfalse + +\newbox\floattext + +\newdimen\floattextwidth +\newdimen\floattextheight + +\newbox\floatbox + +\newdimen\floatwidth +\newdimen\floatheight + +% Er wordt bij \v!altijd als dat nodig is hernummerd. +% Daarbij wordt gebruik gemaakt van de opgeslagen nummers en +% volgorde. + +\definetwopasslist{\s!float} + +\def\dofloatreference% + {\doglobal\increment\numberedfloat + \edef\dodofloatreference% + {\writeutilitycommand% + {\twopassentry% + {\s!float}% + {\numberedfloat}% + {\hetnummer}}}% + \dodofloatreference} + +\def\redofloatorder#1% + {\doglobal\increment\nofplacedfloats\relax + \gettwopassdata{\s!float}% + \iftwopassdatafound + \doifnot{\hetnummer}{\twopassdata} + {\edef\oldhetnummer{\hetnummer}% + \xdef\hetnummer{\twopassdata}% + \showmessage + {\m!floatblocks}{1} + {\nofplacedfloats,#1 \oldhetnummer,\hetnummer}}% + \fi} + +% In \dofloatinfomessage wordt {{ }} gebruikt omdat anders +% binnen \startuitstellen...\stopuitstellen geen goede +% melding in de marge volgt: \ifinner is dan namelijk true. + +\def\dofloatinfomessage#1#2#3% + {\bgroup + \showmessage{\m!floatblocks}{#2}{#3}% + \@EA\floatinfo\@EA#1\@EA{\currentmessagetext}% + \egroup} + +\def\dosavefloatinfo% + {\dofloatinfomessage{>}{2}{\the\totalnoffloats}} + +\def\dofloatflushedinfo% + {\!!counta=\totalnoffloats\relax + \advance\!!counta by -\savednoffloats\relax% + \dofloatinfomessage{<}{3}{\the\!!counta}} + +\def\doinsertfloatinfo% + {\dofloatinfomessage{<}{4}{\the\totalnoffloats}} + +% ook voetnoten saven + +\def\dosavefloat% + {\global\setbox\floatlist=\vbox + {\nointerlineskip + \box\floatbox\relax + \unvbox\floatlist}% + \global\advance\savednoffloats by 1\relax + \global\somefloatwaitingtrue + \dosavefloatinfo} + +\def\doresavefloat% + {\global\setbox\floatlist=\vbox + {\nointerlineskip + \unvbox\floatlist + \box\floatbox}% + \global\advance\savednoffloats by 1\relax + \global\somefloatwaitingtrue} + +\def\doreversesavefloat% + {\global\setbox\floatlist=\vbox + {\nointerlineskip + \unvbox\floatlist + \box\floatbox}% + \global\advance\savednoffloats by 1\relax + \global\somefloatwaitingtrue + \dosavefloatinfo} + +\def\checkwaitingfloats#1% + {\ifsomefloatwaiting + \doifinsetelse{\v!altijd}{#1} + {\showmessage{\m!floatblocks}{5}{}} + {\doflushfloats}% + \fi} + +\def\doflushfloats% + {\global\floatsonpagefalse + \global\flushingfloatstrue + \ifsomefloatwaiting + \par + \ifvmode\prevdepth=\maxdimen\fi % prevents whitespace + \dodoflushfloats + \fi + \global\savednoffloats=0 + \global\somefloatwaitingfalse + \global\flushingfloatsfalse} + +\def\dodoflushfloats% moet nog beter: als precies passend, niet onder baseline + {\ifsomefloatwaiting + \bgroup % \box\floatbox can be in use! + \dogetfloat + %\forgetall % NJET! + \witruimte + \blanko[\@@bkvoorwit] + \flushfloatbox + %\ifnum\savednoffloats>1 % REMOVED + %\else + \blanko[\@@bknawit] + %\fi + \egroup + \dofloatflushedinfo + \expandafter\dodoflushfloats + \fi} + +\newbox\globalscratchbox + +\def\dogetfloat% + {\ifsomefloatwaiting + \global\setbox\floatlist=\vbox + {\unvbox\floatlist + \global\setbox\globalscratchbox=\lastbox}% + \setbox\floatbox=\box\globalscratchbox % local ! + \global\advance\savednoffloats by -1\relax + \ifnum\savednoffloats=0\relax + \global\somefloatwaitingfalse + \fi + \else + \global\savednoffloats=0\relax + \global\setbox\floatbox=\box\voidb@x + \fi} + +\def\dotopfloat% + {\ifdim\topinserted=\!!zeropoint\relax + \topofinserttrue + \else + \topofinsertfalse + \fi + \global\advance\topinserted by \ht\floatbox + \global\advance\topinserted by \dp\floatbox + \global\advance\topinserted by \floatbottomskip + \insert\topins + {\forgetall + \iftopofinsert + \kern-\lineskip\par\prevdepth=\maxdimen + \else + %\blanko[-\@@bknawit,\@@bkvoorwit]% inserts can't look back + \betweenfloatblanko + \fi + \flushfloatbox + \blanko[\@@bknawit]}% + \doinsertfloatinfo} + +% \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 + \ifdim\topinserted=\!!zeropoint\relax + \topofinserttrue + \else + \topofinsertfalse + \fi + \global\advance\topinserted by \ht\floatbox + \global\advance\topinserted by \dp\floatbox + \global\advance\topinserted by \floatbottomskip\relax + \ifdim\topinserted<\teksthoogte\relax + \xdef\totaltopinserted{\the\topinserted}% + \insert\topins + {\forgetall + \iftopofinsert + \kern-\lineskip\par\prevdepth=\maxdimen + \else + %\blanko[-\@@bknawit,\@@bkvoorwit]% inserts can't look back + \betweenfloatblanko + \fi + \flushfloatbox + \blanko[\@@bknawit]}% + \ifsomefloatwaiting + \advance\noffloatinserts by 1 + \else + \noffloatinserts=\noftopfloats\relax + \fi + \dofloatflushedinfo + \else + \doresavefloat + \noffloatinserts=\noftopfloats\relax + \fi + \else + \ifsomefloatwaiting + \showmessage{\m!floatblocks}{6}{\the\noftopfloats}% + \fi + \let\dodosettopinserts=\relax + \fi + \dodosettopinserts} + +\def\dosettopinserts% + {\bgroup + \ifsomefloatwaiting + \noffloatinserts=0\relax + \let\totaltopinserted=\!!zeropoint\relax + \dodosettopinserts + \ifnum\@@bknonder=0\relax + \ifnum\@@bknregels>0\relax + \ifdim\totaltopinserted>\!!zeropoint\relax + \dimen0=\lineheight + \dimen0=\@@bknregels\dimen0\relax + \advance\dimen0 by \totaltopinserted\relax + \ifdim\dimen0>\teksthoogte + \showmessage{\m!floatblocks}{8}{\@@bknregels}% + \vfilll\eject + \fi + \fi + \fi + \fi + \fi + \egroup} + +\def\dodosetbotinserts% + {\ifnum\noffloatinserts<\nofbotfloats\relax + \dogetfloat + \global\advance\botinserted by \ht\floatbox\relax + \global\advance\botinserted by \dp\floatbox\relax + \global\advance\botinserted by \floattopskip\relax + \ifdim\botinserted<\pagegoal\relax + \insert\botins + {\forgetall + \blanko[\@@bkvoorwit]% + \flushfloatbox}% + \ifsomefloatwaiting + \advance\noffloatinserts by 1 + \else + \noffloatinserts=\nofbotfloats + \fi + \dofloatflushedinfo + \else + \doresavefloat + \noffloatinserts=\nofbotfloats\relax + \fi + \global\nofloatpermittedtrue % vgl topfloats s! + \else + \ifsomefloatwaiting + \showmessage{\m!floatblocks}{7}{\the\nofbotfloats}% + \fi + \let\dodosetbotinserts=\relax + \fi + \dodosetbotinserts} + +\def\dosetbotinserts% + {\bgroup + \ifsomefloatwaiting + \noffloatinserts=0\relax + \dodosetbotinserts + \fi + \egroup} + +\def\dobotfloat% + {\global\advance\botinserted by \ht\floatbox + \global\advance\botinserted by \dp\floatbox + \global\advance\botinserted by \floattopskip + \insert\botins + {\forgetall + \blanko[\@@bkvoorwit]% + \flushfloatbox}% + %\global\nofloatpermittedtrue + \doinsertfloatinfo} + +\def\dosetbothinserts% + {\ifflushingfloats + \global\topinserted=\!!zeropoint\relax + \global\botinserted=\!!zeropoint\relax + \else + \global\topinserted=\!!zeropoint\relax + \dosettopinserts + \global\botinserted=\topinserted\relax + \dosetbotinserts + \fi} + +\def\dotopinsertions% + {\ifvoid\topins\else + \ifgridsnapping + %\topsnaptogrid{\box\topins} + \box\topins % already snapped + \else + \unvbox\topins + \fi + \fi + \global\topinserted=\!!zeropoint\relax} + +\def\dobotinsertions% + {\ifvoid\botins\else + \ifgridsnapping + \snaptogrid\hbox{\box\botins} + \else + \unvbox\botins + \fi + \fi + \global\botinserted=\!!zeropoint\relax + \global\nofloatpermittedfalse} + +\newif\iftopofinsert +\newif\iftestfloatbox %\testfloatboxtrue + +%\def\flushfloatbox% nog verder doorvoeren en meer info in marge +% {\iftestfloatbox +% \ruledhbox{\box\floatbox}% +% \else +% \box\floatbox +% \fi} + +% \testfloatboxtrue +% +% testfloatbox gaat mis, niet in midden, dus elders + +\def\flushfloatbox% nog verder doorvoeren en meer info in marge + {\snaptogrid\hbox{\iftestfloatbox\ruledhbox\fi{\box\floatbox}}} + +% beter de laatste skip buiten de \insert uitvoeren, +% bovendien bij volle flush onder baseline. + +\def\betweenfloatblanko% assumes that \@@bknawit is present + {\bgroup + \setbox0=\vbox{\strut\blanko[\@@bkvoorwit]\strut}% + \setbox2=\vbox{\strut\blanko[\@@bknawit]\strut}% + \ifdim\ht0>\ht2 + \blanko[-\@@bknawit,\@@bkvoorwit] + \fi + \egroup} + +\def\doroomfloat% + {\ifnofloatpermitted + \global\roomforfloatfalse + \else + \dimen0=\pagetotal + \advance\dimen0 by \ht\floatbox + \advance\dimen0 by \dp\floatbox + \advance\dimen0 by \floattopskip + \advance\dimen0 by -\pageshrink % toegevoegd + \ifdim\dimen0>\pagegoal + \global\roomforfloatfalse + \else + \global\roomforfloattrue + \fi + \fi} + +\def\doexecfloat% spacing between two successive must be better + {\baselinecorrection + \witruimte + \blanko[\@@bkvoorwit]% + \flushfloatbox + \blanko[\@@bknawit]% + \doinsertfloatinfo} + +\def\somefixdfloat[#1]% + {\doroomfloat + \ifroomforfloat\else + \goodbreak + \fi + \showmessage{\m!floatblocks}{9}{}% + \doexecfloat} + +\def\somesidefloat[#1]% links, rechts NOG TESTEN EN AANPASSEN + {\ifbinnenkolommen + \someelsefloat[\v!hier]% + \else + \checkwaitingfloats{#1}% + \def\logsidefloat% + {\doinsertfloatinfo}% + \setbox\floatbox=\vbox{\box\floatbox}% + \wd\floatbox=\floatwidth + \processfirstactioninset + [#1] + [ \v!links=>\leftfloat{\box\floatbox}, + \v!rechts=>\rightfloat{\box\floatbox}, + \v!inlinker=>\leftmarginfloat{\box\floatbox}, + \v!inrechter=>\rightmarginfloat{\box\floatbox}, + \v!inmarge=>{\doinmargenormal\leftmarginfloat\rightmarginfloat[]{\box\floatbox}}]% + \doifinset{\v!lang}{#1} + {\flushsidefloatsafterpar}% + \fi} + +\def\sometextfloat[#1]% lang, links, rechts, hoog, midden, laag, offset + {\checkwaitingfloats{#1}% + \def\dostoptextfloat{\dodostoptextfloat[#1]}% + \global\floattextwidth=\hsize + \global\floatwidth=\wd\floatbox + \global\floatheight=\ht\floatbox % forget about the depth + \global\advance\floattextwidth by -\floatwidth + \global\advance\floattextwidth by -\@@bkmarge\relax % was \tfskipsize + \doifinsetelse{\v!lang}{#1} + {\floattextheight=\pagegoal + \advance\floattextheight by -\pagetotal + \advance\floattextheight by -\bigskipamount % lelijk + \ifdim\floattextheight>\teksthoogte + \floattextheight=\teksthoogte + \fi + \boxmaxdepth=\!!zeropoint\relax % toegevoegd + \ifdim\floattextheight<\floatheight + \floattextheight=\floatheight + \fi + \setbox\floattext=\vbox to \floattextheight} + {\setbox\floattext=\vbox}% + \bgroup + \blanko[\v!blokkeer] + \hsize\floattextwidth + \ignorespaces} + +\def\dodostoptextfloat[#1]% + {\egroup + \doifnotinset{\v!lang}{#1}% + {\ifdim\ht\floattext<\floatheight + \floattextheight=\floatheight + \else + \floattextheight=\ht\floattext + \fi}% + \setbox\floatbox=\vbox to \floattextheight + {\hsize\floatwidth + \box\floatbox + \vfill}% + \setbox\floattext=\vbox to \floattextheight + {\hsize\floattextwidth + \doifinsetelse{\v!laag}{#1} + {\vfill + \box\floattext + \doifinset{\c!offset}{#1}{\witruimte\blanko}} + {\doifinsetelse{\v!midden}{#1} + {\vfill + \box\floattext + \vfill} + {\doifinset{\v!offset}{#1}{\witruimte\blanko}% + \box\floattext + \vfill}}}% + \doifinsetelse{\v!rechts}{#1}% + {\setbox\floatbox=\hbox to \hsize + {\box\floattext + \hfill + \box\floatbox}} + {\setbox\floatbox=\hbox to \hsize + {\box\floatbox + \hfill + \box\floattext}}% + \baselinecorrection + \witruimte + \blanko[\@@bkvoorwit]% + \doifnotinset{\v!lang}{#1}% + {\dp\floatbox=\openstrutdepth}% dp\strutbox}% % toegevoegd + \box\floatbox + \blanko[\@@bknawit]% + \doinsertfloatinfo} + +\def\somefacefloat[#1]% links, rechts, midden, hoog, midden, laag + {\checkwaitingfloats{#1}% + \startnaast\box\floatbox\stopnaast + \doinsertfloatinfo} + +\def\somepagefloat[#1]% links, rechts, midden, hoog, midden, laag + {\checkwaitingfloats{#1}% + \vbox to \teksthoogte + {\doifnotinset{\v!hoog}{#1}{\vfill}% + \box\floatbox + \doifnotinset{\v!laag}{#1}{\vfill}}% + \doinsertfloatinfo + \pagina} % toegevoegd + +\def\someelsefloat[#1]% + {\doifinsetelse{\v!hier}{#1} + {\doifinsetelse{\v!altijd}{#1} + {\pagina[\v!voorkeur]% + \doroomfloat + \ifroomforfloat + \doexecfloat + \else + \showmessage{\m!floatblocks}{9}{}% + \doreversesavefloat + \fi} + {\ifsomefloatwaiting + \dosavefloat + \else + \pagina[\v!voorkeur]% + \doroomfloat + \ifroomforfloat + \doexecfloat + \else + \dosavefloat + \fi + \fi}} + {\doifinsetelse{\v!altijd}{#1} + {\doroomfloat + \ifroomforfloat + \processallactionsinset + [#1] + [ \v!boven=>\dotopfloat, + \v!onder=>\dobotfloat, + \s!default=>\doexecfloat]% + \else + \showmessage{\m!floatblocks}{9}{}% + \doreversesavefloat + \fi} + {%\ifsomefloatwaiting % from before the renumbering time + % \doflushfloats + %\fi + \doroomfloat + \ifroomforfloat + \processallactionsinset + [#1] + [ \v!boven=>%%\ifdim\topinserted=\!!zeropoint\relax + %\iffloatsonpage + % \dosavefloat + %\else + \dotopfloat + %\fi + %%\else + %% \dosavefloat + %%\fi + , + \v!onder=>%\ifdim\botinserted=\!!zeropoint\relax + \dobotfloat + %\else + % \dosavefloat + %\fi + , + \s!default=>\doexecfloat]% + \else + \dosavefloat + \fi}}} + +% De onderstaande macro wordt gebruikt bij de macros +% voor het plaatsen van tabellen en figuren (klopt niet +% meer). +% +% \dofloat {plaats} {label1} {label2} {kader} +% +% \docompletefloat {nummer} {referentie} {lijst} +% {plaats} {label1} {label2} {inhoud} +% +% \box\floatbox inhoud+referentie +% +% \do???float#1 #1 = boxnummer +% +% \ifinsidefloat wordt \true gezet voor \docompletefloat en \false +% na float plaatsen; kan worden gebruikt om in +% andere commando's witruimte te onderdrukken + +\newdimen\floattopskip \floattopskip=12pt +\newdimen\floatbottomskip \floatbottomskip=12pt +\newdimen\floatsideskip \floatsideskip=12pt + +\newdimen\sidefloattopskip \sidefloattopskip=\floattopskip +\newdimen\sidefloatbottomskip \sidefloatbottomskip=\floatbottomskip +\def\sidefloattopoffset {\openstrutdepth} % {\dp\strutbox} + +\newcount\noftopfloats \noftopfloats=2 +\newcount\nofbotfloats \nofbotfloats=0 + +\def\calculatefloatskips% + {{\def\calculatefloatskips##1##2% + {\doifelsenothing{##2} + {\global##1=\!!zeropoint} + {\doifelse{##2}{\v!geen} + {\global##1=\!!zeropoint} + {\setbox0=\vbox{\witruimte\@EA\blanko\@EA[##2]}% + \global##1=\ht0}}}% + \calculatefloatskips\floattopskip\@@bkvoorwit + \calculatefloatskips\floatbottomskip\@@bknawit + \calculatefloatskips\sidefloattopskip\@@bkzijvoorwit + \calculatefloatskips\sidefloatbottomskip\@@bkzijnawit + \def\sidefloattopoffset{\openstrutdepth}% {\dp\strutbox}% + \global\floatsideskip=\@@bkmarge\relax + \global\noftopfloats=\@@bknboven\relax + \global\nofbotfloats=\@@bknonder\relax}} + +\newif\ifinsidefloat + +\def\floatcaptionsuffix{} % an optional suffix +\def\floatcaptionnumber{} % a logical counter + +\def\dosetfloatcaption#1#2#3% + {\def\dofloattekst% + {{\doattributes{\??kj#1}{#3}}}% + \doifelsevalue{\??kj#1\c!nummer}{\v!ja} + {\def\dofloatnummer% + {{\xdef\floatcaptionnumber{#1}% + \hbox{\doattributes{\??kj#1\v!kop}{\strut#2\floatcaptionsuffix}}}% + \ConvertToConstant\doifnot{#3}{} + {\tfskip + \emergencystretch=.5em}}} + {\let\dofloatnummer=\empty}} + +\def\putborderedfloat#1\in#2\\% + {\setbox#2=\vbox + {\localframed + [\??fl#1] + [\c!breedte=\@@bkbreedte, + \c!hoogte=\@@bkhoogte, + \c!offset=\@@bkoffset]% + {\box\floatbox}}} + +\newbox\captionbox + +\def\putcompletecaption% + {\mindermeldingen + \begstrut\dofloatnummer\dofloattekst\endstrut} + +\def\dosetpagfloat#1#2#3#4% + {\bgroup + \forgetall + %\showcomposition + \putborderedfloat#4\in4\\% + \def\locatefloat% + {\doregelplaats\@@bkplaats}% + \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}% + \doifinsetelse{\@@kjkjplaats}{\v!hoog,\v!midden,\v!laag} + {\dimen0=\hsize + \advance\dimen0 by -\wd4\relax + \advance\dimen0 by -\@@bkmarge\relax % \was tfskipsize\relax + \ifdim\wd2>\dimen0\relax + \dimen2=1.3\dimen0\relax + \ifdim\wd2<\dimen2\relax + \dimen0=0.8\dimen0\relax + \fi + \fi + \setbox2=\vbox + {\forgetall + \hsize=\dimen0\relax + \raggedright + \begstrut\dofloatnummer + \ifx\@@kjkjtussen\empty \else + \unskip\@@kjkjtussen + \fi + \dofloattekst + \endstrut}} + {\doifelse{\@@kjkjbreedte}{\v!max} + {\dosetraggedbox{\@@kjkjuitlijnen}% + \setbox2=\raggedbox + {\hsize\wd4\relax + \putcompletecaption}} + {\ifdim\wd2>\wd4\relax + \doifelse{\@@kjkjbreedte}{\v!passend} + {\ifdim\wd4<15\korpsgrootte\relax + \dimen0=15\korpsgrootte\relax + \else + \dimen0=\wd4\relax + \fi + \ifdim\wd4>\hsize + \setbox0=\vbox + {\forgetall + \hsize=1.0\wd4 + \putcompletecaption}% + \ifdim\ht0>\lineheight\relax + \setbox2=\vbox + {\forgetall + \hsize=0.9\wd4 + \putcompletecaption}% + \fi + \else + \setbox0=\vbox + {\forgetall + \dimen2=1.5\dimen0\relax + \ifdim\dimen2<\hsize + \hsize=\dimen2\relax + \fi + \putcompletecaption}% + \ifdim\ht0>\lineheight\relax + \setbox2=\vbox + {\forgetall + \dimen2=1.2\dimen0\relax + \ifdim\dimen2<\hsize + \hsize=\dimen2\relax + \fi + \putcompletecaption}% + \fi + \fi} + {\dosetraggedbox{\@@kjkjuitlijnen}% + \setbox2=\raggedbox + {\hsize\@@kjkjbreedte + \putcompletecaption}}% + \fi}}% + \global\setbox\floatbox=\vbox + {\processaction + [\@@kjkjplaats] + [ \v!boven=>\locatefloat{\copy2}% + \@@kjkjtussen + \locatefloat{\copy4}, + \v!onder=>\locatefloat{\copy4}% + \@@kjkjtussen + \locatefloat{\copy2}, + \v!hoog=>\locatefloat + {\doifelse{\@@bkplaats}{\v!links} + {\copy4 + \tfskip + \vbox to\ht4{\@@kjkjtussen\copy2\vfill}} + {\vbox to\ht4{\@@kjkjtussen\copy2\vfill}% + \tfskip + \copy4}}, + \v!laag=>\locatefloat + {\doifelse{\@@bkplaats}{\v!links} + {\copy4 + \tfskip + \vbox to\ht4 + {\vfill\copy2\@@kjkjtussen}} + {\vbox to\ht4 + {\vfill\copy2\@@kjkjtussen}% + \tfskip + \copy4}}, + \v!midden=>\locatefloat + {\doifelse{\@@bkplaats}{\v!links} + {\copy4 + \tfskip + \vbox to\ht4{\vfill\copy2\vfill}} + {\vbox to\ht4{\vfill\copy2\vfill}% + \tfskip + \copy4}}, + \v!geen=>\locatefloat{\copy4}]}}% +% \ifdim\wd2>\wd4 +% \global\wd\floatbox=\wd2 +% \else +% \global\wd\floatbox=\wd4 +% \fi +\ifdim\wd4>\hsize + \global\setbox\floatbox=\hbox to \wd4{\hss\box\floatbox\hss}% +\fi + \egroup} + +\def\dosetparfloat#1#2#3#4% + {\bgroup + %\showcomposition + \forgetall + \putborderedfloat#4\in4\\ + \ConvertToConstant\doifelse{#3}{\v!geen} + {\global\setbox\floatbox=\vbox{\box4}} + {\dosetfloatcaption{#4}{#2}{#3}% + \setbox2=\hbox + {\forgetall + \putcompletecaption}% + \doifelse{\@@kjkjbreedte}{\v!max} + {\dosetraggedbox{\@@kjkjuitlijnen}% + \setbox2=\raggedbox + {\hsize\wd4 + \putcompletecaption}} + {\doifelse{\@@kjkjbreedte}{\v!passend} + {\ifdim\wd2>\wd4\relax + \setbox2=\vbox + {\forgetall + \hsize\wd4 + \putcompletecaption}% + \else + \setbox2=\hbox to \wd4 + {\hss\box2\hss}% + \fi} + {\dosetraggedbox{\@@kjkjuitlijnen}% + \setbox2=\raggedbox + {\hsize\wd4 + \putcompletecaption}}}% + \global\setbox\floatbox=\vbox + {\processaction + [\@@kjkjplaats] + [ \v!boven=>\box2 + \@@kjkjtussen + \box4, + \v!onder=>\box4 + \@@kjkjtussen + \box2, + \v!geen=>\box4]}}% + \egroup} + +\newif\ifparfloat + +\long\def\dosetfloatbox#1#2#3#4% + {\ifvisible + \par + \doifcommonelse + {#1}{\v!links,\v!rechts,\v!inlinker,\v!inrechter,\v!inmarge} + {\global\parfloattrue} + {\global\parfloatfalse}% + \ifbinnenkolommen + \global\parfloatfalse + \fi + \edef\@@kjkjbreedte {\getvalue{\??kj#4\c!breedte}}% + \def \@@kjkjtussen {\getvalue{\??kj#4\c!tussen}}% geen \edef + \edef\@@kjkjplaats {\getvalue{\??kj#4\c!plaats}}% + \edef\@@kjkjuitlijnen {\getvalue{\??kj#4\c!uitlijnen}}% + \ifparfloat + \dosetparfloat{#1}{#2}{#3}{#4}% + \else + \dosetpagfloat{#1}{#2}{#3}{#4}% + \fi + \global\floatheight=\ht\floatbox + \global\advance\floatheight by \dp\floatbox + \global\floatwidth=\wd\floatbox + \global\advance\totalnoffloats by 1\relax + \doifnotinset{\v!marge}{#1} % gaat namelijk nog fout + {\setbox\floatbox=\vbox + {\parindent\!!zeropoint + \ifvoorlopig + \inlinker{\framed{\infofont\the\totalnoffloats}}% + \fi + \box\floatbox}}% + \wd\floatbox=\floatwidth + \dimen0=\floatheight + \advance\dimen0 by \lineheight + \ifdim\dimen0<\teksthoogte + \else + \global\floatheight=\teksthoogte + \global\advance\floatheight by -\lineheight + \ht\floatbox=\floatheight + \dp\floatbox=\!!zeropoint + \showmessage{\m!floatblocks}{10}{\the\totalnoffloats}% + \fi + \fi} + +\def\dogetfloatbox#1% + {\ifvisible + \def\next##1{\global\floatsonpagetrue\def\next{##1}}% + \processfirstactioninset + [#1] + [ \v!hier=>\next{\someelsefloat[#1]}, + \v!forceer=>\next{\somefixdfloat[#1]}, + \v!links=>\next{\somesidefloat[#1]}, + \v!rechts=>\next{\somesidefloat[#1]}, + \v!tekst=>\next{\sometextfloat[#1]}, + \v!boven=>\def\next{\someelsefloat[#1]}, % ! + \v!onder=>\next{\someelsefloat[#1]}, + \v!marge=>\def\next{\somenextfloat[#1]}, % ! + \v!pagina=>\next{\somepagefloat[#1]}, + \v!naast=>\next{\somefacefloat[#1]}, + \v!inmarge=>\next{\somesidefloat[#1]}, + \v!inlinker=>\next{\somesidefloat[#1]}, + \v!inrechter=>\next{\somesidefloat[#1]}, + \s!default=>\next{\someelsefloat[\v!hier,#1]}, + \s!unknown=>\next{\someelsefloat[\v!hier,#1]}]% + \next + \fi} + +\long\def\dofloat#1#2#3#4% + {\dosetfloatbox{#1}{#2}{#3}{#4}% + \dogetfloatbox{#1}}% + +\long\def\docompletefloat#1#2#3#4#5#6#7% + {\flushsidefloats + \calculatefloatskips + \bgroup + \global\setbox\floatbox=\vbox{#7}% + \dimen0=\ht\floatbox + \advance\dimen0 by \dp\floatbox + \ifdim\dimen0=\!!zeropoint\relax + \showmessage{\m!floatblocks}{11}{}% + \global\setbox\floatbox=\vbox{\getvalue{\e!lege#3}}% + \fi + \ConvertToConstant\doifelse{#6}{\v!geen} + {\global\setbox\floatbox=\ruledvbox + {\unvbox\floatbox + \vss % gets rid of the depth + \rawpagereference{\s!flt}{#2}}% + \egroup\dofloat{#4}{}{#6}{#1}} + {\doifelsevalue{\??kj#1\c!nummer}{\v!ja} + {\verhoognummer[#1]% + \maakhetnummer[#1]% + \global\setbox\floatbox=\vbox + {\unvbox\floatbox % no \vss, keep the depth + \dofloatreference + \redofloatorder{#1}% + \rawreference{\s!flt}{#2}{\hetnummer}% + \doschrijfnaarlijst{#3}{\hetnummer}{#6}{#3}}% + \egroup\dofloat{#4}{#5\hetnummer}{#6}{#1}} + {\global\setbox\floatbox=\vbox + {\unvbox\floatbox % no \vss, keep the depth + \rawpagereference{\s!flt}{#2}}% + \egroup\dofloat{#4}{}{#6}{#1}}}% + \global\insidefloatfalse} + +\def\plaatsvolledig#1#2#3#4% kop, ref, tit, do + {#1[#2]{#3}% + #4% + \pagina[\v!ja]} + +%I n=Figuren +%I c=\plaatsfiguur,\reserveerfiguur,\startfiguurtekst +%I c=\leegfiguur,\volledigelijstmetfiguren +%I c=\plaatstabel,\reserveertabel,\starttabeltekst +%I c=\legetabel,\volledigelijstmettabellen +%I +%I Figuren en tabellen (gebruik ..tabel.. in plaats van +%I ..figuur..) kunnen in de tekst worden geplaatst met het +%I commando: +%I +%I \plaatsfiguur[plaats][referentie]{titel}{figuur} +%I +%I Als voorkeur kan worden opgegeven 'hier', 'forceer', +%I 'pagina', 'boven', 'onder', 'links' en 'rechts'. In plaats +%I van een titel kan 'geen' worden meegegeven, in dat geval +%I wordt geen titel geplaatst. Eventueel kan in combinatie +%I met links en rechts 'lang' worden opgegeven. +%I +%I De volgorde kan worden afgedwongen met 'altijd', +%I bijvoorbeeld [hier,altijd]. In dat geval wordt bij een +%I volgende run zonodig de nummering aangepast. +%I +%I In plaats van een titel kan {geen} worden ingevuld. In +%I dat geval blijft de titel achterwege. +%P +%I Het is mogelijk ruimte voor een figuur te reserveren: +%I +%I \reserveerfiguur[hoogte=,breedte=,kader=][voorkeur] +%I [referentie]{titel} +%P +%I Een lijst met figuren kan worden opgeroepen met: +%I +%I \plaatslijstmetfiguren +%I \volledigelijstmetfiguren +%I +%I Men kan een tekst naast een figuur zetten met: +%I +%I \startfiguurtekst[plaats][referentie]{kop}{figuur} +%I ... +%I \stopfiguurtekst +%I +%I Mogelijke plaatsen zijn (combinaties van) 'links', 'rechts', +%I 'hoog', 'laag' en 'midden'. Met 'offset' dwingt men een +%I verschuiving omlaag van van 1 regel af. +%I +%I Zie verder onder plaatsblokken. + +%I n=Tabellen +%I +%I Zie figuren. + +%I n=Intermezzo +%I +%I Zie figuren. + +%I n=Grafieken +%I +%I Zie figuren. + +%T n=figuur +%T m=fig +%T a=f +%T +%T \plaatsfiguur +%T [hier] +%T [fig:] +%T {} +%T {\naam{?}} +%T + +\definieernummer + [\??si] + [\c!wijze=\v!per\v!tekst, + \c!conversie=\@@siconversie] + +\def\stelplaatsbloksplitsenin% + {\dodoubleargument\getparameters[\??si]} + +% ook (continued) + +\def\dosplitsplaatsblok[#1]#2% nog dubbele refs + {\ifbinnenkolommen % tzt ook nog figuren splitten + % not yet supported + \else + \bgroup + \insidefloattrue + \getparameters[\??si][#1]% + \resetnummer[\??si]% + \def\floatcaptionsuffix{\nummer[\??si]}% + \TABLEcaptionheight=\@@siregels\lineheight + \dowithnextbox + {\forgetall + \mindermeldingen + \doloop + {\setbox2\vsplit\nextbox to \lineheight + \setbox2=\vbox{\unvbox2} + \ifdim\ht2>\lineheight + \verhoognummer[\??si]% + \ifnum\ruwenummer[\??si]=1 \ifdim\ht\nextbox=\!!zeropoint + \let\floatcaptionsuffix=\empty + \fi\fi + \bgroup + #2{\unvbox2} + \egroup + \pagina + \ifdim\ht\nextbox>\!!zeropoint + \verlaagnummer[\floatcaptionnumber]% + \fi + \fi + \ifdim\ht\nextbox>\!!zeropoint\else + \expandafter\exitloop + \fi}% + \egroup} + \vbox + \fi} + +\def\splitsplaatsblok% + {\dosingleempty\dosplitsplaatsblok} + +%I n=Formules +%I c=\plaatsformule,\plaatssubformule,\stelformulesin +%I +%I Formules kunnen in de tekst worden geplaatst met +%I het commando: +%I +%I \plaatsformule[referentie]subnummer$$formule$$ +%I +%I Dit commando handelt de witruimtes om de formules af en +%I plaatst nummers. Als geen nummer nodig is, en dus ook +%I geen referentie, dan moet met het commando als volgt +%I gebruiken: +%I +%I \plaatsformule-$$...$$ of \plaatsformule[-]$$...$$ +%I +%I Als het nummer niet moet worden opgehoogd, gebruikt men +%I +%I \plaatssubformule[referentie]subnummer$$formule$$ +%P +%I PAS OP: +%I +%I Binnen een aantal wiskundige commando's, zoals +%I \displaylines, moet men het nummer zelf plaatsen. Dit +%I kan gebeuren met: \formulenummer of \subformulenummer. +%I Ook hier kan een [referentie] en een {subnummer} worden +%I meegegeven. +%I +%I \plaatsformule +%I $$\displaylines +%I {x \hfill\formulenummer[eerste]{}\cr +%I y \hfill\cr +%I z \hfill\formulenummer[derde]{}\cr} +%I $$ +%P +%I De wijze waarop formules worden genummerd kan worden +%I be‹nvloed door het commando: +%I +%I \stelformulesin[links=,rechts=,plaats=] +%I +%I De nummers kunnen links en rechts worden gezet. Standaard +%I worden de symbolen ( en ) gebruikt. +%I +%I Tussen twee formules kan witruimte worden geforceerd met +%I het commando: +%I +%I \blanko[formule] + +\abovedisplayskip = \!!zeropoint\relax +\abovedisplayshortskip = \!!zeropoint\relax % evt. 0pt minus 3pt +\belowdisplayskip = \!!zeropoint\relax +\belowdisplayshortskip = \!!zeropoint\relax % evt. 0pt minus 3pt + +\predisplaypenalty = 0 +\postdisplaypenalty = 0 % -5000 gaat mis, zie penalty bij \paragraaf + +\doorlabelen + [\v!formule] + [\c!tekst=\v!formule, + \c!wijze=\@@fmwijze, + \c!blokwijze=\@@fmblokwijze, + \c!plaats=\v!intekst] + +\def\stelformulesin% + {\dodoubleargument\getparameters[\??fm]} + +\def\dodoplaatsformule#1[#2]#3$$#4$$% + {\begingroup + \setdisplayskips + \!!doneafalse + \doif{#2}{-}{\!!doneatrue}% + \doif{#3}{-}{\!!doneatrue}% + \if!!donea % no number + \def\complexformulenummer[##1]##2% + {}% + \def\formulenummer% + {\complexorsimpleempty{formulenummer}}% + \def\subformulenummer% + {\formulenummer}% + \snaptomathgrid{$$#4$$} + \else + \doifelse{#1}{\v!ja} + {\def\verhoogformulenummer{\verhoognummer[\v!formule]}} + {\let\verhoogformulenummer=\relax}% + \def\simpleformulenummer% + {\gdef\doeqno{}% + \gdef\doleqno{}% + \gdef\formulenummer{\doformulenummer}% + \doformulenummer[#2]{#3}}% + \def\complexformulenummer% + {\gdef\doeqno{}% + \gdef\doleqno{}% + \gdef\formuleummer{\doformulenummer}% + \doformulenummer}% + \def\formulenummer% + {\complexorsimple{formulenummer}}% + \def\subformulenummer% + {\let\verhoogformulenummer=\relax + \complexorsimple{formulenummer}}% + \gdef\doleqno{\leqno{\formulenummer}}% + \gdef\doeqno{\eqno{\formulenummer}}% + \doifelse{\@@fmplaats}{\v!links} + {\snaptomathgrid{$$#4\doleqno$$}} + {\snaptomathgrid{$$#4\doeqno$$}} + \fi + \par + \ignorespaces + \endgroup} + +\def\complexdoformulenummer[#1]#2% + {\verhoogformulenummer + \doifelse{#2}{ } + {\def\hetsubnummer{}} + {\def\hetsubnummer{#2}}% + {\rm\strut\@@fmlinks\lossenummer[\v!formule]\hetsubnummer\@@fmrechts}% + \rawreference{\s!for}{#1}{\hetnummer\hetsubnummer}} + +\letvalue{\e!start\e!formule}=\undefined +\letvalue{\e!stop \e!formule}=\undefined + +%\def\dodoplaatsstartformule#1[#2]#3\startformule#4\stopformule% +% {\dodoplaatsformule#1[#2]#3$$#4$$} + +\expanded + {\def\noexpand\dodoplaatsstartformule##1[##2]##3\csname\e!start\e!formule\endcsname##4\csname\e!stop\e!formule\endcsname% + {\noexpand\dodoplaatsformule##1[##2]##3$$##4$$}} + +\setvalue{\e!start\e!formule}{\snaptomathgrid\bgroup\setdisplayskips$$} +\setvalue{\e!stop \e!formule}{$$\egroup} + +\def\doplaatsformule#1[#2]#3% % #3 gobbles spaces between [] and $$ or \startformule + {\def\redoplaatsformule% % we can't lose {} after $$ + {\expandafter\ifx\csname\e!start\e!formule\endcsname\next + \let\next=\dodoplaatsstartformule + \else + \let\next=\dodoplaatsformule + \fi + \next#1[#2]}% + \futurelet\next\redoplaatsformule#3} + +\def\complexplaatsformule% + {\doplaatsformule{\v!ja}} + +\def\complexplaatssubformule% + {\doplaatsformule{\v!nee}} + +\definecomplexorsimpleempty\doformulenummer +\definecomplexorsimpleempty\plaatsformule +\definecomplexorsimpleempty\plaatssubformule + +%I n=Naast +%I c=\startnaast,\stelnaastplaatsenin +%I +%I Experiment: +%I +%I \startnaast +%I ... +%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 + +\newif\iffacingpages \facingpagesfalse + +\def\shipoutfacingpage% + {\iffacingpages + \ifnum\realpageno>1 + \bgroup + \pagebodyornamentsfalse + \setbox\facingpage=\vbox to \zethoogte + {\unvbox\facingpage\vfil}% + \myshipout{\buildpagebody\box\facingpage}% + \egroup + \else + \global\setbox\facingpage=\box\voidb@x + \fi + \fi} + +\def\naastpagina% + {\shipoutfacingpage} + +\def\facefloat% redefined + {\startnaast\box\floatbox\stopnaast} + +\def\startnaast% beter: \dowithnextbox + {\iffacingpages + \global\setbox\facingbox=\ruledvbox + \bgroup + \hsize=\zetbreedte + \else + \def\next{\gobbleuntil\stopnaast}% + \expandafter\next + \fi} + +\def\stopnaast% + {\egroup + \global\setbox\facingpage=\vbox + {\ifvoid\facingpage + \vskip\openstrutdepth % \dp\strutbox + \else + \unvbox\facingpage + \fi + \box\facingbox + \blanko}} + +\def\dostelnaastplaatsenin[#1]% + {\getparameters[\??np][#1]% + \doifelse{\@@npstatus}{\v!start} + {\global\facingpagestrue} + {\global\facingpagesfalse}} + +\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\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\@@livariantb% nr - tit - fill - pag + {\def\lijstfill{\hfill}% + \def\lijstskip{5em}} + +\def\@@livariantc% nr - tit - dots - pag + {\def\lijstfill{\leaders\hbox to .5em{\hss.\hss}\hfill\hskip.5em}% + \def\lijstskip{5em}} + +\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% + {\setvalue{#1\c!tussen}{\dotussenlijst{#1}}% + \setvalue{#1\c!lijst}{\dolijstelement{#1}}} + +\def\dodoresetlijst#1% + {\setvalue{#1\c!tussen}{\gobblefourarguments{#1}}% + \setvalue{#1\c!lijst}{\gobblesixarguments{#1}}} + +%\def\dodoresetlijst#1% +% {\setvalue{#1\c!tussen}{\gobblethreearguments}% +% \setvalue{#1\c!lijst}{\gobblefivearguments}} + +\def\dodefinieerlijst[#1][#2][#3]% + {\presetlocalframed[\??li#1]% + \getparameters + [\??li#1] + [\c!hoogte=\v!ruim, + \c!diepte=\v!ruim, + \c!offset=0.25em, + % + \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!symbool=, + \c!interactie=\v!sectienummer, + \v!deel\c!nummer=\v!ja, % nodig ? + \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,\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 + \getfromcommalist[#1][1]% + \let\firstlistelement=\commalistelement + \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% + {\doifvalue{\??li#1\c!label}{\v!ja}{\labeltext{#1}}% + \strut\splitlistsymbol + \getvalue{\??li#1\c!scheider}}]} + +\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}{\let\dosomelijstelement\dodofreelijstelement} + +% 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\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#2} + {\stelinteractiein[\c!kleur=,\c!contrastkleur=]}% + \doattributes + {\??li#1#3}} + +\def\dodofreelijstelement#1#2#3#4#5#6% + {\def\makelijstelement##1##2% + {\hbox + {\doifelsevalue{\??li#1\c!interactie}{##1} + {\setbox0=\hbox{\showcontrastlocation{\??ia}{#6}{##2}}% + \gotonextinternal{#1}{#2}{#6}{\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]}}} + {\ifvmode\nointerlineskip\fi % recently added + \vbox + {\forgetall + \makelijstelement\v!alles + {\makelijstelement\v!sectienummer + {\dolistattributes{#1}\c!nummerkleur\c!nummer + {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}}% + \makelijstelement\v!tekst + {\dolistattributes{#1}\c!tekstkleur\c!tekst + {\def\\{ }% + \dontconvertfont + \getvalue{\??li#1\c!tekstcommando}{#4}}}% + \doifvalue{\??li#1\c!paginanummer}{\v!ja} + {\doifsomething{#5} + {\makelijstelement\v!paginanummer + {\dolistattributes{#1}\c!paginakleur\c!pagina + {\getvalue{\??li#1\c!paginacommando} + {\paginaprefix\??li#1[#5]% + \translatednumber[#5]}}}}}}}% +\nointerlineskip % anders verkeerde spatiering bij multi-line + \endgraf}% + \getvalue{\??li#1\c!na}} + +\def\dodofixdlijstelementABC#1#2#3#4#5#6% weeden + {\endgraf + \leftskip=\getvalue{\??li#1\c!marge}% na de \endgraf ! + \getvalue{\??li#1\c!voor}% + \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}}% + \gotonextinternal{#1}{#2}{#6}{\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!nummerkleur\c!nummer + {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}% + \hfill}}% + \setbox4=\hbox + {\doifvalue{\??li#1\c!paginanummer}{\v!ja} + {\doifsomething{#5} + {\hbox to 2em + {\hfill + \makelijstelement\v!paginanummer + {\dolistattributes{#1}\c!paginakleur\c!pagina + {\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!tekstkleur\c!tekst + {\def\\{ }% + \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 + \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}% + \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}}% + \gotonextinternal{#1}{#2}{#6}{\copy0}} + {\hbox{##2}}}% + \setbox4=\hbox + {\doifvalue{\??li#1\c!paginanummer}{\v!ja} + {\doifsomething{#5} + {\makelijstelement\v!paginanummer + {\dolistattributes{#1}\c!paginakleur\c!pagina + {\getvalue{\??li#1\c!paginacommando} + {\paginaprefix\??li#1[#5]% + \translatednumber[#5]}}}}}}% + \hbox + {\getvalue{\??li#1\c!links}% + \makelijstelement\v!sectienummer + {\dolistattributes{#1}\c!nummerkleur\c!nummer + {\getvalue{\??li#1\c!nummercommando}{\listsymbol}}}% + \getvalue{\??li#1\c!rechts}% + \hskip.5em}% + \nobreak + \tolerance3500 + \dolistattributes{#1}\c!tekstkleur\c!tekst + {\def\\{ }% + \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{\localframed[\??li#1][\c!kleur=]}{#1}} + +\def\dodofixdlijstelementF% + {\dodofixdlijstelementEFG\relax} + +\def\dodofixdlijstelementG#1% + {\dodofixdlijstelementEFG\regelmidden{#1}} + +\def\dodofixdlijstelementEFG#1#2#3#4#5#6#7% + {\hbox + {\let\\=\relax + \dontconvertfont + \setbox0=\hbox + {#1{\dolocationattributes{\??li#2} + {\ignorespaces\showcontrastlocation{\??ia}{#7}{#5}}}}% + \gotonextinternal{#2}{#3}{#7}{\copy0}}} + +\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!tekst} + {\def\\{ }% + \dontconvertfont + \getvalue{\??li##1\c!tekstcommando}{##4}}}% + \global\utilitydonetrue} + {}}% + \dostellijstin[#1][#2]% + \getfromcommalist[#1][1]% + \dosettoclevel{\getvalue{\??li\commalistelement\c!criterium}}% + \setbox0=\vbox + {\doutilities{#1}{\jobname}{#1}{}{\par}}% + \xdef\utilitylistheight {\the\ht0}% + \xdef\utilitylistwidth {\the\wd0}% + \endgroup} + +\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]% + {\bgroup + \let\referenceprefix=\empty + \setbox0=\hbox{\ignorespaces#1}% + \naarbox{\copy0}[#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]% + \getfromcommalist[#1][1]% + \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} + {\referentiebutton% + {#3% + \doglobal\increment\referencecounter + \pagereference[\r!from\referencecounter]% + \doschrijfnaarreferentielijst{#1}{\referencecounter}{#2}}% + [\r!to\referencecounter]} + {#3}} + +\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\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} + +%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% + {\bgroup + \syndef + {\doattributes{\??sm#1\c!tekst}{#2}} + \ConvertToConstant\doifelse{#3}{}{\onbekend}{#3} + \par + \egroup} + +\def\synonymentry#1% + {\executeifdefined{#1\s!entry}\gobblethreearguments} + +\def\dosetsynonym#1% + {\doifdefinedelse{\??sm#1\c!commando} + {\global\utilitydonetrue + \setvalue{#1\s!entry}{\getvalue{\??sm#1\c!commando}}} + {\global\utilitydonetrue + \setvalue{#1\s!entry}{\dohandlesynonymentry}}% + \doordefinieren + [syndef] + [\c!plaats=\synplaats, + \c!breedte=\synbreedte, + \c!kopletter=, + \c!voor=, + \c!tussen=, + \c!na=]} + +\def\doplaatslijstmetsynoniemen#1#2% + {\witruimte + \begingroup + \def\currentsynonym{#1}% + \def\synplaats{\getvalue{\??sm#1\c!plaats}}% + \def\synbreedte{\getvalue{\??sm#1\c!breedte}}% + \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!synoniem}{\synonymmeaningfalse#3}% + \else + \explicithmode + \doattributes{\??sm#1\c!tekst}{#2}% + \fi + \endgroup} + +\def\getsynonymmeaning#1#2% + {\doifdefinedelse{#2} + {{\synonymmeaningtrue\getvalue{#2}}} + {\showmessage{\m!systems}{18}{#1,#2}}} + +\def\dowritesynonym#1#2#3#4% + {\begingroup % anders in mathmode lege \hbox + \doifelsevalue{\??sm#1\c!expansie}{\v!ja} + {\immediatewriteutility{s e {#1} {#2} {#3} {#4}}} + {\convertargument#3\to\asciia + \convertargument#4\to\asciib + \immediatewriteutility{s e {#1} {#2} {\asciia} {\asciib}}}% + \endgroup} + +\def\preexecutesynonym#1#2#3#4% + {\ifdoinpututilities \else + \dowritesynonym{#1}{#2}{#3}{#4}% + \setgvalue{#2}{\donottest\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% + {\getvalue{\s!check#1}{#2}% + \doifelsevalue{\??sm#1\c!conversie}{\v!ja} + {\setgvalue{#2}{\donottest\expandsynonym{#1}{#2}{#3}{#4}}} + {\doifelsevalue{\??sm#1\c!status}{\v!start} + {\doifelsevalue{\??sm#1\c!criterium}{\v!alles} + {\preexecutesynonym{#1}{#2}{#3}{#4}} + {\setgvalue{#2}{\donottest\executesynonym{#1}{#2}{#3}{#4}}}} + {\setgvalue{#2}{\donottest\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!plaats=\v!links, + \c!criterium=, + \c!breedte=5em]% + \presetheadtext + [#2=\Woord{#2}]% + \setvalue{\e!stel#2\e!in}% + {\dodoubleargument\getparameters[\??sm#1]}% + \iffourthargument + \def#4##1% + {\donottest\getsynonymmeaning{#1}{\??sm:#1:##1}}% + \ifthirdargument + \def#3##1% + {\donottest\getvalue{\??sm:#1:##1}}% + \fi + \setvalue{#1}% + {\dotripleempty\docomplexsynonym[\??sm:#1:][#1]}% + \else + \ifthirdargument + \def#3##1% + {\donottest\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}} + {\getvalue{\??so#1\c!voor}% + \doattributes{\??so#1}{##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}{#2}% + \egroup} + +\def\dowritesort#1#2#3% + {\bgroup + \doifelsevalue{\??so#1\c!expansie}{\v!ja} + {\immediatewriteutility{s e {#1} {#2} {#3} {}}} + {\convertargument#3\to\asciia + \immediatewriteutility{s e {#1} {#2} {\asciia} {}}}% + \egroup} + +\def\synonymentry#1% + {\executeifdefined{#1\s!entry}\gobblethreearguments} + +\def\preexecutesort#1#2#3% + {\ifdoinpututilities \else + \dowritesort{#1}{#2}{#3}% + \setgvalue{#2}{\donottest\processsort{#1}{#3}{#2}}% + \fi} + +\def\executesort#1#2#3% + {\preexecutesort{#1}{#2}{#3}% + \processsort{#1}{#3}{#2}} + +\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% + {\getvalue{\s!check#1}{#2}% + \doifelsevalue{\??so#1\c!status}{\v!start} + {\doifelsevalue{\??so#1\c!criterium}{\v!alles} + {\preexecutesort{#1}{#2}{#3}} + {\setgvalue{#2}{\donottest\executesort{#1}{#2}{#3}}}} + {\setgvalue{#2}{\donottest\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=, + \c!status=\v!start, + \c!criterium=, + \c!letter=, + \c!voor=, + \c!na=\endgraf]% + \presetheadtext[#2=\Woord{#2}]% + \setvalue{\e!stel#2\e!in}[##1]% + {\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} + +% documenteren \bmath ..\emath + +\def\bmath% + {\begingroup + \ifmmode + \let\emath=\endgroup + \else + $\def\emath{$\endgroup}% + \fi} + +\def\mathematics#1% % \bmath ...\emath kan ook maar + {\ifmmode#1\else$#1$\fi} % dit alternatief scheelt grouping + +\def\dimensionsignal{0.000058pt} + +\def\dimension#1% + {\def\dodimensionsignal{\kern\dimensionsignal}% + \ifdim\lastskip=\!!zeropoint\relax + \ifdim\lastkern=\!!zeropoint\relax + \ifmmode + \mathematics{\,\,\tf#1}% + \else + \mathematics{\tf#1}% + \fi + \else\ifdim\lastkern=\dimensionsignal + \mathematics{\,\tf#1}% + \else + \unkern\mathematics{\,\,\tf#1}% + \fi\fi + \else + \unskip\mathematics{\,\,\tf#1}% + \fi + \dodimensionsignal} + +\def\nodimension#1% + {\unskip#1\gdef\dodimensionsignal{}} + +%I n=Registers +%I c=\definieerregister,\stelregisterin +%I c=\volledigregister,\plaatsregister +%I +%I Er kunnen registers worden gedefinieerd met het commando: +%I +%I \definieerregister[naam][namen] +%I +%I Vanaf dat moment zijn de volgende commando's beschikbaar: +%I +%I \naam[ascii]{ingang+ingang+ingang} +%I \zienaam[ascii]{ingang+ingang+ingang}{andere ingang} +%I \plaatsnaam +%I \volledigenaam +%I +%I of +%I +%I \plaatsregister[naam] +%I \volledigregister[naam] +%I +%I De commando's rond de standaard index zijn gedefinieerd +%I met de waarden: [index][indices] +%P +%I In de tekst dient een registerverwijzing voor het woord +%I te staan, dus: we verwijzen naar \index{woord}woord. +%I +%I Bij koppen daarentegen plaatsen we \index na de kop: +%I +%I \subparagraaf{dat is dat} +%I \index{ziezo} +%I +%I ........... tekst ..... +%I +%I of +%I +%I \margewoord{ziezo} +%I \index{ziezo} +%I +%I ........... tekst ..... +%I +%I Ongewenste spaties na \index worden verwijderd! Wil men +%I dus een spatie, dan moet dit worden afgedwongen met \ . +%P +%I Mocht het hierboven beschreven mechanisme interfereren +%I met andere mechanismen, dan kan ook het volgende commando +%I worden gebruikt: +%I +%I \schrijfnaarregister[naam][ascii]{ingang+ingang+ingang} +%I +%I waarbij [ascii] optioneel is. +%P +%I De registers kunnen worden ingesteld met het commando: +%I +%I \stelregisterin[naam][letter=,aanduiding=,n=, +%I balanceren=,uitlijnen=,criterium=,afstand=,symbool=, +%I expansie=] +%I +%I waarbij 'aanduiding' betrekking heeft op het al dan niet +%I plaatsen van een letter ('ja' of 'nee') en 'letter' op de +%I weergave van de letter. +%I +%I Met 'criterium' kan een subindex worden opgeroepen, +%I bijvoorbeeld 'deel' of 'hoofdstuk', of als het niveau +%I onbekend is: 'lokaal'. Standaard wordt een volledige index +%I gegenereerd ('alles'). +%I +%I In plaats van een paginanummer kan een symbool worden +%I gezet: n (1,2,3,..), a (a,b,c,..), 1 (bolletjes) en +%I 2 (rechthoekjes). Een symbool heeft alleen zin bij +%I interactieve teksten. +%I +%I Voor eigen gebruik is \ifregistergeplaatst beschikbaar. +%P +%I In plaats van een + als scheider kan ook & worden +%I gebruikt. Bovendien kan als eerste karakter worden opgegeven +%I wat de scheider is: +%I +%I \index[abcformule]{&formule&$ax^2+bx+c$} +%I +%I Overigens gaat de & voor de +, zodat hier de specificatie +%I niet per se nodig is. Let wel: dit is een kenmerk van +%I texutil, en niet zozeer van ConTeXt. + +% Formaat tex-utility-input-file <jobname.tui>: +% +% i e {tag} {loc} {pure} {entry+..} {p:c:p:sp:ssp=>page} {realpage} +% i s {tag} {loc} {pure} {entry+..} {other entry} +% +% In plaats van + kan een & worden gebruikt. Ook kan als +% eerste karakter worden opgegeven wat de scheider is. +% +% Deze file wordt met het programma TeXUtil omgezet in +% een in te lezen TeXFile met de commando's: +% +% \registerentrya {tag} {ingang} +% \registerentryb {tag} {subingang} +% \registerentryc {tag} {subsubingang} +% +% \registerpage {tag} {volgnummer} {paginanummer} {volgnummer} +% +% \registersee {tag} {andere ingang} +% +% \registerentry {tag} {letter} + +\def\dostelregisterin[#1][#2]% + {\getparameters[\??id#1][#2]% + \preparepaginaprefix{\??id#1}} + +\def\stelregisterin% + {\dodoubleargumentwithset\dostelregisterin} + +\def\getlastregisterentry#1% + {\def\docommando##1% + {\def\!!stringa{##1}}% + \processconcanatedlist[#1][+]\docommando + \!!stringa} + +\def\doprocessregister[#1]#2% + {\begingroup + \thisisnextinternal{\s!ind}% + \ifduplicate\getlastregisterentry{#2}\fi + \doifelsevalue{\??id\currentregister\c!expansie}{\v!ja} + {\edef\ascii{#2}} + {\convertargument#2\to\ascii}% + \makesectionformat + \edef\schrijfwegnaarregister% + {\writeutility% + {r e % + {\currentregister} % + {\nextinternalreference} % + {#1} % + {\ascii} % + {\sectionformat::\noexpand\pagenumber} % + {\noexpand\realfolio}}}% + \schrijfwegnaarregister + \getfirstcharacter\currentregister + \registerinfo{> \firstcharacter}{#2}% + \endgroup} + +\def\complexdoregister[#1]#2% + {\doprocessregister[#1]{#2}% + \ifvmode\nobreak\fi + \GotoPar} + +\def\doregister#1% + {\def\currentregister{#1}% + \complexorsimpleempty{doregister}} + +\def\complexdozieregister[#1]#2#3% + {\begingroup + \thisisnextinternal{\s!ind}% + \ifduplicate\getlastregisterentry{#2}\fi + \doifelsevalue{\??id\currentregister\c!expansie}{\v!ja} + {\edef\ascii{#2}} + {\convertargument#2\to\ascii}% + \makesectionformat + \edef\schrijfwegnaarregister% + {\writeutility% + {r s % + {\currentregister} % + {\nextinternalreference} % + {#1} % + {\ascii} % + {#3} % + {\sectionformat}}}% + \schrijfwegnaarregister + \endgroup + \registerinfo{> zie}{#2}% + \GotoPar} + +\def\dozieregister#1% + {\def\currentregister{#1}% + \complexorsimpleempty{dozieregister}} + +\def\doschrijfnaarregister[#1]% % de twee-traps-aanroep is nodig + {\edef\currentregister{#1}% % om gebruik van \ExpandBothAfter + \doprocessregister} % mogelijk te maken + +\def\schrijfnaarregister% + {\dodoubleempty\doschrijfnaarregister} + +\def\ifregistergeplaatst{\ifutilitydone} + +\newif\iffirstregisterpage + +\def\c!entrya{} +\def\c!entryb{} +\def\c!entryc{} + +\def\nextregisterpage% + {\iffirstregisterpage + \doglobal\newcounter\registerpagenumber + \fi + \doglobal\increment\registerpagenumber} + +\def\doregisterpagelocation#1% + {\nextregisterpage + \hbox to 1em{\hss#1\hss}} + +\def\setregisterpage#1% + {\let\registerpageseparator=\relax + \processaction + [\getvalue{\??id#1\c!symbool}] + [ \c!n=>{\def\doregisterpage##1[##2]% + {\doregisterpagelocation{\sl\registerpagenumber}\/}}, + \c!a=>{\def\doregisterpage##1[##2]% + {\doregisterpagelocation{\sl\character{\registerpagenumber}\/}}}, + 1=>{\def\doregisterpage##1[##2]% + {\doregisterpagelocation{$\bullet$}}}, + 2=>{\def\doregisterpage##1[##2]% + {\doregisterpagelocation{\vrule\!!width1em\!!height1ex\!!depth\!!zeropoint}}}, + \s!unknown=>{\def\registerpagesymbol{\getvalue{\??id#1\c!symbool}}% + \def\doregisterpage##1[##2]% + {\doregisterpagelocation{\registerpagesymbol}}}, + \s!default=>{\def\registerpageseparator% + {{\sl,}}% + \def\doregisterpage##1[##2]% + {{\strut\sl\paginaprefix{\??id##1}[##2]\translatednumber[##2]}}}]} + +\def\doresetregister#1% + {\letvalue{#1\s!entrya}=\gobbleoneargument + \letvalue{#1\s!entryb}=\gobbleoneargument + \letvalue{#1\s!entryc}=\gobbleoneargument + \letvalue{#1\s!see}=\gobbletwoarguments + \letvalue{#1\s!page}=\gobblethreearguments + \letvalue{#1\s!entry}=\gobbleoneargument} + +\def\registerentrya#1{\executeifdefined{#1\s!entrya}\gobbleoneargument} +\def\registerentryb#1{\executeifdefined{#1\s!entryb}\gobbleoneargument} +\def\registerentryc#1{\executeifdefined{#1\s!entryc}\gobbleoneargument} +\def\registersee #1{\executeifdefined{#1\s!see}\gobbletwoarguments} +\def\registerpage #1{\executeifdefined{#1\s!page}\gobblethreearguments} +\def\registerentry #1{\executeifdefined{#1\s!entry}\gobbleoneargument} + +\newif\iffirstsubentry +\newif\iffirstsubsubentry + +\newcounter\currententrylevel + +\let\c!entryletter=\empty +\let\c!entrya =\relax +\let\c!entryb =\relax +\let\c!entryc =\relax + +\def\dosetpageregister#1% + {\dosetreglevel{\getvalue{\??id#1\c!criterium}}% + \setregisterpage{#1}% + \setvalue{#1\s!entrya}##1% + {\edef\currententrylevel{1}% + \global\let\c!entryb=\relax + \global\let\c!entryc=\relax + \gdef\c!entrya% + {\global\firstregisterpagetrue + \endgraf + \hangindent1em\noindent + \dohandleregisterentry{##1}% + \global\firstsubentrytrue + \global\firstsubsubentrytrue}}% + \setvalue{#1\s!entryb}##1% + {\edef\currententrylevel{2}% + \global\let\c!entryc=\relax + \global\def\c!entryb% + {\global\firstregisterpagetrue +\global\let\c!entrya=\relax + \endgraf + \iffirstsubentry\nobreak\fi + \hangindent2em\noindent\hskip1em\relax + \dohandleregisterentry{##1}% + \global\firstsubentryfalse + \global\firstsubsubentrytrue}}% + \setvalue{#1\s!entryc}##1% + {\edef\currententrylevel{3}% + \gdef\c!entryc% + {\global\firstregisterpagetrue +\global\let\c!entrya=\relax +\global\let\c!entryb=\relax + \endgraf + \iffirstsubsubentry\nobreak\fi + \hangindent3em\noindent\hskip2em\relax + \dohandleregisterentry{(##1)}% + \global\firstsubsubentryfalse}}% + \setvalue{#1\s!page}##1##2##3% + {\doifreglevelelse[##2] + {\global\utilitydonetrue + \c!entryletter + \def\dohandleregisterentry####1% + {\bgroup + \if!!donea + \setbox0=\hbox{\showlocation{\getvalue{\??id#1\c!tekstcommando}{####1}}}% + \gotonextinternal{\s!ind}{##1}{##3}{\copy0}% + \else + \getvalue{\??id#1\c!tekstcommando}{####1}% + \fi + \egroup + \!!doneafalse}% + \!!doneafalse + \doifelsevalue{\??id#1\c!interactie}{\v!tekst} + {\ifcase\currententrylevel + \or + \!!doneatrue\c!entrya\c!entryb\c!entryc + \or + \c!entrya\!!doneatrue\c!entryb\c!entryc + \or + \c!entrya\c!entryb\!!doneatrue\c!entryc + \fi} + {\c!entrya\c!entryb\c!entryc}% + \global\let\c!entrya=\relax + \global\let\c!entryb=\relax + \global\let\c!entryc=\relax + \global\let\c!entryletter=\relax + \iffirstregisterpage + \expandafter\hskip\getvalue{\??id#1\c!afstand}\relax + \else + \registerpageseparator % || Moet anders + |\spatie|\relax % \relax needed because | looks ahead + \fi + \doifelsevalue{\??id#1\c!interactie}{\v!paginanummer} + {\bgroup + \setbox0=\hbox{\showlocation{\doregisterpage{#1}[##2]}}% + \gotonextinternal{\s!ind}{##1}{##3}{\copy0}% + \egroup} + {\hbox{\doregisterpage{#1}[##2]}}% + \ignorespaces + \global\firstregisterpagefalse} + {}}% + \setvalue{#1\s!see}##1##2% + {\doifreglevelelse[##2::0] + {{\global\utilitydonetrue + \endgraf + \noindent\hskip\getvalue{\??id#1\c!afstand}% + \sl\e!zie: ##1}} + {}}% + \setvalue{#1\s!entry}##1% + {\gdef\c!entryletter% + {\global\let\c!entryletter=\relax + \global\utilitydonetrue + \getvalue{\??id#1\c!voor}% + %\vskip\lineheight\vskip-\lineheight\goodbreak + \vskip\lineheight\goodbreak\vskip-\lineheight + \doifelsevalue{\??id#1\c!aanduiding}{\v!ja} + {\ifhmode\unskip\else\noindent\fi + \getvalue{\??id#1\c!commando}% % needed + {\doattributes{\??id#1} + {\doifvalue{\??id#1\c!refereren}{\v!aan} + {\pagereference[#1:##1]}% + \strut\ignorespaces##1}}% + \getvalue{\??id#1\c!na}% + \par\nobreak} % don't use \string##1, other hack + {\goodbreak % needed ##1 can be \string... + \doifvalue{\??id#1\c!refereren}{\v!aan} + {\pagereference[#1:##1]}}}}} + +\def\getalllistreferences#1#2% + {\convertargument#2\to\currentregisterentry + \doifdefinedelse{\??id#1\??id\currentregisterentry} + {\edef\alllistreferences% + {\getvalue{\??id#1\??id\currentregisterentry}}% + \beforesplitstring\alllistreferences\at::\to\internallistreference + \aftersplitstring\alllistreferences\at::\to\alllistreferences} + {\let\alllistreferences=\empty + \def\internallistreference{0}}} + +\def\dosetlinkregister#1% + {\dosetreglevel{\getvalue{\??id#1\c!criterium}}% + \setregisterpage{#1}% + \setvalue{#1\s!entrya}##1% + {\global\utilitydonetrue + \c!entryletter + \iflocation + \getalllistreferences{#1}{##1}% + \endgraf\hangindent1em\noindent + % + %\thisissomeinternal{\s!lin}{\internallistreference}% + % + \pagereference[\s!lin:\internallistreference]% + % + \getcommacommandsize[\alllistreferences]% + \getfromcommacommand[\alllistreferences][1]% + \ifnum\commalistsize=1 + \let\firstlistreference=\empty + \let\midlistreference=\commalistelement + \let\lastlistreference=\empty + \else + \let\firstlistreference=\commalistelement + \getfromcommacommand[\alllistreferences][\commalistsize]% + \let\lastlistreference=\commalistelement + \ifnum\commalistsize=2 + \let\midlistreference=\empty + \else + \!!counta=\commalistsize + \divide\!!counta by 2 + \getfromcommacommand[\alllistreferences][\!!counta]% + \let\midlistreference=\commalistelement + \fi + \fi + \hskip-.25em\relax + \getvalue{\??id#1\c!tekstcommando}{##1}% + \hskip\getvalue{\??id#1\c!afstand}% + \def\dodocommando[####1-####2]% + {\gotonextinternal{\s!ind}{####1}{####2}{\copy0}}% + \def\docommando####1####2% + {\setbox0=\hbox{\showlocation{\hbox to 1em{\hss####2\hss}}}% + \ifx####1\empty + % \hskip\wd0 % (optioneel maken) + \else + \expandafter\dodocommando\expandafter[####1]% + \fi}% + {\docommando\firstlistreference\gobackwardcharacter}% + {\docommando\midlistreference\gotosomewherecharacter}% + {\docommando\lastlistreference\goforwardcharacter}% + \else + ##1% + \fi}% + \setvalue{#1\s!entry}##1% hetzelfde dus gemeenschappelijk + {\gdef\c!entryletter% + {\global\utilitydonetrue + \global\let\c!entryletter=\relax + \getvalue{\??id#1\c!voor}% + %\vskip\lineheight\vskip-\lineheight\goodbreak + \vskip\lineheight\goodbreak\vskip-\lineheight + \doifelsevalue{\??id#1\c!aanduiding}{\v!ja} + {\ifhmode\unskip\else\noindent\fi + \getvalue{\??id#1\c!commando}% % needed + {\doattributes{\??id#1} + {\doifvalue{\??id#1\c!refereren}{\v!aan} + {\pagereference[#1:##1]}% + \strut##1}}% + \getvalue{\??id#1\c!na}% + \par\nobreak} % don't use \string##1, other hack + {\goodbreak % needed ##1 can be \string... + \doifvalue{\??id#1\c!refereren}{\v!aan} + {\pagereference[#1:##1]}}}}} + +\def\dosetregister#1% + {\doifelsevalue{\??id#1\c!koppeling}{\v!ja} + {\dosetlinkregister{#1}} + {\dosetpageregister{#1}}} + +\newcounter\internallistreference + +\def\doloadregisterlinks#1% + {\dosetreglevel{\getvalue{\??id#1\c!criterium}}% + \setregisterpage{#1}% + \setvalue{#1\s!entrya}##1% + {\global\firstregisterpagetrue + \doglobal\convertargument##1\to\currentregisterentry % \doglobal nodig? + \doglobal\increment\internallistreference}% + \setvalue{#1\s!page}##1##2##3% + {\doifreglevelelse[##2] + {\global\utilitydonetrue + \iffirstregisterpage + \global\firstregisterpagefalse + \setxvalue{\??id#1\??id\currentregisterentry}% + {\internallistreference::##1-##3}% + \else + \setxvalue{\??id#1\??id\currentregisterentry}% + {\getvalue{\??id#1\??id\currentregisterentry},##1-##3}% + \fi} + {}}} + +\def\dokoppelregister[#1][#2]% + {\iflocation + \begingroup + \let\dosetregister=\doloadregisterlinks + \stelregisterin[#1][#2]% + \doutilities{#1}{\jobname}{#1}{}{}% + \endgroup + \fi} + +\def\koppelregister% + {\dodoubleempty\dokoppelregister} + +\def\doprocesslinkedregister[#1][#2]#3% + {\hbox + {\doprocessregister[#2]{#3}% + \let\firstlistreference=\empty + \let\lastlistreference=\empty + \let\selflistreference=\empty + \let\prevlistreference=\empty + \let\nextlistreference=\empty + \getalllistreferences{#1}{#3}% + \doifnot{\alllistreferences}{} + {\def\dodocommando[##1-##2]% + {\ifx\firstlistreference\empty + \def\firstlistreference{##1-##2}% + \fi + \def\lastlistreference{##1-##2}% + \ifnum##1<\nextinternalreference\relax + \def\prevlistreference{##1-##2}% + \else\ifnum##1>\nextinternalreference\relax + \def\nextlistreference{##1-##2}% + \def\dodocommando[####1-####2]% + {\def\lastlistreference{####1-####2}}% + \else + \def\selflistreference{##1-##2}% + \fi\fi}% + \def\docommando##1% + {\dodocommando[##1]}% + \processcommacommand[\alllistreferences]\docommando}% + \ifx\prevlistreference\empty + \let\prevlistreference=\lastlistreference + %\let\gobackwardcharacter=\gotoendcharacter + \fi + \ifx\nextlistreference\empty + \let\nextlistreference=\firstlistreference + %\let\goforwardcharacter=\gotobegincharacter + \fi + \ifx\prevlistreference\selflistreference + \let\prevlistreference=\empty + \let\nextlistreference=\empty + \fi + \def\dodocommando[##1-##2]% + {\gotonextinternal{\s!ind}{##1}{##2}{\copy0}}% + \def\docommando##1##2% + {\setbox0=\hbox to 1em{\hss\showlocation{##2}\hss}% + \ifx##1\empty + \hskip\wd0 % (optioneel maken) + \else + \expandafter\dodocommando\expandafter[##1]% + \fi}% + \bgroup + \docommando\prevlistreference{\gobackwardcharacter}% + \egroup + \bgroup + \doifreferencefoundelse{\s!lin:\internallistreference} + {\gotosomeinternal + {\s!lin}{\internallistreference}{\currentrealreference} + {\showlocation{#3}}} + {\hbox{#3}}% + \egroup + \bgroup + \docommando\nextlistreference{\goforwardcharacter}% + \egroup}} + +\def\dodolinkedregister[#1][#2]#3% + {\bgroup + \def\currentregister{#1}% + \iflocation + \doifelsevalue{\??id#1\c!koppeling}{\v!ja} + {\def\next{\doprocesslinkedregister[#1][#2]{#3}}} + {\def\next{\doprocessregister[#2]{#3}}}% ook hier [#1] + \else + \def\next{\doprocessregister[#2]{#3}}% + \fi + \next + \egroup + \ifvmode\nobreak\fi + \GotoPar} + +\def\dolinkedregister#1% + {\dodoubleempty\dodolinkedregister[#1]} + +\def\complexdoplaatsregister[#1]% + {\begingroup + \stelregisterin[\currentregister][#1]% + \raggedright + \startkolommen + [\c!n=\getvalue{\??id\currentregister\c!n}, + \c!balanceren=\getvalue{\??id\currentregister\c!balanceren}, + \c!uitlijnen=\getvalue{\??id\currentregister\c!uitlijnen}]% + \mindermeldingen + \startopelkaar[\v!blanko]% + \doutilities{\currentregister}{\jobname}{\currentregister}{}{\par}% + \stopopelkaar + \stopkolommen + \endgroup} + +\def\doplaatsregister[#1]% + {\def\currentregister{#1}% + \complexorsimpleempty{doplaatsregister}} + +\def\plaatsregister% + {\dosingleargument\doplaatsregister} + +\def\complexdovolledigregister[#1]% \@EA's kunnen weg + {\@EA\plaatsvolledig\@EA{\@EA\systemsuppliedchapter\@EA}% + \@EA{\@EA\currentregister\@EA}% + \@EA{\@EA\headtext\@EA{\currentregister}}% + {\complexdoplaatsregister[#1]}} + +\def\dovolledigregister[#1]% + {\def\currentregister{#1}% + \complexorsimpleempty{dovolledigregister}} + +\def\volledigregister% + {\dosingleargument\doplaatsregister} + +\def\dodefinieerregister[#1][#2]% + {\stelregisterin[#1]% + [\c!n=2, + \c!balanceren=\v!ja, % \v!nee komt niet zo vaak voor + \c!uitlijnen=\v!nee, + \c!voor=\blanko, % binnen kolommen: \blanko[\v!regel] + \c!na=, + \c!symbool=, + \c!interactie=\v!paginanummer, + \c!afstand=1em, + \c!letter=\v!vet, + \c!aanduiding=\v!ja, + \v!deel\c!nummer=\v!ja, + \v!hoofdstuk\c!nummer=\v!nee, + \c!criterium=\v!alles, + \c!commando=, + \c!refereren=\v!aan]% + \presetheadtext[#1=\Woord{#1}]% + \setvalue{#1}% + {\doregister{#1}}% + \setvalue{\e!gekoppelde#1}% + {\dolinkedregister{#1}}% + \setvalue{\s!set#1}% + {\dosetregister{#1}}% + \setvalue{\s!reset#1}% + {\doresetregister{#1}}% + \addutilityreset{#1}% + \setvalue{\e!zie#1}% + {\dozieregister{#1}}% + \setvalue{\e!plaats#1}% + {\doplaatsregister[#1]}% + \setvalue{\e!volledige#1}% + {\dovolledigregister[#1]}% + \setvalue{\e!stel#1\e!in}[##1]% + {\getparameters[\??id#1][##1]}} + +\def\definieerregister% + {\dodoubleargument\dodefinieerregister} + +\def\registerlengte {\utilityregisterlength} + +\def\utilityregisterlength {0} + +\def\dobepaalregisterkenmerken[#1][#2]% + {\begingroup + \stelregisterin[#1][#2]% + \dosetreglevel{\getvalue{\??id#1\c!criterium}}% + \setvalue{#1\s!page}##1##2##3% + {\doifreglevelelse[##2] + {\doglobal\increment\utilitylistlength + \global\utilitydonetrue} + {}}% + \doglobal\newcounter\utilityregisterlength + \setbox0=\vbox + {\doutilities{#1}{\jobname}{#1}{}{}}% + \endgroup} + +\def\bepaalregisterkenmerken% + {\dodoubleempty\dobepaalregisterkenmerken} + +%I n=Index +%I c=\index,\zieindex,\volledigeindex +%I +%I Een ingang naar de index wordt gecreeerd met: +%I +%I \index[ascii]{ingang+ingang+ingang} +%I +%I Een verwijzing wordt gecreerd met: +%I +%I \zieindex[ascii]{ingang+ingang+ingang}{andere ingang} +%I +%I Een index kan (vooralsnog) alleen een eenvoudig +%I zetcommando afhandelen, bijvoorbeeld: \index{\bf{test}} of +%I \index{\kap{anwb}}. Meer is vaak niet nodig. +%I +%I Als een ingang niet goed gesorteerd wordt, dient [ascii] +%I te worden meegegeven: \index[anwb]{\kap{anwb}}. +%I +%I Een index wordt gegenereerd met: +%I +%I \plaatsindex +%I \volledigeindex + +%T n=index +%T m=ind +%T a=i +%T +%T \index{?} + +%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. + +% nog \definieerbuffer[naam] +% +% \startnaam == \startbuffer[#1][naam] + +% \EveryPar% +% {\doglobal\newcounter\NOfLines} +% +% \EveryLine% +% {\doglobal\increment\NOfLines% +% \hskip-3em% +% \hbox to 3em{\hss\NOfLines\hskip1em}} + +%\def\dostartbuffer[#1][#2]% +% {\showmessage{\m!systems}{15}{#1}% +% \doifelse{#2}{} +% {\let\stopbuffer=\relax % \undefined +% \convertargument\stopbuffer\to\endofblock} +% {\letvalue{#2}=\relax % \undefined +% \@EA\convertargument\csname#2\endcsname\to\endofblock}% +% \def\closeblock% +% {\immediate\closeout\tmpblocks +% \egroup +% \getvalue{#2}}% +% \doifelsenothing{#1} +% {\immediate\openout\tmpblocks=\jobname.\f!temporaryextension} +% {\immediate\openout\tmpblocks=#1.\f!temporaryextension}% +% \setupcopyblock +% \def\writeoutblocks##1{}% +% \copyblockline} + +\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\dostartbuffer[#1][#2][#3]% + {\showmessage{\m!systems}{15}{#1}% + \doifelse{#3}{} + {\let\stopbuffer=\relax % \undefined + \convertargument startbuffer\to\beginofblock % else a space + \let\processnextblockline=\processnextbufferline + \convertargument\stopbuffer\to\endofblock} + {\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}% + \newcounter\nestedbufferlevel + \setupcopyblock + \def\writeoutblocks##1{}% + \copyblockline} + +\def\startbuffer% + {\bgroup + \obeylines % nodig, anders gaat 't fout als direct \starttabel (bv) + \dotripleempty\dostartbuffer} + +\def\dobuffer[#1]#2% + {\doifelsenothing{#1} + {#2{\jobname.\f!temporaryextension}{}{}} + {#2{#1.\f!temporaryextension}{}{}}} + +\def\dohaalbuffer[#1]% + {\@@buvoor +\beginrestorecatcodes + \showmessage{\m!systems}{16}{#1}% + \dobuffer[#1]\readjobfile +\endrestorecatcodes + \@@buna} + +\def\haalbuffer% + {\dosingleempty\dohaalbuffer} + +\def\dotypebuffer[#1]% + {\bgroup + % no, just like \starttyping % \setuptyping[\c!voor=\@@buvoor,\c!na=\@@buna]% + \showmessage{\m!systems}{17}{#1}% + \dobuffer[#1]\typefile + \egroup} + +\def\typebuffer% + {\dosingleempty\dotypebuffer} + +\def\stelbufferin% + {\dodoubleargument\getparameters[\??bu]} + +%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 kom tneer 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. + +\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=\f!utilityfilename.\f!temporaryextension} + +\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 + \def\copynextline{}% + \fi + \copynextline}% + \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% + {\!!counta=1\relax + \loop + \catcode\!!counta=\@@other + \advance\!!counta by 1\relax + \ifnum\!!counta<255\relax + \repeat + \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% + {\def\opentmpblock{}% + \def\closetmpblock{}% + \def\writetmpblock##1{}% + \saveblock} + +\def\loadoneblock% + {\readjobfile{\f!utilityfilename.\f!temporaryextension}{}{}} + +\def\dodefinieerblok[#1]% + {\passeerblok[#1]% + \handhaafblokken[#1]% + \stelblokin + [#1] + [\c!voor=\blanko, + \c!na=\blanko, + \c!binnen=, + \c!letter=, + \c!file=\jobname]} + +\def\definieerblok% + {\dosingleargument\dodefinieerblok} + +\def\dostelblokin[#1][#2]% + {\getparameters[\??tb#1][#2]} + +\def\stelblokin% + {\dodoubleargument\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}{}% + \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\relax + \doifinsetelse{-}{#3} + {\showwarning{\m!textblocks}{10}{\bloktitel}% + \setvalue{\s!thiswasblock#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}{}% + \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 + \getfromcommalist[#1][1]% + \doifdefined{\??tb\commalistelement\c!file} + {\loadallblocks{\getvalue{\??tb\commalistelement\c!file}}}% + \endgroup} + +\def\gebruikblokken% + {\begingroup + \doassign[\??bs][\c!criterium=\v!alles]% + \dodoubleempty\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 +%I Achter de tekst kan een achtergrond worden geplaatst. +%I Voor de afzonderlijke elementen van een tekst wordt een +%I achtergrond gedefinieerd met het commando: +%I +%I \stelachtergrondenin +%I [boven,hoofd,tekst,voet,onder] +%I [linkerrand,rechterrand,linkermarge,reachtermarge,tekst] +%I [achtergrond=,kleur=,raster=] +%I +%I Voor de hele bladzijde gebruiken we: +%I +%I \stelachtergrondenin +%I [pagina] +%I [achtergrond=,kleur=,raster=] +%P +%I Het is mogelijk elk blok iets ruimer om de tekst te +%I plaatsen met: +%I +%I \stelachtergrondenin +%I [pagina] +%I [offset=,diepte=] +%I +%I Een offset van .25\korpsgrootte en een diepte van +%I .5\korpsgrootte voldoen aardig. +%I +%I Er kunnen ronde hoeken worden gezet met: +%I +%I \stelachtergrondenin +%I [pagina] +%I [hoek=,straal=] +%I +%I Hierbij kan voor hoek de instelling rond of recht worden +%I meegegeven en voor straal een dimensie. + +% Don't use \@@mawhatevercommand directly, use \getvalue instead. + +\newif\ifnewbackground +\newif\ifsomebackground + +\newbox\leftbackground +\newbox\rightbackground + +\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\addpagebackground#1% + {\doifbothsidesoverruled + \doaddpagebackground{\v!rechterpagina}{#1}% + \orsideone + \doaddpagebackground{\v!rechterpagina}{#1}% + \orsidetwo + \doaddpagebackground{\v!linkerpagina}{#1}% + \od + \doaddpagebackground{\v!pagina}{#1}} + +\let\pagebackgroundhoffset = \!!zeropoint +\let\pagebackgroundvoffset = \!!zeropoint +\let\pagebackgrounddepth = \!!zeropoint + +% #1 = breedte +% #2 = hoogte +% #3 = pos +% #4 = pos + +% \def\dododopagebodybackground#1#2#3#4% +% {\doifelsevaluenothing{\??ma#3#4\c!achtergrond} +% {\doifelsevalue{\??ma#3#4\c!kader}{\v!aan} % niet waterdicht, ook deelkaders +% {\!!doneatrue} +% {\!!doneafalse}} +% {\!!doneatrue}% +% \if!!donea +% \localframed +% [\??ma#3#4] +% [\c!breedte=#1,\c!hoogte=#2,\c!offset=\v!overlay] +% {\getvalue{\??ma#3#4\c!commando}}% +% \else +% \hskip#1% +% \fi} + +\def\dododopagebodybackground#1#2#3#4% + {\edef\!!stringe{\??ma#3#4}% + \doifelsevaluenothing{\!!stringe\c!achtergrond } + {\doifelsevalue{\!!stringe\c!kader }\v!aan\!!doneatrue + {\doifelsevalue{\!!stringe\c!linker\c!kader }\v!aan\!!doneatrue + {\doifelsevalue{\!!stringe\c!rechter\c!kader}\v!aan\!!doneatrue + {\doifelsevalue{\!!stringe\c!boven\c!kader }\v!aan\!!doneatrue + {\doifelsevalue{\!!stringe\c!onder\c!kader }\v!aan\!!doneatrue + \!!doneafalse}}}}} + \!!doneatrue + \if!!donea + \localframed + [\??ma#3#4] + [\c!breedte=#1,\c!hoogte=#2,\c!offset=\v!overlay] + {\getvalue{\??ma#3#4\c!commando}}% + \else + \hskip#1% + \fi} + +\def\dodopagebodybackground#1#2% + {\setbox0=\vbox to #2 + \bgroup\hbox\bgroup + \swapmargins + \goleftonpage + \dododopagebodybackground\linkerrandbreedte#2#1\v!linkerrand + \hskip\linkerrandafstand + \hskip\pageseparation + \dododopagebodybackground\linkermargebreedte#2#1\v!linkermarge + \hskip\linkermargeafstand + \dododopagebodybackground\zetbreedte#2#1\v!tekst + \hskip\rechtermargeafstand + \dododopagebodybackground\rechtermargebreedte#2#1\v!rechtermarge + \hskip\pageseparation + \hskip\rechterrandafstand + \dododopagebodybackground\rechterrandbreedte#2#1\v!rechterrand + \egroup\egroup + \wd0=\!!zeropoint\relax + \box0\relax} + +\def\setbackgroundbox#1#2% + {\global\setbox#1=\vbox + {\offinterlineskip + \mindermeldingen + \calculatereducedvsizes + #2\relax + \vskip-\bovenhoogte + \vskip-\bovenafstand + \dodopagebodybackground\v!boven\bovenhoogte + \vskip\bovenafstand + \dodopagebodybackground\v!hoofd\hoofdhoogte + \vskip\hoofdafstand + \dodopagebodybackground\v!tekst\teksthoogte + \vskip\voetafstand + \dodopagebodybackground\v!voet\voethoogte + \vskip\onderafstand + \dodopagebodybackground\v!onder\onderhoogte + \vfilll}% + \smashbox#1} + +\def\setbackgroundboxes% + {\ifsomebackground\ifnewbackground + \showmessage{\m!layouts}{8}{}% + \docheckbackgrounddefinitions + \setbackgroundbox\leftbackground\relax + \ifdubbelzijdig + \setbackgroundbox\rightbackground\doswapmargins + \fi + \global\newbackgroundfalse + \doifelsevaluenothing{\??ma\v!tekst\v!tekst\c!achtergrond} + {\global\let\pagebackgroundhoffset=\!!zeropoint + \global\let\pagebackgroundvoffset=\!!zeropoint + \global\let\pagebackgrounddepth=\!!zeropoint} + {\bgroup + \dimen0=\getvalue{\??ma\v!pagina\c!offset}% + \doifnothing + {\getvalue{\??ma\v!boven\v!tekst\c!achtergrond}% + \getvalue{\??ma\v!onder\v!tekst\c!achtergrond}} + {\xdef\pagebackgroundhoffset{\the\dimen0}}% + \doifnothing + {\getvalue{\??ma\v!tekst\v!rechterrand\c!achtergrond}% + \getvalue{\??ma\v!tekst\v!linkerrand\c!achtergrond}} + {\xdef\pagebackgroundvoffset{\the\dimen0}% + \dimen0=\getvalue{\??ma\v!pagina\c!diepte}% + \xdef\pagebackgrounddepth{\the\dimen0}}% + \egroup}% + \fi\fi} + +\def\getbackgroundbox% + {\ifsomebackground + \setbackgroundboxes + \startinteractie + \doifmarginswapelse + {\copy\leftbackground} + {\copy\rightbackground}% + \stopinteractie + \fi} + +% saves us hundreds of unused hash entries if not needed + +\def\docheckbackgrounddefinitions% allocates about 1000 hash-entries + {\doifdefined{\??ma\v!pagina\c!achtergrond}% skip first pass + {\def\dodocommando##1##2% + {\copylocalframed[\??ma##1##2][\??ma\v!pagina]% + \getparameters[\??ma##1##2] + [\c!achtergrond=,\c!kader=,\c!kleur=,\c!raster=]% + \copyparameters + [\??ma##1##2\c!kader][\??ma##1##2] + [\c!kleur,\c!raster]% + \copyparameters + [\??ma##1##2\c!achtergrond][\??ma##1##2] + [\c!kleur,\c!raster]}% + \def\docommando##1% + {\dodocommando##1\v!linkerrand \dodocommando##1\v!linkermarge + \dodocommando##1\v!tekst + \dodocommando##1\v!rechtermarge \dodocommando##1\v!rechterrand}% + \docommando\v!boven \docommando\v!hoofd + \docommando\v!tekst + \docommando\v!voet \docommando\v!onder + \def\docheckbackgrounddefinitions% + {\global\somebackgroundtrue}}} + +\def\dostelachtergrondenin[#1][#2][#3]% + {\docheckbackgrounddefinitions + \global\newbackgroundtrue + \iffirstargument % \dostelachtergrondenin zonder arg mag + \ifthirdargument + \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 + \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]}% + \fi + \fi} + +\def\stelachtergrondenin% + {\dotripleempty\dostelachtergrondenin} + +% a lot of setups, including short ones + +\presetlocalframed [\??ma\v!pagina] +\presetlocalframed [\??ma\v!linkerpagina] +\presetlocalframed [\??ma\v!rechterpagina] + +\copyparameters + [\??ma\v!pagina\c!kader][\??ma\v!pagina] + [\c!offset,\c!diepte,\c!straal,\c!hoek,\c!kleur,\c!raster] + +\copyparameters + [\??ma\v!pagina\c!achtergrond][\??ma\v!pagina] + [\c!offset,\c!diepte,\c!straal,\c!hoek,\c!kleur,\c!raster] + +\copyparameters + [\??ma\v!linkerpagina\c!kader][\??ma\v!linkerpagina] + [\c!offset,\c!diepte,\c!straal,\c!hoek,\c!kleur,\c!raster] + +\copyparameters + [\??ma\v!linkerpagina\c!achtergrond][\??ma\v!linkerpagina] + [\c!offset,\c!diepte,\c!straal,\c!hoek,\c!kleur,\c!raster] + +\copyparameters + [\??ma\v!rechterpagina\c!kader][\??ma\v!rechterpagina] + [\c!offset,\c!diepte,\c!straal,\c!hoek,\c!kleur,\c!raster] + +\copyparameters + [\??ma\v!rechterpagina\c!achtergrond][\??ma\v!rechterpagina] + [\c!offset,\c!diepte,\c!straal,\c!hoek,\c!kleur,\c!raster] + +\def\@@pageseparation {6pt} +\def\pageseparation {0pt} + +\def\paginascheiding {\pageseparation} + +\def\dosetpageseparation% + {\let\pageseparation=\!!zeropoint + \let\showpageseparation=\relax + \processaction + [\getvalue{\??ma\v!pagina\c!scheider}] + [ \v!ruim=>\let\pageseparation=\@@pageseparation + \let\showpageseparation=\showloosepageseparation, + \v!passend=>\let\pageseparation=\@@pageseparation + \let\showpageseparation=\showtightpageseparation]} + +\def\showloosepageseparation% + {\ifdim\pageseparation>\!!zeropoint\relax + \bgroup + \setbox0=\hbox + {\vrule + \!!width\pageseparation + \!!depth\papierhoogte + \!!height\papierhoogte}% + \ht0=\!!zeropoint + \dp0=\!!zeropoint + \box0 + \egroup + \fi} + +\def\showtightpageseparation% + {\ifdim\pageseparation>\!!zeropoint\relax + \bgroup + \dimen0=\teksthoogte + \advance\dimen0 by \kopwit + \doifsometextlineelse{\v!hoofd} + {\advance\dimen0 by \hoofdhoogte + \advance\dimen0 by \hoofdafstand} + {}% + \dimen2=\papierhoogte + \advance\dimen2 by -\dimen0 +%\advance\dimen0 by -1cm % nog eens optie +%\advance\dimen2 by -1cm % nog eens optie + \setbox0=\hbox + {\vrule + \!!width\pageseparation + \!!depth\dimen2 + \!!height\dimen0}% + \ht0=\!!zeropoint + \dp0=\!!zeropoint + \box0 + \egroup + \fi} + +%I n=File-management +%I c=\starttekst,\startprojekt,\startonderdeel,\startprodukt +%I c=\startomgeving,\startdeelomgeving +%I +%I Een eenvoudige tekst wordt gestart en gestopt met de +%I commando's: +%I +%I \starttekst +%I \stoptekst +%P +%I Het is mogelijk een projektstructuur op te zetten. Per +%I projekt wordt een file aangemaakt waarin de volgende +%I commando's voorkomen: +%I +%I \startprojekt naam +%I \stopprojekt +%I +%I Als deze file in TeX wordt geladen, dan worden alle +%I produkten achter elkaar gezet. +%I +%I Een produkt wordt gedefinieerd met: +%I +%I \startprodukt naam +%I \stopprodukt +%I +%I Deze file kan zelfstandig door TeX worden gehaald. +%P +%I Een omgeving wordt gedefinieerd door: +%I +%I \startomgeving naam +%I \stopomgeving +%I +%I Een onderdeel wordt gedefinieerd door: +%I +%I \startonderdeel naam +%I \stoponderdeel +%I +%I Files worden eerst gezocht op het actuele gebied. Als een +%I file niet aanwezig is wordt op de 'roots' gezocht. +%I +%I Een onderdeel kan zelfstandig door TeX worden gehaald. +%P +%I Binnen een projekt, produkt, omgeving of onderdeel komen +%I de volgende instellingen voor (tussen haakjes=facultatief): +%I +%I projekt omgeving produkt onderdeel +%I +%I \projekt naam * * +%I \omgeving naam (*) (*) (*) (*) +%I \produkt naam * +%I \onderdeel naam (*) (*) +%I +%I Binnen een omgeving kunnen deelomgevingen worden gedefinieerd +%I die alleen voor bepaalde produkten, onderdelen enz. gelden. +%I +%I \startdeelomgeving[naam,...,naam] +%I commando's +%I \stopdeelomgeving +%P +%I Het programma TeXEdit doorzoekt bij het aanmaken van een +%I file-menu de hele tekst op de genoemde commando's. Bij een +%I lange tekst kan dit misschien 'te' lang duren. Met het +%I commando: +%I +%I \geenfilesmeer +%I +%I kan worden aangegeven dat er geen structuurcommando's meer +%I volgen. +%I +%I Ten behoeve van TeXUtil moet in plaats van het commando +%I \input het commando \verwerkfile{naam} worden gebruikt. +%P +%I Als men standaard een en ander wil instellen, dan kan men +%I dit doen in de file 'cont-sys.tex'. Deze file wordt direkt +%I na het opstarten geladen cq. uitgevoerd. Daarnaast wordt, +%I indien aanwezig, de file 'cont-new.tex' geladen. + +%T n=starttekst +%T m=sta +%T a=x +%T +%T \starttekst +%T +%T ? +%T +%T \stoptekst + +\def\currentproject {} +\def\currentproduct {} +\def\currentenvironment {} +\def\currentcomponent {} + +\def\loadedfiles {} +\def\processedfiles {} + +\let\geenfilesmeer=\relax + +\newcounter\textlevel +\newcounter\fileprocesslevel + +\setvalue{\c!file::0}{\jobname} + +\def\processedfile% + {\getvalue{\c!file::\fileprocesslevel}} + +\def\processfile#1% + {\doglobal\increment\fileprocesslevel + \setxvalue{\c!file::\fileprocesslevel}{#1}% + \@EA\doglobal\@EA\addtocommalist\@EA{#1}\processedfiles + \readlocfile{#1}{}{} + \doglobal\decrement\fileprocesslevel} + +\def\registreerfileinfo#1#2% + {\immediatewriteutility{f #1 {#2}}} + +\doifundefined{preloadfonts} {\let\preloadfonts=\relax} +\doifundefined{preloadspecials} {\let\preloadspecials=\relax} + +\def\loadsystemfiles% + {\readsysfile{\f!newfilename} + {\showmessage{\m!systems}{2}{\f!newfilename}}{}% + \readsysfile{\f!oldfilename} + {\showmessage{\m!systems}{2}{\f!oldfilename}}{}% + \readsysfile{\f!filfilename} + {\showmessage{\m!systems}{2}{\f!filfilename}}{}% + \readsysfile{\f!sysfilename} + {\showmessage{\m!systems}{2}{\f!sysfilename}}{}} + +\def\loadoptionfile% + {\readsysfile{\f!optfilename} + {\showmessage{\m!systems}{2}{\f!optfilename}}{}} + +% \newevery \everyjob \EveryJob +% \appendtoks ... \to \everyjob + +\appendtoks \meldaanmaakdatum \to \everyjob +\appendtoks \loadsystemfiles \to \everyjob +\appendtoks \preloadfonts \to \everyjob +\appendtoks \settopskip \to \everyjob +\appendtoks \preloadspecials \to \everyjob +\appendtoks \openspecialfile \to \everyjob +\appendtoks \checkutilityfile \to \everyjob +\appendtoks \openutilities \to \everyjob +\appendtoks \loadoptionfile \to \everyjob +\appendtoks \loadtwopassdata \to \everyjob +\appendtoks \setupfootnotes \to \everyjob % eigenlijk ergens anders + % hangt af van korps +\let\normalend=\end +\newevery \everybye \EveryBye + +\def\end% + {\the\everybye + \normalend} + +\appendtoks \pagina[\v!laatste] \pagina + \ifarrangingpages\poparrangedpages\fi \to \everybye + +\appendtoks \registreerfileinfo{e}{\jobname} \to \everybye +\appendtoks \stopcopyingblocks \to \everybye +\appendtoks \closeutilities \to \everybye +\appendtoks \closespecialfile \to \everybye + +\def\starttekst% + {\ifnum\textlevel=0\relax + \registreerfileinfo{b}{\jobname}% + \startcopyingblocks + \fi + \doglobal\increment\textlevel\relax} + +\def\stoptekst% + {\doglobal\decrement\textlevel\relax + \ifnum\textlevel>0\relax + \let\next=\relax + \else + \let\next=\end + \fi + \next} + +\def\doexecutefileonce#1% + {\beforesplitstring#1\at.\to\currentfile + \ExpandBothAfter\doifnotinset{\currentfile}{\loadedfiles}% + {\ExpandFirstAfter\addtocommalist{\currentfile}\loadedfiles + \doexecutefile{#1}}} + +\def\doexecutefile#1% + {\registreerfileinfo{b}{#1} + \processfile{#1}% + \registreerfileinfo{e}{#1}} + +\def\donotexecutefile#1% + {} + +\def\verwerkfile#1 % + {\doexecutefile{#1}} + +\def\omgeving #1 % at outermost level only + {\def\startomgeving ##1 {}% + \let\stopomgeving=\relax + \startreadingfile + \readlocfile{#1}{}{}% + \stopreadingfile} + +\newcounter\filelevel + +\def\!!donextlevel#1#2#3#4#5#6\\% + {\beforesplitstring#6\at.\to#1 + \ifnum\filelevel=0\relax + \starttekst + \def\projekt ##1 {#2{##1}}% + \def\omgeving ##1 {#3{##1}}% + \def\produkt ##1 {#4{##1}}% + \def\onderdeel ##1 {#5{##1}}% + \fi + \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\startprojekt #1 % + {\!!donextlevel\currentproject + \donotexecutefile\doexecutefileonce + \doexecutefileonce\doexecutefile#1\\} + +\def\stopprojekt% + {\doprevlevel} + +\def\startprodukt #1 % + {\!!donextlevel\currentproduct + \doexecutefileonce\doexecutefileonce + \donotexecutefile\doexecutefile#1\\} + +\def\stopprodukt% + {\doprevlevel} + +\def\startonderdeel #1 % + {\!!donextlevel\currentcomponent + \doexecutefileonce\doexecutefileonce + \donotexecutefile\doexecutefile#1\\} + +\def\stoponderdeel% + {\doprevlevel} + +\def\startomgeving #1 % + {\!!donextlevel\currentenvironment + \donotexecutefile\doexecutefileonce + \donotexecutefile\donotexecutefile#1\\} + +\def\stopomgeving% + {\doprevlevel} + +\long\def\skipdeelomgeving#1\stopdeelomgeving% + {} + +\def\startdeelomgeving[#1]% + {\def\partialenvironments{}% + \def\docommando##1% + {\beforesplitstring##1\at.\to\someevironment + \ExpandFirstAfter\addtocommalist{\someevironment}\partialenvironments}% + \processcommalist[#1]\docommando + \ExpandBothAfter\doifcommonelse + {\currentproject,\currentproduct, + \currentcomponent,\currentenvironment} + {\partialenvironments} + {\let\stopdeelomgeving=\relax + \let\next=\relax} + {\let\next=\skipdeelomgeving}% + \next} + +\def\startproduct{\startproduct} +\def\stopproduct {\stopproduct} +\def\startproject{\startprojekt} +\def\stopproject {\stopprojekt} + +\def\project{\projekt} +\def\product{\produkt} + +\def\deelomgeving #1 % + {\doexecutefileonce{#1}} + +\expanded + {\long\noexpand\def\csname\e!start\e!instellingen\endcsname##1 ##2\csname\e!stop\e!instellingen\endcsname% + {\noexpand\long\noexpand\setvalue{\??su##1}{##2}}} + +\long\def\startsetups#1 #2\stopsetups% for international purposes + {\long\setvalue{\??su#1}{#2}} + +\def\dodosetups#1% + {\getvalue{\??su#1}} + +\def\dosetups[#1]% + {\iffirstargument + \dodosetups{#1}% + \else + \expandafter\dodosetups + \fi} + +\def\setups% + {\dosingleargument\dosetups} + +\newif\ifvoorlopig +\voorlopigfalse + +\newif\ifconcept +\conceptfalse + +\def\infofont% + {\getvalue{7pttttf}} + +%\def\mathinfofont% +% {\eightpoint\tt} + +\edef\utilityversion {1996.03.15} +\edef\contextversion {\the\normalyear.\the\normalmonth.\the\normalday\normalspace} +\edef\copyrightversion {Copyright 1990-\the\normalyear\normalspace / PRAGMA / J. Hagen - A.F. Otten} + +% Nog toevoegen: +% +% For calculating random numbers we use Donald Arseneau's macros. + +\def\meldaanmaakdatum% + {\writeline + \writestring{This is CONTEXT version <\contextversion> + interface <\currentinterface> + responses <\currentresponses>}% + \writeline + \writestring{This package is based on Plain TeX. It uses an adapted version of the}% + \writestring{extended mark mechanism of J. Fox (1987) and a few parts of the sidefloat}% + \writestring{mechanism of D. Comenetz (1993). Most of D.E. Knuth's Plain TeX}% + \writestring{(\fmtversion) is available and can be used without problems. This package}% + \writestring{uses TaBlE, a package designed and copyrighted by M.J. Wichura (1988).}% + \writestring{Only a few auxiliary files are generated, of which some must be processed}% + \writestring{by TeXUtil (\utilityversion). The current blockversion is \blockversion.}% + \writeline + \writestring{\copyrightversion}% + \writeline} + +\startinterface dutch + +\def\meldaanmaakdatum% + {\writeline + \writestring{Dit is CONTEXT versie <\contextversion> + interface <\currentinterface> + meldingen <\currentresponses>}% + \writeline + \writestring{Dit pakket is gebaseerd op Plain TeX. Er wordt gebruik gemaakt van een}% + \writestring{aangepaste versie van het mark mechanisme van J. Fox (1987) en onderdelen}% + \writestring{van het sidefloat mechanisme van D. Comenetz (1993). De functionaliteit}% + \writestring{van D.E. Knuth's Plain TeX (\fmtversion) is grotendeels beschikbaar en kan}% + \writestring{zonder problemen worden gebruikt. Dit pakket gebruikt TaBlE, ontworpen door}% + \writestring{M.J. Wichura (1988), die ook het auteursrecht bezit. Er worden slechts een}% + \writestring{paar hulpfiles gegenereerd, waarvan er enkele moeten worden bewerkt door}% + \writestring{TeXUtil (\utilityversion). Het blokmechanisme heeft versienummer \blockversion.}% + \writeline + \writestring{\copyrightversion}% + \writeline} + +\stopinterface + +\startinterface german + +\def\meldaanmaakdatum% + {\writeline + \writestring{Dies ist CONTEXT Version <\contextversion> + Interface <\currentinterface> + Meldungen <\currentresponses>}% + \writeline + \writestring{Dieses Paket basiert auf Plain-TeX und benutzt eine angepasste Version}% + \writestring{des erweiterten mark-Mechanismus von J. Fox (1987) und einige Teile des}% + \writestring{sidefloat-Mechanismus von D. Comenetz (1993). Ein Grossteil D.E. Knuths}% + \writestring{Plain-TeX (\fmtversion) ist verfuegbar und kann ohne Probleme benutzt werden.}% + \writestring{Dieses Paket benutzt TaBlE, ein von M.J. Wichura (1988) erstelltes und}% + \writestring{geschuetztes Paket. Nur einige Hilfsdateien werden erstellt; einige davon}% + \writestring{muessen von TeXUtil (\utilityversion) bearbeitet werden. Die aktuelle Block-}% + \writestring{version ist \blockversion.}% + \writeline + \writestring{\copyrightversion}% + \writeline} + +\stopinterface + +\def\meldveranderingen% + {\writeline + \writestring{Currently, the reference mechanism of ConTeXt is optimized as well as}% + \writestring{extended. There is also beta grid snapping in combination with some}% + \writestring{more footnote features. Please report any anomalities to pragma@pi.net.}% + \writeline + \writestring{At this moment some pdfTeX primitives and functionality are under}% + \writestring{reconstruction. Please use the most recent tpd special driver!}% + \writeline + \writestring{Interactive floats are temporary out of order. Sorry.}} + +\appendtoks \meldveranderingen \to \everybye + +\def\doplaatsversieaanduiding#1#2% + {\doifsomething{#2} + {\@EA\convertargument#2\to\ascii + \ #1: \ascii\ + \!!doneatrue}} + +\def\plaatsversieaanduiding% + {\ifvoorlopig + \vskip\!!sixpoint + \hbox to \zetbreedte + {\infofont + Versie: \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} + +\newbox\referentieinfobox +\newbox\registerinfobox +\newbox\floatinfobox + +\def\dotestinfo#1#2#3% + {\ifvoorlopig + \begingroup + \convertargument#3\to\ascii + \xdef\extratestinfo% + {#2 \ascii}% + \gdef\totaltestinfo% + {\global\setbox#1=\vbox + {\unvbox#1\relax + \hbox + {\infofont + \strut + \expandafter\doboundtext\expandafter + {\extratestinfo} + {\rechtermargebreedte} + {..}% + \quad}}}% + \endgroup + \ifinner + \aftergroup\totaltestinfo + \else + \totaltestinfo + \fi + \fi} + +\def\referentieinfo% + {\dotestinfo\referentieinfobox} + +\def\registerinfo% + {\dotestinfo\registerinfobox} + +\def\floatinfo% + {\dotestinfo\floatinfobox} + +\def\plaatstestinfo% + {\setbox0=\vbox to \teksthoogte + {\forgetall + \hsize\rechtermargebreedte + \ifvoid\floatinfobox\else + \infofont\strut Plaatsblokken + \vskip\!!sixpoint + \unvbox\floatinfobox + \vskip\!!twelvepoint + \fi + \ifvoid\referentieinfobox\else + \infofont\strut Verwijzingen + \vskip\!!sixpoint + \unvbox\referentieinfobox + \vskip\!!twelvepoint + \fi + \ifvoid\registerinfobox\else + \infofont\strut Registers + \vskip\!!sixpoint + \unvbox\registerinfobox + \fi + \vss}% + \wd0=\!!zeropoint + \box0\relax} + +%I n=Commando's +%I c=\definieer,\naam +%I c=\gebruikcommandos +%I +%I Het is mogelijk eigen commando's te definieren met behulp +%I van het commando: +%I +%I \definieer[aantal argumenten]\commando{betekenis} +%I +%I Een argument kan worden opgeroepen door een # gevolgd +%I een nummer, bijvoorbeeld #2. +%I +%I \definieer\test{ziezo} \ziezo +%I \definieer[1]\test{ziezo #1} \ziezo{} +%I \definieer[2]\test{ziezo #1 en #2} \ziezo{}{} +%P +%I In commandonamen mogen alleen karakters voorkomen. Mocht +%I onverhoopt een cijfer nodig zijn, dan kunnen dergelijke +%I commando's worden opgeroepen met: +%I +%I \naam{} +%I +%I In een aantal gevallen, bijvoorbeeld bij het wegschrijven +%I naar lijsten, worden commando's \noexpand-ed. Dit is +%I bijvoorbeeld het geval bij synoniemen en sorteren, als +%I het criterium ongelijk is aan 'alles'. Dergelijke (zelf) +%I gedefinieerde commando's dienen eerst te worden +%I geactiveerd met : +%I +%I \gebruikcommandos{\commando} +%I +%I Er mogen meerdere commando's tegelijk worden opgegeven: +%I +%I \gebruikcommandos{\alfa,\beta,gamma} +%I +%I waarbij de \ facultatief is. Er wordt niets gezet! + +% \docommando kan niet worden gebruikt omdat deze macro +% soms lokaal wordt gebruikt + +% te zijner tijd: +% +% \definevariable {pc} % ProtectedCommand +% +% \def\executeprotected#1% +% {\csname\??pc\string#1\endcsname} +% +% \def\defineprotected#1#2% +% {\expandafter\def\csname\??pc\string#2\endcsname} +% +% \def\defineunprotected#1% +% {\def#1} +% +% \def\doprotected% +% {\ifx\next\define +% \let\next=\defineprotected +% \else +% \let\next=\executeprotected +% \fi +% \next} +% +% \def\unexpanded% +% {\futurelet\next\doprotected} +% +% \unexpanded\define\ziezo{ziezo} +% +% \unexpanded\ziezo + +\def\complexdodefinieer[#1]#2#3% + {\ifx#2\undefined + \else + \showmessage{\m!systems}{4}{\string#2}% + \fi + \ifcase0#1\def#2{#3}% + \or\def#2##1{#3}% + \or\def#2##1##2{#3}% + \or\def#2##1##2##3{#3}% + \or\def#2##1##2##3##4{#3}% + \or\def#2##1##2##3##4##5{#3}% + \or\def#2##1##2##3##4##5##6{#3}% + \or\def#2##1##2##3##4##5##6##7{#3}% + \or\def#2##1##2##3##4##5##6##7##8{#3}% + \or\def#2##1##2##3##4##5##6##7##8##9{#3}% + \else\def#2{#3}% + \fi} + +\def\definieer% + {\complexorsimpleempty{dodefinieer}} + +\def\naam#1% + {\donottest\getvalue{#1}} + +\def\gebruikcommandos#1% + {\bgroup + \def\docommando##1% + {\setbox0=\hbox{\getvalue{\string##1}##1}}% + \processcommalist[#1]\docommando + \egroup} + +%I n=Groeperen +%I c=\start,\definieerstartstop +%I +%I Met behulp van de volgende commando's kan de werking van +%I andere commando's worden beperkt: +%I +%I \start[label] +%I \stop[label] +%I +%I Men is vrij in de keuze van het commentaar. Het gebruik +%I van deze commando's komt overeen met het gebruiken van {}. +%P +%I Er kunnen \start-\stop-paren worden gedefinieerd en +%I ingesteld met: +%I +%I \definieerstartstop[label][voor=,na=,commandos=, +%I letter=] +%I +%I De aan 'voor' en 'na' toegekende commando's worden voor +%I \start en na \stop uitgevoerd; de aan 'commando' +%I toegekende commando's direct na \start. +%I +%I Naast het \start-\stop-paar is ook het verkorte commando +%I beschikbaar: +%I +%I \label{tekst} + +\def\complexstart[#1]% % bgroup toegevoegd + {\bgroup\getvalue{\e!start#1}} + +\def\simplestart% + {\bgroup} + +\def\complexstop[#1]% + {\getvalue{\e!stop#1}\egroup} % egroup toegevoegd + +\def\simplestop% + {\egroup} + +\def\start% + {\complexorsimple{\e!start}} + +\def\stop% + {\complexorsimple{\e!stop}} + +\def\dodefinieerstartstop[#1][#2]% + {\getparameters + [\??be#1] + [\c!voor=, + \c!na=, + \c!commandos=, + \c!letter=, + #2]% + \setvalue{#1}##1% + {\bgroup + \getvalue{\??be#1\c!commandos}% + \doattributes{\??be#1}{##1}% + \egroup}% + \setvalue{\e!start#1}% + {\getvalue{\??be#1\c!voor}% + \bgroup + \getvalue{\??be#1\c!commandos}% + \dostartattributes{\??be#1}{}}% + \setvalue{\e!stop#1}% + {\dostopattributes + \egroup + \getvalue{\??be#1\c!na}}} + +\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}% + {\startbuffer[buf-\nofpostponedblocks] + [\e!start\e!verbergen][\e!stop\e!verbergen]} + +% gejat van Knuth (zie \copyright, p356) + +\def\omcirkeld#1% + {{\ooalign{\hfil\raise0.07ex\hbox{{\tfx#1}}\hfil\crcr\mathhexbox20D}}} + +\def\copyright + {\omcirkeld{c}} + +%I n=Systeem +%I c=\stelsysteemin +%I +%I Systeemvariabelen kunnen worden ingesteld met het +%I commando: +%I +%I \stelsysteemin[resolutie=,korps=] +%I +%I Aan 'resolutie' dient het aantal dpi (300). + +\def\dostelsysteemin[#1]% + {\getparameters[\??sv][#1]% + \beforesplitstring\@@svresolutie\at dpi\to\@@svresolutie + \let\outputresolution=\@@svresolutie} + +\def\stelsysteemin% + {\dosingleargument\dostelsysteemin} + +% Default-instellingen (verborgen) + +\resetutilities + +% Uitgestelde instellingen + +\def\dooutput{\sidefloatoutput} % redefinition of \dooutput + +% Default-instellingen (zichtbaar) + +\stelsysteemin + [\c!resolutie=300dpi, + \c!korps=\normalizedlocalbodyfontsize] % of iets anders + +% Pas op: +% +% Omdat er geen fonts geladen zijn kunnen we bij de maten geen +% em's gebruiken. Bij afstanden is dit geen probleem, omdat +% deze pas een rol spelen als er al een font geladen is. + +\stellayoutin + [ \c!kopwit=.08417508418\papierhoogte, % .08333 2.5cm + %\c!boven=.03367003367\papierhoogte, % .03331 1.0cm + \c!boven=\!!zeropoint, + \c!bovenafstand=\!!zeropoint, + \c!hoofd=.06734006734\papierhoogte, % .06667 2.0cm + \c!hoofdafstand=\!!zeropoint, + \c!hoogte=.84175084175\papierhoogte, % .83333 25.0cm + \c!voetafstand=\@@lyhoofdafstand, + \c!voet=.06734006734\papierhoogte, % .06667 2.0cm + \c!onderafstand=\@@lybovenafstand, + \c!onder=\!!zeropoint, + \c!rugwit=.11904761905\papierbreedte, % 2.5cm + %\c!rand=.14285714286\papierbreedte, % 3.0cm + \c!rand=\!!zeropoint, + \c!randafstand=\@@lymargeafstand, + %\c!marge=\@@lyrugwit, + %\c!marge=.07888078409\papierbreedte, % rugwit-2*afstand + \c!marge=.12649983170\papierbreedte, % snijwit-2*afstand + \c!margeafstand=.02008341748\papierbreedte, % 12.0pt + \c!linkerrand=\@@lyrand, + \c!linkerrandafstand=\@@lyrandafstand, + \c!linkermarge=\@@lymarge, + \c!linkermargeafstand=\@@lymargeafstand, + \c!breedte=.71428571429\papierbreedte, % 15.0cm + \c!rechtermargeafstand=\@@lymargeafstand, + \c!rechtermarge=\@@lymarge, + \c!rechterrandafstand=\@@lyrandafstand, + \c!rechterrand=\@@lyrand, + \c!kopoffset=\!!zeropoint, + \c!rugoffset=\!!zeropoint, + \c!letter=, + \c!markering=\v!uit, + \c!plaats=\v!enkelzijdig, + \c!schaal=1, + \c!nx=1, + \c!ny=1, + \c!grid=\v!nee, + \c!regels=] + +% instellingen hierop terugvallen, bijvoorbeeld de volgende: + +\definieerpapierformaat [A0] [\c!breedte=841mm, \c!hoogte=1189mm] +\definieerpapierformaat [A1] [\c!breedte=594mm, \c!hoogte=841mm] +\definieerpapierformaat [A2] [\c!breedte=420mm, \c!hoogte=594mm] +\definieerpapierformaat [A3] [\c!breedte=297mm, \c!hoogte=420mm] +\definieerpapierformaat [A4] [\c!breedte=210mm, \c!hoogte=297mm] +\definieerpapierformaat [A5] [\c!breedte=148mm, \c!hoogte=210mm] +\definieerpapierformaat [A6] [\c!breedte=105mm, \c!hoogte=148mm] +\definieerpapierformaat [A7] [\c!breedte=74mm, \c!hoogte=105mm] +\definieerpapierformaat [A8] [\c!breedte=52mm, \c!hoogte=74mm] +\definieerpapierformaat [A9] [\c!breedte=37mm, \c!hoogte=52mm] + +\definieerpapierformaat [B0] [\c!breedte=1000mm,\c!hoogte=1414mm] +\definieerpapierformaat [B1] [\c!breedte=707mm, \c!hoogte=1000mm] +\definieerpapierformaat [B2] [\c!breedte=500mm, \c!hoogte=707mm] +\definieerpapierformaat [B3] [\c!breedte=354mm, \c!hoogte=500mm] +\definieerpapierformaat [B4] [\c!breedte=250mm, \c!hoogte=354mm] +\definieerpapierformaat [B5] [\c!breedte=177mm, \c!hoogte=250mm] +\definieerpapierformaat [B6] [\c!breedte=125mm, \c!hoogte=177mm] +\definieerpapierformaat [B7] [\c!breedte=88mm, \c!hoogte=125mm] +\definieerpapierformaat [B8] [\c!breedte=63mm, \c!hoogte=88mm] +\definieerpapierformaat [B9] [\c!breedte=44mm, \c!hoogte=63mm] + +\definieerpapierformaat [C0] [\c!breedte=917mm, \c!hoogte=1297mm] +\definieerpapierformaat [C1] [\c!breedte=649mm, \c!hoogte=917mm] +\definieerpapierformaat [C2] [\c!breedte=459mm, \c!hoogte=649mm] +\definieerpapierformaat [C3] [\c!breedte=324mm, \c!hoogte=459mm] +\definieerpapierformaat [C4] [\c!breedte=229mm, \c!hoogte=324mm] +\definieerpapierformaat [C5] [\c!breedte=162mm, \c!hoogte=229mm] +\definieerpapierformaat [C6] [\c!breedte=115mm, \c!hoogte=162mm] +\definieerpapierformaat [C7] [\c!breedte=81mm, \c!hoogte=115mm] +\definieerpapierformaat [C8] [\c!breedte=57mm, \c!hoogte=81mm] +\definieerpapierformaat [C9] [\c!breedte=40mm, \c!hoogte=57mm] + +\definieerpapierformaat [S3] [\c!breedte=300pt, \c!hoogte=225pt] +\definieerpapierformaat [S4] [\c!breedte=400pt, \c!hoogte=300pt] +\definieerpapierformaat [S5] [\c!breedte=500pt, \c!hoogte=375pt] +\definieerpapierformaat [S6] [\c!breedte=600pt, \c!hoogte=450pt] + +\definieerpapierformaat [CD] [\c!breedte=120mm, \c!hoogte=120mm] + +\definieerpapierformaat [letter] [\c!breedte=8.5in, \c!hoogte=11in] +\definieerpapierformaat [legal] [\c!breedte=8.5in, \c!hoogte=14in] +\definieerpapierformaat [folio] [\c!breedte=8.5in, \c!hoogte=13in] +\definieerpapierformaat [executive] [\c!breedte=7.25in, \c!hoogte=10.5in] + +\definieerpapierformaat [envelope 9] [\c!breedte=8.88in, \c!hoogte=3.88in] +\definieerpapierformaat [envelope 10] [\c!breedte=9.5in, \c!hoogte=4.13in] +\definieerpapierformaat [envelope 11] [\c!breedte=10.38in,\c!hoogte=4.5in] +\definieerpapierformaat [envelope 12] [\c!breedte=11.0in, \c!hoogte=4.75in] +\definieerpapierformaat [envelope 14] [\c!breedte=11.5in, \c!hoogte=5.0in] +\definieerpapierformaat [monarch] [\c!breedte=7.5in, \c!hoogte=3.88in] +\definieerpapierformaat [check] [\c!breedte=8.58in, \c!hoogte=3.88in] +\definieerpapierformaat [DL] [\c!breedte=220mm, \c!hoogte=110mm] + +% Let op: na \stellayoutin (omdat dit wordt aangeroepen). + +\stelpapierformaatin + [A4][A4] + +\stelinterliniein + [\c!hoogte=.72, + \c!diepte=.28, + \c!boven=1.0, + \c!onder=0.4, + \c!regel=2.8ex] + +\stelkolommenin + [\c!n=2, + \c!lijn=\v!uit, + \c!tolerantie=\v!soepel, + \c!afstand=1.5\korpsgrootte, % influenced by switching + \c!hoogte=, + \c!balanceren=\v!ja, + \c!uitlijnen=\v!tekst, + \c!blanko={\v!regel,\v!vast}, + \c!optie=, + \c!lijndikte=\linewidth, + \c!offset=.5\korpsgrootte] + +\stelhoofdtekstenin [\v!tekst] [] [] +\stelhoofdtekstenin [\v!marge] [] [] +\stelhoofdtekstenin [\v!rand] [] [] + +\stelvoettekstenin [\v!tekst] [] [] +\stelvoettekstenin [\v!marge] [] [] +\stelvoettekstenin [\v!rand] [] [] + +\stelteksttekstenin [\v!tekst] [] [] +\stelteksttekstenin [\v!marge] [] [] +\stelteksttekstenin [\v!rand] [] [] + +\stelondertekstenin [\v!tekst] [] [] +\stelondertekstenin [\v!marge] [] [] +\stelondertekstenin [\v!rand] [] [] + +\stelboventekstenin [\v!tekst] [] [] +\stelboventekstenin [\v!marge] [] [] +\stelboventekstenin [\v!rand] [] [] + +\stelhoofdin [\c!status=\v!normaal,\c!voor=,\c!na=] +\stelvoetin [\c!status=\v!normaal,\c!voor=,\c!na=] +\steltekstin [\c!status=\v!normaal,\c!voor=,\c!na=] +\stelbovenin [\c!status=\v!normaal,\c!voor=,\c!na=] +\stelonderin [\c!status=\v!normaal,\c!voor=,\c!na=] + +\stelhoofdin [\c!na=\vss] +\steltekstin [\c!voor=\vss,\c!na=\vss] +\stelvoetin [\c!voor=\vss] + +\stelbovenin [\c!voor=\vss,\c!na=\vss] +\stelonderin [\c!voor=\vss,\c!na=\vss] + +\stelhoofdin + [\v!tekst] + [\c!strut=\v!ja, + \c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!hoofd\v!tekst\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!hoofd\v!tekst\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!hoofd\v!tekst\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!hoofd\v!tekst\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelhoofdin + [\v!marge] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!hoofd\v!marge\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!hoofd\v!marge\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!hoofd\v!marge\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!hoofd\v!marge\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelhoofdin + [\v!rand] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!hoofd\v!rand\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!hoofd\v!rand\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!hoofd\v!rand\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!hoofd\v!rand\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelvoetin + [\v!tekst] + [\c!strut=\v!ja, + \c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!voet\v!tekst\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!voet\v!tekst\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!voet\v!tekst\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!voet\v!tekst\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelvoetin + [\v!marge] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!voet\v!marge\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!voet\v!marge\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!voet\v!marge\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!voet\v!marge\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelvoetin + [\v!rand] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!voet\v!rand\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!voet\v!rand\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!voet\v!rand\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!voet\v!rand\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelbovenin + [\v!tekst] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!boven\v!tekst\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!boven\v!tekst\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!boven\v!tekst\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!boven\v!tekst\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelbovenin + [\v!marge] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!boven\v!marge\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!boven\v!marge\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!boven\v!marge\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!boven\v!marge\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelbovenin + [\v!rand] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!boven\v!rand\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!boven\v!rand\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!boven\v!rand\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!boven\v!rand\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelonderin + [\v!tekst] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!boven\v!rand\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!boven\v!rand\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!boven\v!rand\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!boven\v!rand\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelonderin + [\v!marge] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!onder\v!marge\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!onder\v!marge\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!onder\v!marge\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!onder\v!marge\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelonderin + [\v!rand] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!onder\v!rand\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!onder\v!rand\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!onder\v!rand\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!onder\v!rand\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\steltekstin + [\v!tekst] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!tekst\v!tekst\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!tekst\v!tekst\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!tekst\v!tekst\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!tekst\v!tekst\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\steltekstin + [\v!marge] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!tekst\v!marge\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!tekst\v!marge\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!tekst\v!marge\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!tekst\v!marge\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\steltekstin + [\v!rand] + [\c!letter=, + \c!kleur=, + \c!linkertekst=, + \c!middentekst=, + \c!rechtertekst=, + \c!kantlijntekst=, + \c!margetekst=, + \c!linkerletter=\getvalue{\??tk\v!tekst\v!rand\c!letter}, + \c!rechterletter=\getvalue{\??tk\v!tekst\v!rand\c!letter}, + \c!linkerkleur=\getvalue{\??tk\v!tekst\v!rand\c!kleur}, + \c!rechterkleur=\getvalue{\??tk\v!tekst\v!rand\c!kleur}, + \c!linkerbreedte=, + \c!rechterbreedte=] + +\stelnummeringin + [\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\c!nummer=\v!nee, + \v!deel\c!nummer=\v!ja, + \c!nummerscheider=--, + \c!tekstscheider=\tfskip, + \c!status=\v!start, + \c!commando=, + \c!letter=\v!normaal, + \c!kleur=] + +\stelblankoin + [\v!standaard, + \v!groot] + +\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!sectie-1] % deel +\definieersectie[\v!sectie-2] % hoofdstuk +\definieersectie[\v!sectie-3] % paragraaf +\definieersectie[\v!sectie-4] % subparagraaf +\definieersectie[\v!sectie-5] % subsubparagraaf +\definieersectie[\v!sectie-6] % subsubsubparagraaf +\definieersectie[\v!sectie-7] % subsubsubsubparagraaf + +% \c!eigennummer ook hier? + +\definieerkop + [\v!deel] + [\c!sectie=\v!sectie-1] + +\definieerkop + [\v!hoofdstuk] + [\c!sectie=\v!sectie-2] + +\definieerkop + [\v!paragraaf] + [\c!sectie=\v!sectie-3] + +\definieerkop + [\v!sub\v!paragraaf] + [\c!sectie=\v!sectie-4, + \c!default=\v!paragraaf] + +\definieerkop + [\v!sub\v!sub\v!paragraaf] + [\c!sectie=\v!sectie-5, + \c!default=\v!paragraaf] + +\definieerkop + [\v!sub\v!sub\v!sub\v!paragraaf] + [\c!sectie=\v!sectie-6, + \c!default=\v!paragraaf] + +\definieerkop + [\v!sub\v!sub\v!sub\v!sub\v!paragraaf] + [\c!sectie=\v!sectie-7, + \c!default=\v!paragraaf] + +\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!sectie-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=\v!normaal, + \c!doorgaan=\v!nee, + \c!pagina=\v!rechts, + \c!hoofd=, + \c!letter=\tfc, + \c!voor={\blanko[2*\v!groot]}, + \c!na={\blanko[2*\v!groot]}] + +\stelkopin + [\v!paragraaf] + [\c!uitlijnen=\v!normaal, + \c!letter=\tfa, + \c!voor={\blanko[2*\v!groot]}, + \c!na=\blanko] + +\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, + \c!tussen={\blanko[\v!middel]}, + \c!na=\blanko, + \c!breedte=\v!passend, + \c!kopletter=\v!vet, + \c!letter=\v!normaal, + \c!kleur=, + \c!uitlijnen=, + \c!nummer=\v!ja, + \c!wijze=\@@nrwijze, + \c!blokwijze=\@@nrblokwijze, + \c!sectienummer=\@@nrsectienummer, + \c!conversie=\v!cijfers] + +\stelplaatsblokkenin + [\c!plaats=\v!midden, + \c!breedte=\v!passend, + \c!hoogte=\v!passend, + \c!offset=\v!overlay, + \c!kader=\v!uit, + \c!straal=.5\korpsgrootte, + \c!hoek=\v!recht, + \c!achtergrond=, + \c!achtergrondraster=\@@rsraster, + \c!achtergrondkleur=, + \c!bovenkader=, + \c!onderkader=, + \c!linkerkader=, + \c!rechterkader=, + \c!voor=, + \c!na=, + \c!voor\c!wit=\v!groot, + \c!na\c!wit=\v!groot, + \c!zij\c!voor\c!wit=\@@bkvoorwit, + \c!zij\c!na\c!wit=\@@bknawit, + \c!marge=1em, + \c!nboven=2, + \c!nonder=0, + \c!nregels=4] + +\stelplaatsbloksplitsenin + [\c!conversie=\v!letter, % \v!romeins + \c!regels=3] + +\stelwitruimtein + [\v!geen] + +\inspringen + [\v!nooit] + +\stelinspringenin + [\v!geen] + +\stelopsommingenin % undocumented + [\c!niveaus=6, + \c!marge=\!!zeropoint, + \c!breedte=1.5em, + \c!factor=0, + \c!afstand=.5em, + \c!marletter=\c!type, + \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=..., + \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=, + \c!sectienummer=\@@nrsectienummer, + \c!plaats=\v!rechts, + \c!links=(, + \c!rechts=)] + +\stelreferentielijstin + [\c!letter=\v!normaal] + +\stelinmargein + [\c!letter=\v!vet, + \c!kleur=, + \c!plaats=\v!beide, + \c!uitlijnen=\v!binnen, + \c!voor=, + \c!na=] + +\stelinmargein + [\v!links] + [\c!plaats=\v!links, + \c!uitlijnen=\v!links] + +\stelinmargein + [\v!rechts] + [\c!plaats=\v!rechts, + \c!uitlijnen=\v!rechts] + +\versie + [\v!definitief] + +\stelpaginanummerin + [\c!nummer=1] + +\stelsubpaginanummerin + [\c!wijze=\v!per\v!deel, + \c!status=\v!stop] + +\stelsmallerin + [\c!links=1.5em, + \c!rechts=1.5em, + \c!midden=1.5em] + +\stelregelnummerenin + [\c!conversie=\v!cijfers, + \c!start=1, + \c!stap=1, + \c!plaats=\v!inmarge, + \c!letter=, + \c!kleur=, + \c!breedte=2em, + \c!prefix=, + \c!refereren=\v!aan] + +\definieeropmaak + [\v!standaard] + [\c!breedte=\zetbreedte, + \c!hoogte=\teksthoogte, + \c!voffset=\!!zeropoint, + \c!hoffset=\!!zeropoint, + \c!pagina=\v!rechts, + \c!dubbelzijdig=\v!leeg] + +\stelpositionerenin + [\c!eenheid=\s!cm, + \c!factor=1, + \c!schaal=1, + \c!xstap=\v!absoluut, + \c!ystap=\v!absoluut, + \c!offset=\v!ja, + \c!xoffset=\!!zeropoint, + \c!yoffset=\!!zeropoint] + +\stelregelsin + [\c!voor=\blanko, + \c!na=\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!inspringen=\v!nee, + \c!voor=\blanko, + \c!tussen=\blanko, + \c!na=\blanko, + \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!inspringen=\v!nee, + \c!voor=\blanko, + \c!tussen=\blanko, + \c!na=\blanko, + \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=] + +\stelkoppeltekenin + [\c!teken=\compoundhyphen] + +\stelnaastplaatsenin + [\c!status=\v!stop] + +\steltolerantiein + [\v!horizontaal,\v!zeerstreng] + +\steltolerantiein + [\v!vertikaal,\v!streng] + +\steluitlijnenin + [\v!onder, + \v!breedte] + +\stelspatieringin + [\v!opelkaar] + +\definieerregister + [\v!index] + [\v!indices] + +\definieerplaatsblok + [\v!figuur] + [\v!figuren] + +\definieerplaatsblok + [\v!tabel] + [\v!tabellen] + +\stelplaatsblokin + [\v!tabel] + [\c!kader=\v!uit] + +\definieerplaatsblok + [\v!intermezzo] + [\v!intermezzos] + +\definieerplaatsblok + [\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=\donottest\dimension] + +\stelmargeblokkenin + [\c!status=\v!start, + \c!plaats=\v!inmarge, + \c!breedte=\rechtermargebreedte, + \c!letter=, + \c!kleur=, + \c!uitlijnen=, + \c!links=, + \c!rechts=, + \c!boven=, + \c!tussen=\blanko, + \c!onder=\vfill, + \c!voor=, + \c!na=] + +\stelachtergrondenin + [\v!pagina,\v!linkerpagina,\v!rechterpagina] + [\c!kader=\v!uit, + \c!straal=.5\korpsgrootte, + \c!hoek=\v!recht, + \c!achtergrond=, + \c!raster=\@@rsraster, + \c!kleur=, + \c!kaderoffset=\getvalue{\??ma\v!pagina\c!offset}, + \c!achtergrondoffset=\getvalue{\??ma\v!pagina\c!offset}, + \c!offset=\!!zeropoint, + \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 |