diff options
Diffstat (limited to 'tex/context/base/core-02a.tex')
-rw-r--r-- | tex/context/base/core-02a.tex | 382 |
1 files changed, 191 insertions, 191 deletions
diff --git a/tex/context/base/core-02a.tex b/tex/context/base/core-02a.tex index 5340e96a1..a79681138 100644 --- a/tex/context/base/core-02a.tex +++ b/tex/context/base/core-02a.tex @@ -1,191 +1,191 @@ -%D \module -%D [ file=core-02a, -%D version=1997.03.31, -%D title=\CONTEXT\ Core Macros, -%D subtitle=2A (to be split), -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. Non||commercial use is -%C granted. - -\writestatus{loading}{Context Extra Macros (a)} - -\unprotect - -\startmessages dutch library: addresses - title: adressen - 1: -- - 2: hoofdbestand -- - 3: nevenbestand -- -\stopmessages - -\startmessages english library: addresses - title: addresses - 1: -- - 2: primary base -- - 3: secondary base -- -\stopmessages - -\startmessages german library: addresses - title: Adressen - 1: -- - 2: Haupbestand -- - 3: Nebenbestand -- -\stopmessages - -%I n=Kontakten -%I c=\laadkontakten -%I -%I De onderstaande commando's werken samen met het programma -%I TeXAdres. -%I -%I \laadkontakten[naam,groep,...] -%I -%I Dit commando doorzoekt eerst de file 'texadres.tao' en -%I vervolgens de file 'texadres.tae' op naam en groep. Bij -%I elk gevonden adres (naam of groepslid) wordt het commando -%I \doemetkontakt{logisch} aangeroepen. -%I -%I De waarden van de verschillende velden zijn op te roepen met -%I het commando \kontaktwaarde{veldnaam}. Let op: het in -%I bijvoorbeeld een adres opgenomen commando \\ moet men zelf -%I definieren, bijvoorbeeld: \def\\{\endgraf}. -%P -%I TeXAdres zet alle files op een gebied met de extensie 'tai' -%I om in een file met de extensie 'tao' of 'tae'. Een invoerfile -%I is als volgt opgebouwd: -%I -%I Een adres in de uitvoerfile ziet er als volgt uit: -%I -%I \beginvankontakt{...} -%I \lidvangroep{...,...,...} -%I \naam{...} -%I \letters{...} -%I \...{...} -%I \postadres{...} -%I \eindvankontakt{...} -%P -%I De invoerfile bevat zowel definities van kontakten als van -%I groepen. -%I -%I Een kontakt wordt als volgt gedefinieerd: -%I -%I < kontakt > -%I -%I [ logisch ] hagenj -%I [ naam ] Hagen -%I [ letters ] J. -%I [ voornaam ] Hans -%I [ titel ] heer -%I [ telefoon ] 053 - 336934 -%I [ telefax ] -%I [ postadres ] J. Hagen \\ Ridderstraat 27--29 \\ 8061 GH Hasselt -%I [ info ] ach ja -%P -%I Een groep wordt als volgt gedefinieerd: -%I -%I < groep > -%I -%I [ logisch ] werkgroep -%I [ naam ] -%I [ lid ] ottenaf -%I [ lid ] hagenj -%I [ lid ] jonkerj -%I [ lid ] marlecvan - -% In eerste instantie leek het werken met % voor te skippen -% regels mij een aardige oplossing. Echter, het opslurpen van -% een heel blok tot \eindvankontakt gaat net zo snel. -% -% Hoewel het mechanisme inmiddels uitstekend is te combineren -% met het tekstblok-mechanisme, wordt vooralsnog deze snelle -% variant gebruikt. -% -% Om conflicten te voorkomen met reeds gedefinieerde commando's, -% zoals \naam, wordt enkele malen \bgroup..\egroup gebruikt. - -\newevery \everykontakt \EveryKontakt - -\def\stelkontaktenin[#1]% - {\getparameters[\??kt][#1]}% - -\def\presetkontaktwaarde#1% - {\setgvalue{\??kw#1}{}% - \setvalue{#1}##1% - {\setgvalue{\??kw#1}{##1}}} - -\def\resetkontaktwaarde#1% - {\setgvalue{\??kw#1}{}% - \setvalue{#1}##1% - {\skipkontakt}} - -\def\kontaktwaarde#1% - {\getvalue{\??kw#1}} - -\def\presetkontakt% - {\rawprocesscommalist% - [naam,letters,voornaam,titel,telefoon,telefax,postadres,info]% - \presetkontaktwaarde} - -\def\resetkontakt% - {\rawprocesscommalist% - [naam,letters,voornaam,titel,telefoon,telefax,postadres,info]% - \resetkontaktwaarde} - -\def\skipkontakt% - {\long\def\next##1\eindvankontakt% - {\def\next####1{\egroup}\next}% - \next} - -\newif\ifkontaktok - -\let\doemetkontakt=\gobbleoneargument - -\def\laadkontakten[#1]% - {\makerawcommalist[#1]\gevraagdekontakten - \resetkontakt - \doifelsenothing{\gevraagdekontakten} - {\def\gevraagdekontakten{\v!alles}% - \kontaktoktrue} - {\kontaktokfalse}% - \def\checkkontakt##1% - {\rawdoifinsetelse{##1}{\gevraagdekontakten}{\kontaktoktrue}{}}% - \def\lidvangroep##1% - {\doifsomething{##1} - {\rawprocesscommalist[##1]\checkkontakt}% - \ifkontaktok - \let\next=\presetkontakt - \else - \let\next=\skipkontakt - \fi - \next}% - \def\beginvankontakt##1% - {\bgroup - \ifkontaktok - \def\lidvangroep####1{}% - \let\next=\presetkontakt - \else - \checkkontakt{##1}% - \ifkontaktok - \def\lidvangroep####1{}% - \let\next=\presetkontakt - \else - \let\next=\relax - \fi - \fi - \next}% - \def\eindvankontakt##1% - {\relax - \egroup - \the\everykontakt - \doemetkontakt{##1}}% - \showmessage{\m!addresses}{1}{\gevraagdekontakten}% - \readsysfile{texadres.tao}{\showmessage{\m!addresses}{2}{(tao)}}{\relax}% - \readjobfile{texadres.tae}{\showmessage{\m!addresses}{3}{(tae)}}{\relax}} - -\protect - -\endinput +%D \module
+%D [ file=core-02a,
+%D version=1997.03.31,
+%D title=\CONTEXT\ Core Macros,
+%D subtitle=2A (to be split),
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. Non||commercial use is
+%C granted.
+
+\writestatus{loading}{Context Extra Macros (a)}
+
+\unprotect
+
+\startmessages dutch library: addresses
+ title: adressen
+ 1: --
+ 2: hoofdbestand --
+ 3: nevenbestand --
+\stopmessages
+
+\startmessages english library: addresses
+ title: addresses
+ 1: --
+ 2: primary base --
+ 3: secondary base --
+\stopmessages
+
+\startmessages german library: addresses
+ title: Adressen
+ 1: --
+ 2: Haupbestand --
+ 3: Nebenbestand --
+\stopmessages
+
+%I n=Kontakten
+%I c=\laadkontakten
+%I
+%I De onderstaande commando's werken samen met het programma
+%I TeXAdres.
+%I
+%I \laadkontakten[naam,groep,...]
+%I
+%I Dit commando doorzoekt eerst de file 'texadres.tao' en
+%I vervolgens de file 'texadres.tae' op naam en groep. Bij
+%I elk gevonden adres (naam of groepslid) wordt het commando
+%I \doemetkontakt{logisch} aangeroepen.
+%I
+%I De waarden van de verschillende velden zijn op te roepen met
+%I het commando \kontaktwaarde{veldnaam}. Let op: het in
+%I bijvoorbeeld een adres opgenomen commando \\ moet men zelf
+%I definieren, bijvoorbeeld: \def\\{\endgraf}.
+%P
+%I TeXAdres zet alle files op een gebied met de extensie 'tai'
+%I om in een file met de extensie 'tao' of 'tae'. Een invoerfile
+%I is als volgt opgebouwd:
+%I
+%I Een adres in de uitvoerfile ziet er als volgt uit:
+%I
+%I \beginvankontakt{...}
+%I \lidvangroep{...,...,...}
+%I \naam{...}
+%I \letters{...}
+%I \...{...}
+%I \postadres{...}
+%I \eindvankontakt{...}
+%P
+%I De invoerfile bevat zowel definities van kontakten als van
+%I groepen.
+%I
+%I Een kontakt wordt als volgt gedefinieerd:
+%I
+%I < kontakt >
+%I
+%I [ logisch ] hagenj
+%I [ naam ] Hagen
+%I [ letters ] J.
+%I [ voornaam ] Hans
+%I [ titel ] heer
+%I [ telefoon ] 053 - 336934
+%I [ telefax ]
+%I [ postadres ] J. Hagen \\ Ridderstraat 27--29 \\ 8061 GH Hasselt
+%I [ info ] ach ja
+%P
+%I Een groep wordt als volgt gedefinieerd:
+%I
+%I < groep >
+%I
+%I [ logisch ] werkgroep
+%I [ naam ]
+%I [ lid ] ottenaf
+%I [ lid ] hagenj
+%I [ lid ] jonkerj
+%I [ lid ] marlecvan
+
+% In eerste instantie leek het werken met % voor te skippen
+% regels mij een aardige oplossing. Echter, het opslurpen van
+% een heel blok tot \eindvankontakt gaat net zo snel.
+%
+% Hoewel het mechanisme inmiddels uitstekend is te combineren
+% met het tekstblok-mechanisme, wordt vooralsnog deze snelle
+% variant gebruikt.
+%
+% Om conflicten te voorkomen met reeds gedefinieerde commando's,
+% zoals \naam, wordt enkele malen \bgroup..\egroup gebruikt.
+
+\newevery \everykontakt \EveryKontakt
+
+\def\stelkontaktenin[#1]%
+ {\getparameters[\??kt][#1]}%
+
+\def\presetkontaktwaarde#1%
+ {\setgvalue{\??kw#1}{}%
+ \setvalue{#1}##1%
+ {\setgvalue{\??kw#1}{##1}}}
+
+\def\resetkontaktwaarde#1%
+ {\setgvalue{\??kw#1}{}%
+ \setvalue{#1}##1%
+ {\skipkontakt}}
+
+\def\kontaktwaarde#1%
+ {\getvalue{\??kw#1}}
+
+\def\presetkontakt%
+ {\rawprocesscommalist%
+ [naam,letters,voornaam,titel,telefoon,telefax,postadres,info]%
+ \presetkontaktwaarde}
+
+\def\resetkontakt%
+ {\rawprocesscommalist%
+ [naam,letters,voornaam,titel,telefoon,telefax,postadres,info]%
+ \resetkontaktwaarde}
+
+\def\skipkontakt%
+ {\long\def\next##1\eindvankontakt%
+ {\def\next####1{\egroup}\next}%
+ \next}
+
+\newif\ifkontaktok
+
+\let\doemetkontakt=\gobbleoneargument
+
+\def\laadkontakten[#1]%
+ {\makerawcommalist[#1]\gevraagdekontakten
+ \resetkontakt
+ \doifelsenothing{\gevraagdekontakten}
+ {\def\gevraagdekontakten{\v!alles}%
+ \kontaktoktrue}
+ {\kontaktokfalse}%
+ \def\checkkontakt##1%
+ {\rawdoifinsetelse{##1}{\gevraagdekontakten}{\kontaktoktrue}{}}%
+ \def\lidvangroep##1%
+ {\doifsomething{##1}
+ {\rawprocesscommalist[##1]\checkkontakt}%
+ \ifkontaktok
+ \let\next=\presetkontakt
+ \else
+ \let\next=\skipkontakt
+ \fi
+ \next}%
+ \def\beginvankontakt##1%
+ {\bgroup
+ \ifkontaktok
+ \def\lidvangroep####1{}%
+ \let\next=\presetkontakt
+ \else
+ \checkkontakt{##1}%
+ \ifkontaktok
+ \def\lidvangroep####1{}%
+ \let\next=\presetkontakt
+ \else
+ \let\next=\relax
+ \fi
+ \fi
+ \next}%
+ \def\eindvankontakt##1%
+ {\relax
+ \egroup
+ \the\everykontakt
+ \doemetkontakt{##1}}%
+ \showmessage{\m!addresses}{1}{\gevraagdekontakten}%
+ \readsysfile{texadres.tao}{\showmessage{\m!addresses}{2}{(tao)}}{\relax}%
+ \readjobfile{texadres.tae}{\showmessage{\m!addresses}{3}{(tae)}}{\relax}}
+
+\protect
+
+\endinput
|