diff options
Diffstat (limited to 'tex/context/base/s-map-01.tex')
-rw-r--r-- | tex/context/base/s-map-01.tex | 635 |
1 files changed, 635 insertions, 0 deletions
diff --git a/tex/context/base/s-map-01.tex b/tex/context/base/s-map-01.tex new file mode 100644 index 000000000..f99a874e8 --- /dev/null +++ b/tex/context/base/s-map-01.tex @@ -0,0 +1,635 @@ +% This is an old version, I still have to patch the latest +% changes into this file. + +%D \module +%D [ file=s-map-01, +%D version=1998.05.05, +%D title=\CONTEXT\ Style File, +%D subtitle=\MAPS\ basis stijl, +%D author={Taco Hoekwater, Siep Kroonenberg \& Hans Hagen}, +%D date=\currentdate, +%D copyright={NTG / MAPS}] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +%D The \MAPS\ layout is designed by Taco Hoekwater and Siep +%D Kroonenberg, who on behalf of the \MAPS/\NTG\ own the +%D copyright to the design. + +%D In deze file wordt zowel de dubbelzijdig als de enkelzijdige +%D layout van de \MAPS\ gedefinieerd. Naast deze file +%D zijn|/|komen wat aanvullende stijlen voor specifieke +%D doeleinden beschikbaar. + +%D Normaal gesproken wordt met \type{\stelinterliniein} de +%D interlinie voor het gehele document ingesteld op een +%D zodanige wijze dat deze voor elk korps vergelijkbaar is. In +%D de \MAPS\ gebruiken we echter per korps een verschillende +%D specificatie. De daadwerkelijke definities gebeuren in de +%D file \type{font-map.tex}. + +\unprotect + +\definebodyfontenvironment + [7pt] + [\c!interlinie=8pt, + \c!groot=8pt, + \c!klein=6pt] + +\definebodyfontenvironment + [8pt] + [\c!interlinie=9pt, + \c!groot=9pt, + \c!klein=7pt] + +\definebodyfontenvironment + [9pt] + [\c!interlinie=11pt, + \c!groot=10pt, + \c!klein=8pt] + +\definebodyfontenvironment + [22pt] + [\c!interlinie=22pt, + \c!groot=22pt, + \c!klein=17pt, + \c!x=17pt] + +%D Met de instellingen \type{groot} en \type{klein} leggen we +%D vast naar welk korps wordt overgegaan als we aan +%D \type{\switchnaarkorps} de trefwoorden \type{klein} of +%D \type{groot} meegeven. Met \type{x} geven we de maat aan van +%D de pseudo klein||kapitalen. De \MAPS\ wordt gezet in 9pt. + +%\setupbodyfont[map,9pt] +% +%\startnotmode[localfonts] +% +% \setupbodyfont[mty] +% +%\stopnotmode + +%D We gebruiken echte small caps: + +\stelsorterenin + [logo] + [\c!letter=\v!smallcaps] + +\setupcapitals + [\c!titel=\v!nee] + +%D De \MAPS\ heeft de breedte van een A4||tje maar is iets +%D minder hoog. We definieren daarom een wat afwijkend +%D papierformaat en projecteren dat op A4. + +\definepapersize + [maps] + [\c!breedte=21cm, + \c!hoogte=26.4cm] + +\setuppapersize + [maps] + [A4] + +%D Artikelen in de \MAPS\ worden breed danwel in twee kolommen +%D gezet. Vooralsnog beperken we de definitie van de layout tot +%D de een||koloms opmaak. + +\setuplayout + [\c!breedte=28pc, + \c!hoogte=\v!midden, + \c!marge=9pc, + \c!margeafstand=1pc, + \c!rugwit=1in, + \c!kopwit=1.8cm, + \c!regels=53, + \c!hoofd=35pt, + \c!voet=35pt] + +\stelkolommenin + [\c!afstand=1pc] + +%D Later zullen we zonodig nog instellen dat de \MAPS\ op een +%D grid wordt gezet. Het zetten op een grid is voor \TEX\ niet +%D triviaal, en de ondersteuning in \CONTEXT\ is dan ook +%D enigzins experimenteel. De \MAPS\ is in die zin een soort +%D continue testcase. + +%D De \MAPS\ wordt vanzelfsprekend dubbelzijdig gezet. Verderop +%D gaan het paginanummer expliciet plaatsen, vandaar dat we +%D hier de plaats niet specificeren. + +\setuppagenumbering + [\c!plaats=, + \c!variant=\v!dubbelzijdig] + +%D De hoofd- en voetregels worden gezet in een sans serif. +%D Het instellen op layout niveau is efficienter dan op elk +%D regel niveau. + +\setuplayout + [\c!letter=\ss] + +%D In principe hebben we 4 verschillende soorten witruimte, +%D afhankelijk van het al dan niet op grid en/of in +%D kolommen zetten. We definieren daarom drie soorten wit: + +\definieerblanko [mapsvoor] [groot] +\definieerblanko [mapstussen] [groot] +\definieerblanko [mapsna] [mapsvoor] + +%D Waar nodig springen we in. We willen echter niet inspringen +%D na een witruimte, vandaar het trefwoord \type{volgende}. + +\setupindenting + [\v!volgende,9.5pt] + +%D Hoewel niet strikt noodzakelijk, definities en dergelijke +%D worden namelijk omgeven door witruimte, stellen we ook hier +%D in dat we na zo'n definitie niet willen inspringen. + +\steldoordefinierenin + [\c!springvolgendein=\v!nee] + +\steldoornummerenin + [\c!springvolgendein=\v!nee] + +%D We lijnen netjes uit, behalve in opsommingen, waar we +%D rechts raffelen. Ook hier springen we niet in na een +%D opsomming. + +\stelopsommingin + [\v!elk] + [\c!springvolgendein=\v!nee, + \c!uitlijnen=\v!rechts] + +%D Nu we toch met opsommingen bezig zijn, introduceren we +%D meteen een nieuw symbool, een vierkantje. We tekenen dit +%D symbool met behulp van de macros van de visuele debugger. + +\def\MapsSymbool% + {\hbox + {\boxrulewidth=.4pt + \raise.2ex\ruledvbox + {\phantom{\vrule width .75ex height .75ex}}}} + +%D Vervolgens definieren we dit stukje zetwerk als symbool: + +\definesymbol + [MapsSymbool] + [\MapsSymbool] + +%D en koppelen het aan de opsommingen op het eerste niveau. + +\stelopsommingin + [1] + [\c!symbool=MapsSymbool] + +%D Ook passen we de breedte aan het inspringen aan en +%D plaatsen we de verschillende items op elkaar. De afstand +%D speelt vooral een rol als we ruimer willen zetten. + +\stelopsommingin + [\v!elk] + [\c!breedte=9.5pt, + \c!afstand=0pt] + +\stelopsommingin + [1] + [\v!opelkaar] + +%M % Nodig voor documenteren: +%M +%M \unprotect +%M +%M \doordefinieren +%M [MapsBegrip] +%M [\c!plaats=\v!hangend, +%M \c!afstand=.75em, +%M \c!marge=\v!standaard] +%M +%M \protect + +%D Hoewel auteurs zelf nieuwe begrippen en dergelijke kunnen +%D definieren, introduceren we een klasse standaard begrippen, +%D namelijk \type{\MapsBegrip}. Men kan dus een begrip als +%D volgt definieren: +%D +%D \startbuffer +%D \MapsBegrip {MAPS} Het periodiek van de \NTG\ dat twee maal +%D per jaar verschijnt. +%D \stopbuffer +%D +%D \typebuffer +%D +%D en krijgt dan: +%D +%D \haalbuffer + +\doordefinieren + [MapsBegrip] + [\c!plaats=\v!hangend, + \c!afstand=.75em, + \c!marge=\v!standaard] + +%D Om ruimte te sparen, omringen we verbatim niet met hele lege +%D regels, maar met halve. + +\setuptyping + [\c!optie=\v!kleur, + \c!blanko=mapstussen, + \c!voor={\blanko[mapsvoor]}, + \c!na={\blanko[mapsna]}] + +%D Speciaal voor erg brede verbatim teksten, definieren we +%D een brede variant. Deze steekt alleen op de linkerbladzijden +%D in de marge. + +\definetyping + [breedtypen] + +\setuptyping + [breedtypen] + [\c!onevenmarge=-6pc] + +%D En dan nu wat echte macro definities. Samenvattingen en +%D trefwoorden worden links danwel rechts uitgelijnd gezet. +%D Omdat sommige artikelen ook nog andere introducerende toeters +%D en bellen hebben, definieren we een algemene macro. + +\def\startWhatever#1% + {\witruimte + \snaptogrid\vbox\bgroup + \forgetall + \setupalign[\v!rechts] + \parfillskip 0pt plus 1 fill + \setuptolerance[\v!zeersoepel] + \setupindenting[\v!geen] + {\ssbf#1}\par + \switchtobodyfont[8pt] + \ss\tf + \ignorespaces} + +\def\stopWhatever% + {\par + \egroup + \blanko[\v!regel]} + +%D De macro \type{\snaptogrid} is hier essentieel en zorgt +%D ervoor dat de tekst op het grid wordt gezet, ondanks de +%D afwijkende spatiering. + +\def\Whatever#1#2% + {\startWhatever{#1}#2\stopWhatever} + +\def\defineWhatever#1#2% + {\setvalue{\e!start#1}{\startWhatever{#2}} + \setvalue {\e!stop#1}{\stopWhatever} + \setvalue {#1}{\Whatever{#2}}} + +\defineWhatever{Abstract}{abstract} +\defineWhatever{Keywords}{keywords} + +%D Een samenvatting ziet er nu als volgt uit: +%D +%D \starttypen +%D \startAbstract ..... \stopAbstract +%D \stoptypen +%D +%D of korter: +%D +%D \starttypen +%D \Abstract{...} +%D \stoptypen +%D +%D Ook hebben we de beschikking over: +%D +%D \starttypen +%D \startWhatever{....} ..... \stopWhatever +%D \stoptypen + +%D We zullen de artikelen per stuk verwerken. Elk artikel heeft +%D z'n eigen kenmerken, die, zoals we later zullen zien, worden +%D ingesteld aan heb begin van een artikel: +%D +%D \starttypen +%D \startBijdrage[instellingen] +%D ..... +%D ..... +%D \stopBijdrage +%D \stoptypen +%D +%D Hieronder is te zien wat de standaard instellingen zijn: + +\def\MapsTypering[#1]% + {\getparameters + [Maps] + [Jaar=1999, + Periode=Voorjaar, + Categorie=Bijlage, + Nummer=F, + Pagina=43, + Titel=Publish or Perish, + Subtitel=, + Auteur=M.A.P.S. Auteur, + Adres=, + Email=maps@ntg.nl, + Kolommen=\v!nee, + Grid=\v!ja, + #1]} + +%D In het adres en bij de auteur kan men \type{\\} gebruiken +%D om naar een nieuwe regel over te gaan. Voor de zekerheid +%D initialiseren we deze instellingen met: + +\MapsTypering[Categorie=Voorbeeld] + +%D De instellingen zijn beschikbaar als \type{\MapsVariabele}. +%D In de onderstaande definities van de hoofd- en voetregels +%D zien we de instellingen terug (de prefix \type{\unexpanded} +%D zorgt ervoor dat we straffeloos kunnen testen): + +\unexpanded\def\LinkerKolomTekst#1% + {\rlap{\hbox to 10pc{\hfill#1}}} + +\unexpanded\def\RechterKolomTekst#1% + {\llap{\hbox to 10pc{#1\hfill}}} + +\edef\AuteurScheider{, } + +\unexpanded\def\AuteurNamen#1% + {{\let\\=\AuteurScheider#1}} + +\setupheadertexts + [\MapsTitel] + [\LinkerKolomTekst{\MapsCategorie\ \MapsNummer}] + [\RechterKolomTekst{\MapsCategorie\ \MapsNummer}] + [\AuteurNamen{\MapsAuteur}] + +\setupfootertexts + [\MapsPeriode\ \MapsJaar] + [\LinkerKolomTekst{\pagenumber}] + [\RechterKolomTekst{\pagenumber}] + [MAPS] + +%D Voetnoten worden onderaan de bladzijde gezet, of, in geval +%D van kolommen, in de tweede kolom. We definieren een wat +%D afwijkende lijn als scheider: + +\def\VoetNootLijn% + {\strut\vrule height .4pt depth 0pt width 9.25pc + \vskip0pt} + +\setupfootnotes + [\c!korps=8pt, + \c!plaats=\v!kolommen, + \c!lijn=\VoetNootLijn, + \c!voor=\blanko, + \c!letter=\v!schuin, + \c!nummercommando=] + +%D De voetnoot zelf stellen we in met: + +\setupfootnotedefinition + [\c!plaats=\v!aansluitend, + \c!breedte=\v!passend, + \c!kopletter=\v!normaal, + \c!afstand=.5em] + +%D We komen nu aan de wat lastiger macros. Het eerste dat een +%D bijdrage definitie doet, is nagaan of we in kolommen zetten. +%D Afhankelijk van de situatie, laden we wat aanvullende +%D definities. De titelpgina heeft geen hoofdregels en de +%D titel wordt automatisch gezet. + +\def\Bericht{Bericht} + +\newif\ifMapsInKolommen + +\def\dostartBijdrage[#1]% + {\pagina + \MapsTypering[#1] + \doifelse{\MapsKolommen}{\v!nee} + {\MapsInKolommenfalse} + {\MapsInKolommentrue} + \ifMapsInKolommen + \haalbuffer[s-maps-1] % see later on + \fi + \setupheader[\c!status=\v!leeg] + \stelpaginanummerin[\c!nummer=\MapsPagina] + \setuplayout[\c!grid=\MapsGrid] + \ifgridsnapping % nog controleren + \setupblank[\v!regel] + \definieerblanko[mapsvoor][\v!halveregel] + \definieerblanko[mapstussen][\v!regel] + \else + \setupblank[\v!halveregel] + \definieerblanko[\v!middel][\v!halveregel] + \definieerblanko[mapsvoor][\v!halveregel] + \definieerblanko[mapstussen][\v!halveregel] + \fi + \snaptogrid\vbox + \bgroup + \switchtobodyfont[ss,22pt]%\ss + \bgroup + \topskip 0pt + \forgetall + \ifMapsInKolommen \setupalign[\v!links] \fi + \noindent\tf\MapsAffiliatieA + \ifx\MapsCategorie\Bericht + ~\strut + \else + \MapsCategorie~\MapsNummer + \fi + \par \kern -.5pt + \egroup + \bgroup + \forgetall + \kern 7.5pt + \ifMapsInKolommen + \setupalign[\v!links] + \else + \setupalign[\v!rechts] + \fi + {\bf\MapsTitel\par} + {\bfx\MapsSubtitel\par} + \blanko[\v!regel] + \kern 3.5pt + \egroup + \egroup + \ifMapsInKolommen\startkolommen\fi + \MapsAffiliatieB} + +\def\startBijdrage% + {\starttekst + \dosingleempty\dostartBijdrage} + +\def\stopBijdrage% + {\ifMapsInKolommen\stopkolommen\fi + \stoptekst} + +%D De affiliatie wordt in de marge gezet. De wat gecompliceerde +%D definitie zorgt er voor dat de bovenkant van de eerste +%D regels uitlijnen. Met \type{\getpagestatus} kunnen we +%D vaststellen of we op een rechterbladzijde zitten. + +\unexpanded\def\MapsAffiliatieA% + {\ifMapsInKolommen \else + \snaptogrid\vbox\bgroup + \setbox0=\hbox{X}% + \dimen0=\ht0 + \switchtobodyfont[9pt,\v!reset]% + \setbox0=\hbox{X}% + \advance\dimen0 by -\ht0 + \getpagestatus + \ifodd\MapsPagina\relax \rightpagetrue \fi + \setbox0=\vtop + {\hsize\margebreedte + \forgetall + \let\\=\par + \ifrightpage\raggedright\else\raggedleft\fi + \parfillskip 0pt plus \margebreedte + \strut\MapsAuteur\\ + \MapsAdres\\ % kan leeg zijn + \strut\tttf\MapsEmail}% + \ht0=\ht\strutbox + \dp0=\dp\strutbox + \ifrightpage + \rlap{\kern\zetbreedte\kern\margeafstand\raise\dimen0\box0}% + \else + \llap{\raise\dimen0\box0\kern\margeafstand}% + \fi + \global\let\Affiliatie=\relax + \egroup + \fi} + +\unexpanded\def\MapsAffiliatieB% + {\ifMapsInKolommen + \snaptogrid\vbox\bgroup + \forgetall + \ss + \let\\=\par + \strut\MapsAuteur\\ + \MapsAdres\\ % kan leeg zijn + \strut\tttf\MapsEmail\\ + \egroup + \fi} + +%D De verschillende koppen worden zo efficient mogelijk gezet. +%D Let ook hier weer op de halve regels, waardoor gridsnapping +%D eenvoudiger is. + +\stelkopin + [\v!paragraaf] + [\c!letter=\bfa, + \c!voor={\blanko[\v!halveregel]}, + \c!na={\blanko[\v!halveregel]}] + +\stelkopin + [\v!sub\v!paragraaf] + [\c!letter=\bf, + \c!voor=\blanko, + \c!na=] + +\stelkopin + [\v!sub\v!sub\v!paragraaf] + [\c!letter=\bf, + \c!variant=\v!tekst, + \c!voor=\blanko, + \c!na=] + +%D De plaats van de figuren en het lettertype waarin de +%D bijschriften worden gezet stellen we in met: + +\stelplaatsblokkenin + [\c!plaats=\v!links] + +\stelblokkopjesin + [\c!letter=\sstf, + \c!tussen=] + +%D Gezien het brede karakter van de \MAPS\ gebruiken we andere +%D waarden voor links geraffeld uitlijnen. The low level macro +%D used here is subjected to changes! + +\def\raggedleft% + {\setraggedness\leftraggedness + \setraggedskips{1}{1fill}{0em}{.3333em}{.5em}{1fil}{\parindent}} + +%D Standaard gebruikt \CONTEXT\ kleur bij pretty verbatim +%D printing. In the \MAPS\ gebruiken we echter fonts: + +\def\beginofpretty[#1]% + {\bgroup + \def\COMMONprettyone {\ttsl}% + \def\COMMONprettytwo {\ttbf}% + \def\COMMONprettythree{}% + \def\COMMONprettyfour {}% + \getvalue{COMMON#1}} + +\def\endofpretty% + {\egroup} + +%D We zijn (heel) wat toleranter in het uitlijnen: + +\steltolerantiein + [\v!zeersoepel] + +%D We misbruiken het buffer mechanisme om enkele eerder +%D gedefinieerde instellingen te veranderen in geval van zetten +%D in kolommen. + +\startbuffer[s-maps-1] + +%D In kolom||mode gebruiken we geen marge en hebben dus wat +%D meer breedte ter beschikking. + +\setuplayout + [\c!breedte=38pc] + +\setupheadertexts + [\MapsTitel] + [\MapsCategorie\ \MapsNummer] + [\MapsCategorie\ \MapsNummer] + [\AuteurNamen{\MapsAuteur}] + +\setupfootertexts + [\MapsPeriode\ \MapsJaar] + [\pagenumber] + [\pagenumber] + [MAPS] + +%D In kolom||mode plaatsen we de inleidingen rechts met een +%D raffelige linkerkantlijn. + +\def\startWhatever#1% + {\witruimte + \snaptogrid\vbox\bgroup + \forgetall + \setupalign[\v!links] + \steltolerantiein[\v!zeersoepel] + \setupindenting[\v!geen] + \switchtobodyfont[8pt] + \noindent{\ssbf#1}\par + \ss\tf + \ignorespaces} + +\def\stopWhatever + {\par + \egroup + \verticalstrut + \noindentation} + +%D Tot zover de twee||koloms instelingen. + +\stopbuffer + +%D Enkele \LATEX\ conversie macro's: + +\let\verb=\type + +\def\mailadres#1{{\tt#1}} + +\endinput |