diff options
Diffstat (limited to 'tex/context/base/main-002.tex')
-rw-r--r-- | tex/context/base/main-002.tex | 1181 |
1 files changed, 1181 insertions, 0 deletions
diff --git a/tex/context/base/main-002.tex b/tex/context/base/main-002.tex new file mode 100644 index 000000000..169f5a0aa --- /dev/null +++ b/tex/context/base/main-002.tex @@ -0,0 +1,1181 @@ +%D \module +%D [ file=main-002, +%D version=1997.03.31, +%D title=\CONTEXT\ Core Macros, +%D subtitle=1B (to be split), +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D This module is still to be split and documented. + +\writestatus{loading}{Context Core Macros (2)} + +\unprotect + +%I n=Items +%I c=\items,\stelitemsin +%I +%I Met het commando \items kunnen invullijsten worden +%I gegenereerd: +%I +%I \items{alternatief1,alternatief2,...,alternatiefN} +%I +%I Als in plaats van een alternatief een - wordt gegeven, +%I dan wordt ruimte opengelaten. +%I +%I De wijze waarop items worden weergegeven wordt ingesteld +%I met het commando: +%I +%I \stelitemsin[plaats=,symbool=,breedte=,n=,voor=, +%I tussen=,na=,uitlijnen=] +%I +%I Mogelijke plaatsen zijn links, rechts, onder, boven en +%I inmarge. Als breedte wordt de breedte van de totale tekst +%I opgegeven. Het aantal is facultatief, eventueel kan er +%I 'onbekend' worden meegegeven. Uitlijnen is 'ja' of 'nee'. +%P +%I Indien gewenst, kan de instelling direkt achter \item worden +%I geplaatst: +%I +%I \items[plaats=,symbool=,...]{alternatief1,...} +%I +%I In plaats van een symbool kan ook een van de volgende +%I aanduidingen worden meegegeven: +%I +%I a a, b, c, d, ... +%I A A, B, C, D, ... +%I n 1, 2, 3, 4, ... +%I r i, ii, iii, ... +%I R I, II, III, ... +%I +%I Eventueel kan een nummer worden meegegeven. In dat +%I geval wordt het overeenkomstige symbool van de +%I opsomming gebruikt (1--n). + +%\def\checkinterlineskip% +% {\ifvmode +% \ifdim\lastskip>\!!zeropoint\relax +% \nointerlineskip +% \else\ifdim\lastkern>\!!zeropoint\relax +% \nointerlineskip +% \fi\fi +% \fi} + +\def\horitems#1#2% #1=breedte #2=commandos + {\dimen0=#1\relax + \divide\dimen0 by \nofitems + \!!counta=0\relax + \def\docommando##1% + {\advance\!!counta by 1\relax + \processaction + [\@@isuitlijnen] + [ \v!links=>\hbox to \dimen0{\strut##1\hss}, + \v!rechts=>\hbox to \dimen0{\hss\strut##1}, + \v!midden=>\hbox to \dimen0{\hss\strut##1\hss}, + \v!marge=>\ifnum\!!counta=1\hss\else\hfill\fi + \strut##1% + \ifnum\!!counta=\nofitems\hss\else\hfill\fi, + \s!default=>\hbox to \dimen0{\hss\strut##1\hss}, % midden + \s!unknown=>\hbox to \dimen0{\strut##1\hss}]}% % links + \hbox to #1{\hss#2\hss}} + +\def\veritems#1#2% #1=breedte #2=commandos + {\dimen0=#1\relax + \def\docommando##1% + {\ifdim\dimen0<\!!zeropoint\relax % the - was a signal + \hbox to -\dimen0{\hss\strut##1}% + \else\ifdim\dimen0>\!!zeropoint\relax + \hbox to \dimen0{\strut##1\hss}% + \else + \hbox{\strut##1}% + \fi\fi}% + \vbox{#2}} + +\def\dostelitemsin[#1]% maakt direkt gebruik van \??ss en \??cv + {\getparameters[\??is][#1]% + \doif{\@@isbreedte}{\v!onbekend} + {\def\@@isbreedte{\hsize}}% + \doifdefinedelse{\??cv\@@issymbool} + {\def\doitembullet##1{\convertnumber{\@@issymbool}{##1}}} + {\doifdefined{\??ss\@@issymbool} + {\def\doitembullet##1{\symbol[\@@issymbool]}}}} + +\def\makeitemsandbullets#1% + {\doifelse{\@@isn}{\v!onbekend} + {\getcommalistsize[#1]% + \edef\nofitems{\commalistsize}} + {\edef\nofitems{\@@isn}}% + \setbox0=\hbox + {\doitems + {\@@isbreedte} + {\processcommalist[#1]\docommando}}% + \setbox2=\hbox + {\doitems + {\@@isbulletbreedte} + {\herhaal[\nofitems*\docommando{\strut\doitembullet{\herhaler}}]}}} + +\def\dostartitems#1#2#3% + {\let\doitems=#2 + \def\@@isbulletbreedte{#3}% + \makeitemsandbullets{#1}% + \@@isvoor} + +\def\dostopitems% + {\@@isna + \egroup} + +\setvalue{doitems\v!boven}#1% + {\dostartitems{#1}\horitems\@@isbreedte + \noindent\vbox + {\forgetall + \doifsomething{\@@issymbool} + {\doifnot{\@@issymbool}{\v!geen} + {\box2 + \@@istussen + \nointerlineskip}}% + \box0}% + \dostopitems} + +\setvalue{doitems\v!onder}#1% + {\dostartitems{#1}\horitems\@@isbreedte + \noindent\vbox + {\forgetall + \box0 + \doifsomething{\@@issymbool} + {\@@istussen + \nointerlineskip + \box2}}% + \dostopitems} + +\setvalue{doitems\v!inmarge}#1% + {\dostartitems{#1}{\veritems}{-1.5em}% - is a signal + \noindent\hbox{\llap{\box2\hskip\linkermargeafstand}\box0}% + \dostopitems} + +\setvalue{doitems\v!links}#1% + {\advance\hsize by -1.5em\relax + \dostartitems{#1}{\veritems}{1.5em}% + \noindent\hbox{\box2\box0}% + \dostopitems} + +\setvalue{doitems\v!rechts}#1% + {\dostartitems{#1}{\veritems}{0em}% + \noindent\hbox{\box0\hskip-\wd2\box2}% + \dostopitems} + +\def\stelitemsin% + {\dosingleargument\dostelitemsin} + +\def\complexitems[#1]% + {\bgroup + \stelitemsin[#1]% + \parindent=\!!zeropoint + \setlocalhsize + \hsize=\localhsize + \mindermeldingen + \doifundefined{doitems\@@isplaats}% + {\let\@@isplaats\v!links}% + \getvalue{doitems\@@isplaats}} + +\definecomplexorsimpleempty\items + +%I n=Tabulatie (1) +%I c=\definieeralineas,\stelalineasin +%I +%I Er kunnen paragrafen in meerdere kolommen worden gezet na +%I het commando: +%I +%I \definieeralineas[naam][n=,voor=,na=,afstand=, +%I hoogte=,lijn=,binnen=] +%I +%I Kolommen worden vervolgens gezet met: +%I +%I \startnaam .... \naam .... \naam .... \stopnaam +%I +%I of (soms verwarrend): +%I +%I \naam .... \naam .... \naam .... \naam +%I +%I of (lekker kort): +%I +%I \naam .... \\ .... \\ .... \\ +%I +%I waarbij het aantal malen .... \naam of \\ gelijk is +%I aan n. Naast \naam en \\ is ook \volgendenaam toegestaan. +%P +%I Het is mogelijk per kolom een en ander in te stellen met +%I het commando: +%I +%I \stelalineasin[naam][kolomnummer][afstand=,breedte=, +%I hoogte=,boven=,onder=,letter=,binnen=,lijn=, +%I uitlijnen=,tolerantie=] + +% Te zijner tijd [plaats=boven,onder,midden] implementeren, +% in dat geval moet eerst de maximale hoogte worden bepaald. +% +% Overigens kan een en ander mooier met \halign. + +\def\dodefinieeralineas[#1][#2]% + {\setvalue{\s!do\s!next#1}% + {\def\\{\getvalue{#1}}}% + \setvalue{#1}% + {\getvalue{\s!do\s!next#1}% + \dostartalineas{#1}}% + \setvalue{\e!volgende#1}% + {\getvalue{#1}}% + \setvalue{\e!start#1}% + {\bgroup + \setvalue{\s!do\s!next#1}{}% + \setvalue{\e!stop#1}% + {\getvalue{#1}% + \egroup}% + \getvalue{#1}}% + \getparameters[\??al#1]% + [\c!n=3, + \c!voor=\blanko, + \c!na=\blanko, + \c!afstand=1em, + \c!hoogte=\v!passend, + \c!lijn=\v!uit, + \c!commando=, + \c!uitlijnen=, + \c!tolerantie=\v!soepel, + \c!letter=, + \c!kleur=, + \c!boven=, + \c!boven=\vss, + \c!onder=\vfill, + #2]% + \setvalue{\e!stel#1\e!in}% + {\stelalineasin[#1]}% + \dorecurse + {\getvalue{\??al#1\c!n}} + {\stelalineasin[#1][\recurselevel] + [\c!breedte=, + \c!onder=\getvalue{\??al#1\c!onder}, + \c!boven=\getvalue{\??al#1\c!boven}, + \c!hoogte=\getvalue{\??al#1\c!hoogte}, + \c!letter=\getvalue{\??al#1\c!letter}, + \c!kleur=\getvalue{\??al#1\c!kleur}, + \c!lijn=\getvalue{\??al#1\c!lijn}, + \c!uitlijnen=\getvalue{\??al#1\c!uitlijnen}, + \c!tolerantie=\getvalue{\??al#1\c!tolerantie}, + \c!afstand=\getvalue{\??al#1\c!afstand}]}% + \stelalineasin[#1][1][\c!afstand=0em]} + +% nog monster +% +%\assignwidth +% {\!!widtha} +% {\getvalue{\??dd#1\c!breedte}} +% {\doifelsevaluenothing{\??dd#1\c!monster} +% {\hskip +% {\doattributes +% {\??al#1}\c!letter\c!kleur +% {\getvalue{\??dd#1\c!monster}}}} +% {0pt} + +\def\definieeralineas% + {\dodoubleargument\dodefinieeralineas} + +\def\dostelalineasin[#1][#2][#3]% + {\doifelse{#2}{\v!elk} + {\dorecurse + {\getvalue{\??al#1\c!n}} + {\getparameters[\??al#1\herhaler][#3]}} + {\ConvertToConstant\doifelse{#3}{} + {\getparameters[\??al#1][#2]} + {\def\docommando##1% + {\getparameters[\??al#1##1][#3]}% + \processcommalist[#2]\docommando}}} + +\def\stelalineasin% + {\dotripleempty\dostelalineasin} + +\newcount\alteller +\newcount\alnsize +\newdimen\alhsize + +\def\doalinealijn#1#2% + {\doifelsevalue{\??al#2\the\alteller\c!lijn}{\v!aan} + {\expandafter\dimen2=#1\relax + \hskip.5\dimen2 + \hskip-\linewidth + \vrule\!!width\linewidth + \hskip.5\dimen2} + {\hskip#1}} + +\def\dostartalinea#1% + {\doifelsevaluenothing{\??al#1\the\alteller\c!breedte} + {\!!widtha=\alhsize\relax + \divide\!!widtha by \alnsize} + {\!!widtha=\getvalue{\??al#1\the\alteller\c!breedte}\relax}% + \dostartattributes + {\??al#1\the\alteller}\c!letter\c!kleur + {}% + \doifelsevalue{\??al#1\the\alteller\c!hoogte}{\v!passend} + {\setbox0=\vtop} + {\setbox0=\vtop to \getvalue{\??al#1\the\alteller\c!hoogte}}% + \bgroup + \blanko[\v!blokkeer]% + \forgetall + \getvalue{\??al#1\the\alteller\c!boven}% + \getvalue{\??al#1\c!binnen}% + \hsize=\!!widtha % setting \wd afterwards removed + \getvalue{\??al#1\the\alteller\c!binnen}% + \edef\!!stringa{\getvalue{\??al#1\the\alteller\c!uitlijnen}}% nodig? + \expandafter\steluitlijnenin\expandafter[\!!stringa]% + \edef\!!stringa{\getvalue{\??al#1\the\alteller\c!tolerantie}}% nodig? + \expandafter\steltolerantiein\expandafter[\!!stringa]% + \ignorespaces + \endgraf + \ignorespaces + % + % Nadeel van de onderstaande constructie is dat \everypar + % binnen een groep kan staan en zo steeds \begstruts + % worden geplaatst. Mooi is anders dus moet het anders! + % + % Hier is \Everypar niet nodig. + % + \everypar{\begstrut\everypar{}}% + % + \ignorespaces\geenspatie % dubbel: \ignorespaces + \getvalue{\??al#1\the\alteller\c!commando}} + +\def\dostopalinea#1% + {\ifvmode + \removelastskip + \else + \unskip\endstrut\endgraf + \fi + \getvalue{\??al#1\the\alteller\c!onder}% + \egroup + \ifdim\wd0=\!!zeropoint % no data + \wd0=\!!widtha + \fi + \box0 + \dostopattributes + \ifnum\alteller<\getvalue{\??al#1\c!n}\relax + \def\next{\doalinea{#1}}% + \else + \def\next{\dostopalineas{#1}}% + \fi + \next} + +\def\doalinea#1% + {\global\advance\alteller by 1\relax + \doifelsevaluenothing{\??al#1\the\alteller\c!afstand} + {\doifnot{\the\alteller}{1} + {\hskip\getvalue{\??al#1\c!afstand}}} + {\doifelse{\the\alteller}{1}% + {\hskip\getvalue{\??al#1\the\alteller\c!afstand}} + {\doalinealijn{\getvalue{\??al#1\the\alteller\c!afstand}}{#1}}}% + \setvalue{#1}{\dostopalinea{#1}}% + \dostartalinea{#1}} + +\def\dostartalineas#1% + {\global\alteller=0\relax + \parindent=\!!zeropoint + \setlocalhsize + \alhsize=\localhsize + \alnsize=\getvalue{\??al#1\c!n}\relax + \dorecurse + {\getvalue{\??al#1\c!n}} + {\doifelsevaluenothing{\??al#1\recurselevel\c!afstand} + {\doifnot{\recurselevel}{1} + {\global\advance\alhsize by -\getvalue{\??al#1\c!afstand}\relax}} + {\global\advance\alhsize by -\getvalue{\??al#1\recurselevel\c!afstand}\relax}% + \doifvaluesomething{\??al#1\recurselevel\c!breedte} + {\global\advance\alnsize by -1\relax + \global\advance\alhsize by -\getvalue{\??al#1\recurselevel\c!breedte}\relax}}% + %\witruimte % gaat fout bij \framed + \getvalue{\??al#1\c!voor}% + \leavevmode % gaat wel goed bij \framed + \vbox\bgroup\hbox\bgroup + \doalinea{#1}} + +\def\dostopalineas#1% + {\egroup + \egroup + \par + \getvalue{\??al#1\c!na}}% + +%I n=Tabulatie (2) +%I c=\steltabin,\tab +%I +%I Eenvoudige tabulatie is mogelijk met het commando: +%I +%I \tab{tekst} tekst tekst tekst ..... +%I +%I Instelling vindt plaats met het commando: +%I +%I \steltabin[monster=,breedte=,kopletter=,voor,na=] +%I +%I Dit commando is een vereenvoudigde variant van het +%I commando \doordefinieren. In de regel kan volstaan +%I worden met het opgeven van een monster. Dit is het +%I woord dat de breedte bepaalt. + +\def\dosteltabin[#1]% + {\getparameters[\??ta] + [\c!kopletter=\v!normaal, + \c!kopkleur=, + \c!letter=\v!normaal, + \c!kleur=, + \c!breedte=\v!ruim, + \c!monster={\hskip4em}, + \c!voor=, + \c!na=, + #1]% + \doordefinieren + [tab] + [\c!kopletter=\@@takopletter, + \c!kopkleur=\@@takleur, + \c!monster=\@@tamonster, + \c!breedte=\@@tabreedte, + \c!voor=\@@tavoor, + \c!na=\@@tana]} + +\def\steltabin% + {\dosingleargument\dosteltabin} + +%I n=Diversen +%I c=\celsius,\bedrag,\breuk +%I c=\procent,\promille +%I +%I De volgende commando's vatten (vooral mathematische) +%I zetcommando's samen: +%I +%I \chem{symbool}{onder}{boven} chemische symbolen +%I \celsius{graden} graden Celsius (..~øC) +%I \breuk{boven}{onder} breuken («) +%I \bedrag{getal} geldbedragen (Ÿ~..) +%I \punten[n] puntjes (. . .) +%I \ongeveer plus-minus (ñ) +%I \inch inch ('') +%I \doorsnede \circ doorsneden met / +%I \graden ø (^\circ) +%I \procent percentage (vgl promille) +%I \promille promilage +%I \dollar dollar teken +%I \sterling pound sterling teken +%I \florijn gulden teken + +% The following macro's are derived from PPCHTEX and +% therefore take some LaTeX font-switching into account. + +\newif\ifloweredsubscripts + +% Due to some upward incompatibality of LaTeX to LaTeX2.09 +% and/or LaTeX2e we had to force \@@chemieletter. Otherwise +% some weird \nullfont error comes up. + +\doifundefined{@@chemieletter}{\def\@@chemieletter{\rm}} + +\def\beginlatexmathmodehack% + {\ifmmode + \let\endlatexmathmodehack=\relax + \else + \def\endlatexmathmodehack{$}$\@@chemieletter + \fi} + +\def\setsubscripts% + {\beginlatexmathmodehack + \def\dosetsubscript##1##2##3% + {\dimen0=##3\fontdimen5##2% + \setxvalue{@@\string##1\string##2}{\the##1##2\relax}% + ##1##2=\dimen0\relax}% + \def\dodosetsubscript##1##2% + {\dosetsubscript{##1}{\textfont2}{##2}% + \dosetsubscript{##1}{\scriptfont2}{##2}% + \dosetsubscript{##1}{\scriptscriptfont2}{##2}}% + %\dodosetsubscript{\fontdimen14}{?}% + \dodosetsubscript{\fontdimen16}{.7}% + \dodosetsubscript{\fontdimen17}{.7}% + \global\loweredsubscriptstrue + \endlatexmathmodehack} + +\def\resetsubscripts% + {\ifloweredsubscripts + \beginlatexmathmodehack + \def\doresetsubscript##1##2% + {\dimen0=\getvalue{@@\string##1\string##2}\relax + ##1##2=\dimen0}% + \def\dodoresetsubscript##1% + {\doresetsubscript{##1}{\textfont2}% + \doresetsubscript{##1}{\scriptfont2}% + \doresetsubscript{##1}{\scriptscriptfont2}}% + %\dodoresetsubscript{\fontdimen14}% + \dodoresetsubscript{\fontdimen16}% + \dodoresetsubscript{\fontdimen17}% + \global\loweredsubscriptsfalse + \endlatexmathmodehack + \fi} + +\let\beginlatexmathmodehack = \relax +\let\endlatexmathmodehack = \relax + +\def\chem#1#2#3% + {\bgroup + \setsubscripts + \mathematics{\hbox{#1}_{#2}^{#3}}% + \resetsubscripts + \egroup} + +\def\celsius#1% + {#1\mathematics{^\circ}C} + +\def\graden% + {\mathematics{^\circ}} + +\def\inch% + {\hbox{\rm\char125\relax}} + +\def\breuk#1#2% + {\mathematics{#1\over#2}} + +%\def\bedrag#1% +% {\mathematics{f~}\hbox{#1}} + +\def\bedragprefix{\mathematics{f\normalfixedspace}} +\def\bedragsuffix{} + +\def\bedrag#1% + {\strut\hbox\bgroup + \let\normalfixedspace~% + \def~{\futurelet\next\dofixedspace}% + \def\dofixedspace% + {\hskip.5em\relax + \ifx\next,% + \hphantom,\let\next\gobbleoneargument + \else\ifx\next.% + \hphantom.\let\next\gobbleoneargument + \else + \let\next\relax + \fi\fi + \next}% + \bedragprefix#1\bedragsuffix + \egroup} + +% \definieeralineas[test][n=3] +% +% \stelalineasin[test][3][breedte=4cm,uitlijnen=links] +% +% \startopelkaar +% \test hans \\ ton \\ \bedrag{1.000,--} \\ +% \test hans \\ ton \\ \bedrag{~.~~1,--} \\ +% \test hans \\ ton \\ \bedrag{~.~~1,~~} \\ +% \test hans \\ ton \\ \bedrag{~.100,--} \\ +% \test hans \\ ton \\ \subtot{1.000,--} \\ +% \test hans \\ ton \\ \bedrag{1.000,--} \\ +% \test hans \\ ton \\ \bedrag{1.000,--} \\ +% \test hans \\ ton \\ \totaal{1.000,--} \\ +% \test hans \\ ton \\ \bedrag{nihil,--} \\ +% \test hans \\ ton \\ \totaal{nihil,--} \\ +% \test hans \\ ton \\ \subtot{nihil,--} \\ +% \stopopelkaar + +\def\doorsnede% + {\hbox{\rlap/$\circ$} } + +\def\complexpunten[#1]% + {\dimen0=.5em\relax + \multiply\dimen0 by #1\relax + \hbox to \dimen0 + {\leaders\hbox to .5em{\hss.\hss}\hss}} + +\def\simplepunten% + {\complexpunten[5]} + +\definecomplexorsimple\punten + +\def\ongeveer% + {\mathematics{\pm}} + +\def\permille% + {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle00}}} + +\def\percent% + {\mathematics{^{\scriptscriptstyle0}\kern-.25em/\kern-.2em_{\scriptscriptstyle0}}} + +\let\promille=\permille +\let\procent =\percent + +\def\permine% + {\dontleavehmode + \bgroup + \setbox0=\hbox + {\mathematics{+}}% + \hbox to \wd0 + {\hss + \mathematics{^{\scriptscriptstyle-}\kern-.4em/\kern-.3em_{\scriptscriptstyle-}}% + \hss}% + \egroup} + +% for compatibility + +\def\unknown% + {\dontleavehmode\punten[3]} + +% currency + +\def\dollar% + {\bgroup + \ifnum\fam=\itfam + \sl + \else\ifnum\fam=\bifam + \bs + \fi\fi + \$% + \egroup} + +\def\sterling% + {\bgroup + \ifnum\fam=\bffam + \bi + \else\ifnum\fam=\bifam + \bi + \else\ifnum\fam=\bsfam + \bi + \else + \it + \fi\fi\fi + \$% + \egroup} + +\def\florijn% + {\bgroup + \ifnum\fam=\bffam + \bi + \else\ifnum\fam=\bifam + \bi + \else\ifnum\fam=\bsfam + \bi + \else + \it + \fi\fi\fi + f% + \egroup} + +%I n=Citaten +%I c=\startcitaat,\citaat,\stelcitatenin +%I c=\citeer,\stelciterenin +%I +%I Als variant op \startsmaller is het volgende commando +%I beschikbaar: +%I +%I \startcitaat +%I tekst +%I \stopcitaat +%I +%I Rond de tekst worden in de marge dubbele quotes +%I geplaatst. Ook bij dit commando kunnen tussen [] maten +%I worden opgegeven: +%I +%I \startcitaat[2*links,rechts] +%I +%I In de lopende tekst kan gebruik worden gemaakt van: +%I +%I \citaat{tekst} +%I \citeer{tekst} +%I +%I Het eerste commando levert dubbele quotes en het tweede +%I enkele quotes. +%P +%I Er zijn twee varianten (1 en 2) beschikbaar die kunnen +%I worden ingesteld met: +%I +%I \stelciterenin +%I [letter=] + +\newsignal\quotationsignal +\def\quotationskip{.125em} + +\def\stelciterenin% + {\dodoubleargument\getparameters[\??ci]} + +\def\stelcitatenin% + {\stelciterenin} + +\def\dostartcitaat[#1]% + {\bgroup + \@@civoor + \doifelsenothing{#1} + {\let\dostopcitaat=\relax} + {\startsmaller[#1] + \let\dostopcitaat=\stopsmaller}% + \dostartattributes\??ci\c!letter\c!kleur{}% + \setbox0=\hbox{\getvalue{\??la\currentlanguage\c!leftquotation}}% + \hskip-\wd0 + \box0\relax + \ignorespaces} + +\def\stopcitaat% + {\unskip\hsmash{\getvalue{\??la\currentlanguage\c!rightquotation}}% + \dostopattributes + \dostopcitaat + \@@cina + \egroup} + +\def\startcitaat% + {\dosingleempty\dostartcitaat} + +\def\dohandlequotation#1% + {\ifdim\lastskip=\quotationsignal + \unskip\hskip\quotationskip + \fi + \penalty\!!tenthousand\hskip\!!zeropoint % == \prewordbreak + \strut % new, needed below + \getvalue{\??la\currentlanguage#1}% + \penalty\!!tenthousand\hskip\quotationsignal} % +- \prewordbreak + +\unexpanded\def\citaat% + {\groupedcommand + {\dohandlequotation\c!leftquotation} + {\dohandlequotation\c!rightquotation}} + +\unexpanded\def\citeer% + {\doifelse{\@@ciletter}{\v!normaal} + {\let\next=\doquotedcite} + {\let\next=\doattributedcite}% + \next} + +\def\doquotedcite% + {\groupedcommand + {\dohandlequotation\c!leftquote} + {\dohandlequotation\c!rightquote}} + +\def\doattributedcite% + {\groupedcommand + {\dostartattributes\??ci\c!letter\c!kleur} + {\dostopattributes}} + +% The previous one fails in \placefloat[left]{}{}, so instead +% we use the next alternative, where the first one is handled +% outside group. Watch the strut. + +\unexpanded\def\citaat% + {\dohandlequotation\c!leftquotation + \groupedcommand{}{\dohandlequotation\c!rightquotation}} + +\def\doquotedcite% + {\dohandlequotation\c!leftquote + \groupedcommand{}{\dohandlequotation\c!rightquote}} + +% Tijden horen hier niet thuis en zullen in een aparte +% module worden ondergebracht. voorlopig handhaven we ze nog +% even. Een implementatie met \doordefinieren zou beter voldoen +% omdat een en ander dan instelbaar wordt. Het is trouwens +% zowieso beter het commando \tijd te reserveren voor de +% systeemtijd. + +\def\tijd#1% + {\setbox0=\hbox{00.00}% + \hbox to \wd0{\hfill#1}} + +\def\tijdspan#1#2% + {\hbox{\tijd{#1}~---~\tijd{#2}}} + +\def\activiteit#1#2% + {\activity{\tijdspan{#1}{#2}}} + +\def\activiteit#1#2% + {\sym{\tijdspan{#1}{#2}}} + +%I n=Toevoegen +%I c=\toevoegen +%I +%I Er kan witruimte worden gemarkeerd met het commando: +%I +%I \toevoegen[instelling]{korte tekst} +%I +%I waarbij als instellingen mogelijk zijn: klein, middel of +%I groot. + +\def\dotoevoegen#1% + {\def\next{#1}% + \herhaal[#1*{\inlinker{\next~+}\def\next{}\crlf}]} + +\def\complextoevoegen[#1]% + {\blanko + \processaction + [#1] + [ \v!klein=>\dotoevoegen{3}, + \v!middel=>\dotoevoegen{6}, + \v!groot=>\dotoevoegen{9}, + \s!default=>\dotoevoegen{6}, + \s!unknown=>\dotoevoegen{#1}] + \blanko} + +\definecomplexorsimpleempty\toevoegen + +%I n=Roosters +%I c=\rooster +%I +%I Er kunnen roosters (te vergelijken met ruitjespapier) +%I worden gemaakt met: +%I +%I \rooster[nx=,ny=,dx=,dy=,eenheid=,xstap=,ystap=, +%I offset=,schaal=,factor=] +%I +%I De instelling [nx=20,ny=20,dx=.5,dy=.5,eenheid=cm] levert +%I een patroon van 10cm bij 10cm van hokjes van 0.5cm op. +%I +%I Met '.stap' kunnen getallen langs de assen worden gezet. +%I als 0 wordt ingevuld (default), dan worden geen getallen +%I gezet. Met offset (ja of nee) kan men aangeven of de +%I getallen langs de assen binnen of buiten de box rond +%I het rooster vallen (vergelijk \stelpositionerenin). +%I +%I !! Dit commando wordt nog aangepast/uitgebreid. !! + +\def\dorooster[#1]% + {\begingroup + \getparameters[\??rt] + [\c!x=0,\c!y=0, + \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, + \c!plaats=\v!links, + #1]% + \startpositioneren + \dimen0=\@@rtdx\@@rteenheid\relax + \dimen0=\@@rtschaal\dimen0\relax + \dimen0=\@@rtfactor\dimen0\relax + \multiply\dimen0 by \@@rtnx\relax + \dimen2=\@@rtdy\@@rteenheid\relax + \dimen2=\@@rtschaal\dimen2\relax + \dimen2=\@@rtfactor\dimen2\relax + \multiply\dimen2 by \@@rtny\relax + \def\horline + {\vbox + {\hrule + \!!width \dimen0 + \!!height \linewidth + \!!depth \!!zeropoint}}% + \def\verline% + {\vrule + \!!width \linewidth + \!!height \dimen2 + \!!depth \!!zeropoint}% + \doglobal\newcounter\@@roosterc + \doglobal\newcounter\@@roosterd + \doglobal\newcounter\@@roostere + \def\setlegend##1##2##3% + {\gdef\@@roosterc{0}% + \dimen0=2em\relax + \dimen2=##2\@@rteenheid\relax + \dimen2=\@@rtschaal\dimen2\relax + \dimen2=\@@rtfactor\dimen2\relax + \divide\dimen0 by \dimen2\relax + \xdef\@@roostere{\number\dimen0}% + \ifnum\@@roostere>50 + \gdef\@@roostere{100}% + \else\ifnum\@@roostere>10 + \gdef\@@roostere{50}% + \else\ifnum\@@roostere>5 + \gdef\@@roostere{10}% + \else\ifnum\@@roostere>1 + \gdef\@@roostere{5}% + \else + \gdef\@@roostere{1}% + \fi\fi\fi\fi + \gdef\@@roosterd{0}% + \def\legend% + {\ifnum\@@roosterd=0\relax + \vbox + {\increment(\@@roosterc,##1)% + \hbox to 2em{\hss\@@roosterc\hss}}% + \global\let\@@roosterd=\@@roostere + \fi + \doglobal\decrement\@@roosterd + \doglobal\increment(\@@roosterc,##1)}}% + \def\draw##1##2##3##4##5##6##7##8##9% + {\stelpositionerenin + [\c!status=##8, + \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]% + \doifelse{##9}{\v!midden} + {\scratchdimen=##3pt\scratchdimen=.5\scratchdimen + \edef\@@psxx{\withoutpt\the\scratchdimen}% + \scratchdimen=##4pt\scratchdimen=.5\scratchdimen + \edef\@@psyy{\withoutpt\the\scratchdimen}% + \scratchcounter=##2\advance\scratchcounter by -1 + \edef\@@pszz{\the\scratchcounter}} + {\edef\@@psxx{0}\edef\@@psyy{0}\edef\@@pszz{##2}}% + \positioneer(\@@psxx,\@@psyy){##1}% + \stelpositionerenin + [\c!status=##8, + \c!xstap=\v!relatief, + \c!ystap=\v!relatief, + \c!schaal=\@@rtschaal, + \c!factor=\@@rtfactor, + \c!offset=\@@rtoffset, + \c!eenheid=\@@rteenheid]% + \dorecurse{\@@pszz}{\positioneer(##3,##4){##5}}}% + \draw + \verline\@@rtnx\@@rtdx0\verline\!!zeropoint\!!zeropoint\v!start\empty + \draw + \horline\@@rtny0\@@rtdy\horline\!!zeropoint\!!zeropoint\v!start\empty + \tfx + \doifnot{\@@rtxstap}{0} + {\setlegend\@@rtxstap\@@rtdx\@@rtx + \draw\legend\@@rtnx\@@rtdx0\legend{-1em}{-1.5em}\v!overlay\@@rtplaats}% + \doifnot{\@@rtystap}{0} + {\setlegend\@@rtystap\@@rtdy\@@rty + \draw\legend\@@rtny0\@@rtdy\legend{-2em}{-.75ex}\v!overlay\@@rtplaats}% + \stoppositioneren + \endgroup} + +\def\rooster% + {\dosingleempty\dorooster} + +%I n=Literatuurlijsten +%I c=\stelpublicatiesin,\startpublicatie,\publicatie +%I +%I Literatuurlijsten kunnen worden opgemaakt met het commando: +%I +%I \startpublicatie[referentie] +%I \naam .... +%I \titel .... +%I \jaar .... +%I \plaats .... +%I \uitgever .... +%I \stoppublicatie +%I +%I Een publicatie wordt opgeroepen met: +%I +%I \publicatie[referentie] +%P +%I Het formaat kan worden ingesteld met het commando: +%I +%I \stelpublicatiesin[variant=,voor=,na=,nummeren=, +%I breedte=,kopletter=,links=,rechts=] +%I +%I waarbij mogelijke varianten zijn: normaal apa en normaal. +%I Nummeren kan 'ja' of 'nee' zijn; links en rechts +%I hebben betrekking op de weergave in de tekst en zijn +%I standaard [ en ]. + +% Dit wordt: +% +% \doorverwijzen[naam][instellingen] enz. +% +% waarbij <naam> bijvoorbeeld publicatie is. Dit levert: +% +% \start<naam> +% \stop<naam> +% +% \beginvan<naam> +% \eindvan<naam> +% +% \publicatie +% +% \volledigelijstmetpublicaties +% +% eigenlijk kan ook door... zo worden uitgebreid! + +\doornummeren + [@publicatie] + [\c!plaats=\v!links, + \c!breedte=\@@pbbreedte,\c!hang=,\c!monster=, + \c!voor=\@@pbvoor,\c!na=\@@pbna,\c!tussen=, + \c!kopletter=\@@pbkopletter,\c!letter=, + \c!kopkleur=\@@pbkopkleur,\c!kleur=, + \c!wijze=\@@pbwijze,\c!blokwijze=\@@pbblokwijze, + \c!tekst=,\c!links=\@@pblinks,\c!rechts=\@@pbrechts] + +\def\dostelpublicatiesin[#1]% + {\getparameters[\??pb][#1]} + +\def\stelpublicatiesin% + {\dosingleargument\dostelpublicatiesin} + +\def\apa@publicatie% + {\doifsomething{\@@pb@naam}{\@@pb@naam,\spatie}% + \doifsomething{\@@pb@titel}{{\sl\@@pb@titel}.\spatie}% + \doifsomething{\@@pb@jaar}{(\@@pb@jaar).\spatie}% + \doifsomething{\@@pb@plaats}{\@@pb@plaats\doifelsenothing{\@@pb@uitgever}{.}{:\spatie}}% + \doifsomething{\@@pb@uitgever}{\@@pb@uitgever.}} + +\def\normaal@publicatie% + {\@@pb@naam, \@@pb@titel, \@@pb@jaar, \@@pb@pagina, \@@pb@plaats, \@@pb@uitgever.} + +\def\complexstartpublicatie[#1]#2\stoppublicatie% + {\bgroup% + \def\dosetpublicatie% + {\processcommalist + [naam,titel,jaar,plaats,pagina,uitgever] + \setpublicatie + \ignorespaces}% + \def\setpublicatie##1% + {\setvalue{\??pb @##1}{}% + \setvalue{##1}####1{\setvalue{\??pb @##1}{####1}\ignorespaces}}% + \def\getpublicatie% + {\doifsomething{\@@pbvariant}{\getvalue{\@@pbvariant @publicatie}}}% + \doifelse{\@@pbnummeren}{\v!ja}% + {\@publicatie[#1]\dosetpublicatie#2\getpublicatie\par}% + {\@@pbvoor + \dosetpublicatie\ignorespaces#2\getpublicatie + \@@pbna}% + \egroup} + +\definecomplexorsimpleempty\startpublicatie + +\def\publicatie#1[#2]% + {\@@pblinks\in{#1}[#2]\@@pbrechts} + +%I n=Kenmerken +%I c=\kenmerk,\kenmerkdatum +%I +%I Er kan een kenmerk worden gezet met het commando: +%I +%I \kenmerk[bet=,ken=,dat=,van=,aan=,ref=] +%I +%I waarbij de verplichte parameters staan voor 'betreft', +%I 'kenmerk' en 'datum' en de optionele voor 'van', 'aan' en +%I 'referentie'. +%I +%I Een kenmerk-datum kan worden gezet met het commando: +%I +%I \kenmerkdatum +%I +%I zodat een kenmerk er bijvoorbeeld uitziet als: +%I +%I \kenmerk +%I [bet=rekening eerste termijn, +%I ken=\kenmerkdatum.sork.gvk / afo, +%I dat=\currentdate] + +\def\kenmerkdatum% + {\currentdate[\v!kenmerk]} + +\def\dokenmerk[#1]% + {\geenhoofdenvoetregels + \bgroup + \getparameters + [\??km] + [\c!bet=\unknown,\c!dat=\unknown,\c!ken=\unknown, + \c!van=, \c!aan=, \c!ref=, #1]% + % moet anders, hoort niet in 01b + \assigntranslation[nl=referentie,en=reference,du=Referenz, sp=referencia]\to\@@@kmref + \assigntranslation[nl=van, en=from, du=Von, sp=de]\to\@@@kmvan + \assigntranslation[nl=aan, en=to, du=An, sp=a]\to\@@@kmaan + \assigntranslation[nl=betreft, en=concerns, du=Betreff, sp=]\to\@@@kmbet + \assigntranslation[nl=datum, en=date, du=Datum, sp=fecha]\to\@@@kmdat + \assigntranslation[nl=kenmerk, en=mark, du=Kennzeichen,sp=]\to\@@@kmken + % + \definetabulate[\s!dummy][|l|p|] + \startdummy + \NC\@@@kmbet\EQ\@@kmbet\NC\NR + \NC\@@@kmdat\EQ\@@kmdat\NC\NR + \NC\@@@kmken\EQ\kap{\@@kmken}\NC\NR + \doifsomething{\@@kmvan\@@kmaan}{\NC\NC\NC\NR}% + \doifsomething{\@@kmvan}{\NC\@@@kmvan\EQ\@@kmvan\NC\NR}% + \doifsomething{\@@kmaan}{\NC\@@@kmaan\EQ\@@kmaan\NC\NR}% + \doifsomething{\@@kmref}{\NC\NC\NC\NR\NC\@@@kmref\EQ\@@kmref\NC\NR}% + \stopdummy + \egroup} + +\def\kenmerk% + {\dosingleargument\dokenmerk} + +% NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW +% NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW + +\def\??ri{@@ri} + +\def\stelrijenin% + {\dodoubleargument\getparameters[\??ri]} + +\def\complexstartrijen[#1]% + {\bgroup + \stelrijenin[#1]% + \let\do@@rionder=\relax + \def\rij% + {\do@@rionder + \egroup + \dimen0=\vsize + \divide\dimen0 by \@@rin + \advance\dimen0 by -\lineskip + \vbox to \dimen0 + \bgroup + \@@riboven + \let\do@@rionder=\@@rionder + \ignorespaces}% + \bgroup + \rij} + +\definecomplexorsimpleempty\startrijen + +\def\stoprijen% + {\do@@rionder + \egroup + \egroup} + +\stelrijenin + [n=2, + boven=, + onder=\vfill] + +% NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW +% NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW NIEUW + +% Standaardinstellingen + +\stelitemsin + [\c!plaats=\v!links, + \c!symbool=5, + \c!breedte=\hsize, + \c!uitlijnen=\v!midden, + \c!n=\v!onbekend, + \c!voor=\blanko, + \c!tussen={\blanko[\v!middel]}, + \c!na=\blanko] + +\steltabin + [\c!plaats=\v!links] + +\stelpublicatiesin + [\c!nummeren=\v!ja, + \c!variant=\c!apa, + \c!breedte=2em, + \c!hang=, + \c!monster=, + \c!voor=, + \c!na=, + \c!tussen=, + \c!kopletter=, + \c!kopkleur=, + \c!letter=, + \c!kleur=, + \c!blokwijze=\v!per\v!tekst, + \c!wijze=\v!per\v!tekst, + \c!tekst=, + \c!links={[}, + \c!rechts={]}] + +\stelciterenin + [\c!letter=\v!normaal, + \c!kleur=, + \c!voor=\startsmaller, + \c!na=\stopsmaller] + +\protect + +\endinput |