Documentstijlen Artikelx Verantwoording

Victor Eijkhout

3 september 1989 / 3 juni 1994

Samenvatting Dit is de verantwoording voor de documentstijlen ‘Artikel1’, ‘Artikel2’, en ‘Artikel3’. Deze stijlen zijn bedoeld als een mogelijke vervanging van de stijl ‘article’. In dit verhaal zijn beschreven

1. de redenen waarom bepaalde veranderingen zijn aangebracht;

2. de parameters en commando’s die op de veranderingen betrekking hebben; en 3. de wijze waarop de veranderingen zijn geïmplementeerd.

Tegelijk is dit document een uitprobeerobject voor de nieuwe stijlen^{1}.

Deel I Algemeen

1 Verantwoording

De documentstijlen ‘Artikelx’ zijn bedoeld als verbetering van de standaard L^{A}TEXdocumentstijl ‘Article’. De meeste macros zijn derhalve modificaties van constructies uit ‘article.sty’ of ‘latex.tex’.

Bij het ontwerpen van de opmaak heb ik advies gehad van Inge Eijkhout [1]. Het boek ‘Tekstwijzer’ [4] van Karel Treebus was verder een hulp (de opmaak van de inhoudsopgave in ‘Artikel1’ is daar zelfs compleet uit overgenomen). Ook erken ik de invloed van John Miles’ ‘Ontwerpen voor Desktop Publishing’ [3]. Nico Poppelier heeft met raad en daad ter zijde gestaan. Wat er fout is aan deze stijlen blijft natuurlijk voor mijn rekening komen.

2 Overzicht

De documentstijlen ‘Artikelx’ zijn geheel compatibel met ‘Article’: er zijn geen commando’s toegevoegd of weggelaten. De veranderingen ten opzichte van ‘Article’ betreffen enkel de opmaak. In het bijzonder is er gesleuteld aan:

1. witregels rond koppen van secties, subsecties en subsubsecties (van nu af aan ‘sectiekoppen’ genoemd),

2. verdere veranderingen aan de opmaak van deze koppen,

1. De hoeveelheid gebruikte L^{A}TEX-constructies is derhalve aan de ruime kant. De lezer wordt vriendelijk gevraagd zich hieraan niet te ergeren.

3. de hoeveelheid inspringing bij lijststructuren (gegenereerd met het L^{A}TEX \@list commando), in het bijzonder ‘itemize’, ‘enumerate’, en (specifiek voor ‘article’) ‘description’, en

4. verdere opmaak van lijststructuren,

5. verdere opmaak van sectiekoppen, en

6. de inhoudsopgave. Over het algemeen is het de bedoeling geweest een strakke opmaak te krijgen (de standaard stijlen van L^{A}TEX ‘zwemmen’ over de pagina).

3 Exportkwaliteit documentstijlen

De documentstijlen ‘Artikelx’ kunnen zowel gebruik maken van de stijloptie ‘Dutch’ (auteur: Johannes Braams) als van ‘German’ (auteur: Hubert Partl), als van elke andere optie die de door Partl in ‘German’ gesuggereerde parametrisaties doorvoert. Deze opties zijn een reparatie voor het euvel dat de meeste taalspecifieke termen in de stijlen van de heer Lamport niet geparametriseerd zijn.

In ‘Dutch’ worden definities uit ‘Article’ en dergelijke overreden door geparametriseerde versies^{2}, die op verschillende talen ingesteld kunnen worden. Deze definities hadden natuurlijk al in de stijlen van heer Lamport geparametriseerd moeten zijn.

De optie ‘German’ is minder drastisch dan ‘Dutch’: deze gaat ervan uit dat hij door geparametriseerde stijlbestanden opgeroepen wordt, en zet zelf alleen de parameters. De ‘Artikel’ stijlen zijn geparametriseerd volgens de suggestie van Partl.

3.1 Kanttekening De stijl ‘Dutch’ parametriseert onder andere het commando ‘abstract’. Aangezien ik dit commando om opmaaktechnische redenen al herdefinieer, kan ‘Dutch’ niet op ‘Artikel’ losgelaten worden alsof het gewoon ‘Article’ was. Momenteel is ‘Artikel’ dus een ‘onbekende documentstijl’ waar het ‘Dutch’ betreft, en wordt er geen gebruik gemaakt van het feit dat een aantal definities zich ook in ‘Dutch’ bevinden.

3.2 Een steek onder water Hoewel het mij tegen de borst stuit het Engels een voorkeurspositie te geven onder de wereldtalen – zeker in een voor het Nederlands bedoelde stijl – heb ik besloten de Engelse parameterwaarden uit ‘Dutch’ als verstekwaarde in de ‘Artikel’-stijlen op te nemen. Een belangrijk argument hiervoor is dat dit de stijlen geheel gelijk maakt aan ‘Article’ op commandonivo: zonder extra opties worden er Engelse teksten geleverd, en voor Nederlands of Duits in een optiebestand nodig.

Een minstens zo belangrijk argument^{3} hiervoor is dat de ‘Artikel’-stijlen zo een steek onder water naar Leslie Lamport vormen. Ze zeggen als het ware ‘Look here buster, zo had het van begin af aan moeten zijn’.

2. Een listige truc laat ‘Dutch’ achterhalen door welke stijl hij aangeroepen is; de ‘Artikel’ stijlen zijn een onbekende stijl voor ‘Dutch’

3. mij door Nico Poppelier aan de hand gedaan

Deel II Mechanismen; veranderingen in Artikel1

In de nu volgende subsecties worden de veranderingen ten opzichte van de oude artikelstijl besproken in volgorde van oplopende moeilijkheidsgraad van implementatie. De algemene mechanismen worden besproken, alsmede hun concrete realisatie in ‘Artikel1’.

4 Trivialiteiten

In de ‘article’-stijl staat ‘raggedbottom’ aan voor enkelzijdige documenten. Dit moet uit. ‘Frenchspacing’ dient altijd aan te staan.

4.1 Paginanummers De gebruiker kan met \pagestyle{STIJL} een stijl van kop- en voetregels opgeven. De ‘Article’ stijl definieert ‘plain’ (gecentreerde voetregels), en ‘headings’ en ‘myheadings’ (asymmetrische kopregels). Als een gebruiker een stijl specificeert, resulteert dat in de aanroep van een commando \ps@STIJL.

Omdat ik paginanummers wil hebben die rechts staan voor enkelzijdige documenten, en links/rechts voor tweezijdige documenten heb ik het commando \ps@plain, de verstekwaarde, omgebouwd.

4.2 De samenvatting in ‘Artikel1’ In ‘Artikel1’ heb ik de samenvatting tegen de linker kantlijn aan getrokken. Het is nu enkel een groep waarbinnen de korpsgrootte ‘small’ gebruikt wordt.

5 Makkelijke veranderingen: witregels

De L^{A}TEX artikelstijl wordt gekenmerkt door een overmaat aan witregels. Hierin is stevig gesnoeid.

5.1 Witregels rond koppen De ‘article’-stijl maak zowel het wit boven als onder koppen rekbaar. Gevoegd bij het feit dat de ‘natuurlijke lengte’ van dit wit al aan de ruime kant is, maakt dit het paginabeeld erg los. Witregels moeten kleiner worden, en mogen tussen kop en de eerste regel van de tekst niet rekbaar zijn. Verder verdient het aanbeveling de witruimte in termen van het regeltransport aan te geven.

5.1.1 Relevante concepten Het wit onder en boven koppen wordt bepaald door parameters 4 en 5 van \@startsection, hetwelk commando in ‘art1x.sty’ gebruikt wordt om de sectiekopcommando’s te definiëren. Parameter 4 dient (in ons geval) het negatieve van de gewenste skip te specificeren.

5.1.2 Implementatie van de veranderingen De volgende waarden voor de verticale witruimte zijn gebruikt (in eerste instantie

kop  wit boven kop wit onder kop
section  -2-1+.5  .5
subsection  -1-.5+.25  .25
subsubsection  -1-.5+.25  .25

Tabel 1: Hoeveelheid vertikaal wit in termen van ‘normalbaselineskip’

waren mij hogere waarden gesuggereerd, na inspectie bleken deze waarden beter te voldoen).

De hoeveelheid wit boven koppen steekt niet zo nauw. Die eronder wel. In het bijzonder is het een merkwaardig idee het wit onder koppen rekbaar te hebben. De grootte van dit wit draagt aanzienlijk bij aan het ritme van de pagina.

Opmerking: Aangezien alle skips in termen van de ‘baselineskip’ gegeven worden, kunnen deze definities opgetild worden van het optiebestand naar het stijlbestand.

5.2 Witregels rond lijststructuren Witregels rond de items van een lijststructuur maken het paginabeeld onrustiger, en zijn vaak niet functioneel: een ‘itemize’-structuur is meestal één doorlopend betoog waarin witregels ongewenst zijn. Er valt iets voor te zeggen rondom ‘description’- structuren wel witregels toe te staan, aangezien de beschrijvende termen in feite een kopje vormen.

De eerste tekstregel na een lijststructuur dient niet ingesprongen te worden, ongeacht of de gebruiker een regel open gelaten heeft achter de lijst (bij voorbeeld om zijn invoer overzichtelijker te maken).

5.2.1 Inventaris van relevante concepten L^{A}TEX bestuurt witregels rond en in lijststructuren met de parameters ‘topsep’, ‘partopsep’, ‘itemsep’, ‘parsep’. Deze parameters worden gezet in ‘art1x.sty’ in het

topsep  ruimte boven een lijst
partopsep extra als de lijst een nieuwe paragraaf opent
itemsep  ruimte tussen items
parsep  ruimte tussen paragrafen.

Figuur 1: Parameters in tabel-omgeving

commando

      @list\romannumeral\the\@listdepth

hetgeen ge‘eval’d wordt in \@list.

Spaties na een lijststructuur kunnen onderdrukt worden door \if@ignoretrue toe te voegen aan ‘enditemize’ en ‘endenumerate’. Het is nog niet duidelijk of voorkomen kan worden dat er ingesprongen wordt als de gebruiker een lege regel ingeeft.

5.2.2 Implementatie van de veranderingen Voor de gebruikte lijststructuren (met mogelijke uitzondering van ‘description’) dienen al deze parameters nul te zijn.

Opmerking: als voor de ‘labelwidth’ en de ‘labelsep’ een oplossing in termen van fontparameters gevonden wordt, kunnen de ‘listi’ en dergelijke commando’s opgetild worden van het stijloptiebestand naar het stijlbestand zelf.

5.3 Verdere witregels Het wit rond lijststructuren wordt bestuurd door de locale ‘topsep’, die we boven nul gemaakt hebben, en door de globale ‘topsep’. Voor een strakke opmaak is het wenselijk die nul te maken, echter hiermee verdwijnt ook het wit op een plaats waar dat wel wenselijk is: rond ‘verbatim’ delen van het document. De oplossing zou kunnen zijn het invoegen van een ‘topsep’ in het \verbatim commando.

De witregel tussen voetnoten wordt bestuurd door de ‘footnotesep’. Ik zou niet weten waarom die anders dan nul zou moeten zijn.

6 Ook niet moeilijk: fonts

Er moet wat met fonts gerommeld worden. Voornamelijk moeten ze kleiner, en het cursief moet vervangen worden door wat in Nederlandse terminologie ‘gecursiveerd’ heet; wij TEXies kennen dit als ‘slanted’.

6.1 Fonts in sectiekoppen De fonts gebruikt in tussenkopjes zijn proefondervindelijk tot stand gekomen, en waarschijnlijk nog aan mutatie onderhevig. De oorspronkelijk ideeën komen uit de ‘Sober’-stijl van Nico Poppelier. Daarna is het ‘italic’ vervangen door ‘slanted’. Kwestie van smaak. Ik hou niet van de cmti. Verder is het klein kapitalen font als ‘… en hopeloos ouderwets’ [1] de laan uitgestuurd.

6.2 Theorems en het ‘emphasize’ font Om tekst te beklemtonen gebruikt L^{A}TEX het cursieve font cmti. Dit vin’ ik niet mooi. Binnen de Nederlandse stijlen wordt er dus beklemtoond met cmsl. Ook in de ‘theorem’ omgevingen is deze vervanging doorgevoerd.

7 Moeilijke veranderingen: eenheidsinspringing

Ten einde een strakke paginaopmaak te verkrijgen, verdient het aanbeveling het aantal (impliciete) kantlijnen tot een minimum te beperken. De radicaalste oplossing voor dit probleem bestaat uit

1. alle labels in lijststructuren tegen de linkerkantlijn aan te plaatsen (dit is niet zo mooi als er ver ingesprongen wordt),

2. voetnoten niet te laten inspringen (ingesprongen voetnoten zien er alleen goed uit als ze meer dan één regel lang zijn), en

3. een eenheidsinspringing in te voeren voor • alinea’s,

• teksten van koppen op alle nivo’s, en

• de ingesprongen tekst in lijststructuren. Laten we er voorlopig dus vanuit gaan dat er een parameter ‘unitindent’ is. De berekening van deze grootheid komt verderop aan de orde.

7.1 Inspring bij lijststructuren Labels voor items in een lijst definiëren gemakkelijk een tweede kantlijn. Het kan dus gewenst zijn ze tegen de linkerkantlijn van de omringende tekst aan te plaatsen.

7.1.1 Inventaris van relevante concepten Een lijst op het eerste nivo springt in over ‘leftmargini’. Het label wordt van de tekst gescheiden door ‘labelsep’, en heeft breedte ‘labelwidth’, tenzij de natuurlijke breedte groter is. De linkerkant van het label staat echter altijd op ‘labelwidth’ plus ‘labelsep’ van de ingesprongen kantlijn. De inhoud van het label wordt in de omringende box geplaatst door het commando ‘makelabel’.

Al deze begrippen worden ingevuld in de commando’s ‘listx’.

7.1.2 Implementatie van de veranderingen Het zetten van parameters kan mooi in de ‘listx’ commando’s gebeuren:

      \def\@listi{\leftmargin=\unitindent
                  \labelsep=\enspace
                  \labelwidth=\leftmargin
                  \advance\labelwidth by -\labelsep}}

Als de ‘unitindent’ door fontparameters bepaald wordt, hoeft deze definitie niet meer in het optiebestand te staan, maar kan naar de stijldefinitie opgetild worden.

Het veranderen van de definitie van ‘makelabel’ is lastiger: dit moet in het tweede argument van ‘list’ gebeuren. We zullen dus ‘itemize’ en ‘enumerate’ moeten herdefiniëren met een nieuwe definitie van ‘makelabel’.

7.1.3 Speciale behandeling eerste nivo Omdat de ‘unitindent’ tamelijk groot uitvalt, heb ik ervoor gekozen labels op het eerste nivo rechts aan te lijnen (waardoor ze dus in bescheiden mate een nieuwe kantlijn definieren), andere labels lijnen links.

Dit is geïmplementeerd door in het ‘commands’ argument van \@list de definitie van ‘makelabel’ afhankelijk te maken van de \@listdepth.

7.2 Inspring bij koppen De plaatsing van de tekst van koppen (achter het sectienummer) is in L^{A}TEX ogenschijnlijk willekeurig, en draagt hiermee (zeker als twee koppen onder elkaar staan) bij tot een onrustig paginabeeld. Dit kan aanmerkelijk verbeterd worden door voor het sectienummer en de erop volgende spatie een eenheidsbreedte te nemen.

7.2.1 Inventaris van relevante concepten In het commando \@sect wordt een commando \@svsec ge‘edef’t dat het sectie nummer afdrukt, gevolgd door ‘1 em’^{4}^{5}.

4. Ter herinnering:

– Er zijn 5 nivo’s van sectiekoppen: ‘section’, ‘subsection’, ‘subsubsection’, ‘paragraph’, en ‘subparagraph’.

– De eerste 3 nivo’s zijn genummerd.

– De laatste twee nivo’s geven een kop die in de tekst is ingebed.

5. Aangezien de definitie van ’em’ met het gebruikte font meeverandert, geeft het gebruik van twee of drie koppen onder elkaar een merkwaardig visueel effect.

7.2.2 Implementatie van de veranderingen Er moet een nieuwe versie van \@sect komen die een verbeterde \@svsec bevat:

      \edef\@svsec{\hbox to \unitindent
                      {\csname the#1\endcsname\hfil}}

In plaats van ‘unitindent’ kan als breedte ook een verdere parametrisatie met

      \csname #1labelwidth\endcsname

gekozen worden. De ‘unitindent’ kan als volgt gegenereerd worden:

      \newdimen\unitindent
      {\setbox0\hbox{\normalsize\bf 2.2.2\ }
       \global\unitindent=\wd0}
      \parindent=\unitindent
      \leftmargini=\unitindent

Dit is helaas nog niet voldoende. Als een gebruiker erg veel van secties en subsecties houdt, kunnen de nummers een grotere breedte dan die van ‘2.2.2’ krijgen. Daarom wordt het label iedere keer bij een nieuw kopje opgemeten, en zonodig wordt de ‘unitindent’ bijgesteld. Bij het afsluiten van het document wordt dan de definitieve waarde (die misschien de oude is, en misschien veel meer) naar het .auxbestand geschreven. Dat wil zeggen: er wordt een toewijzing van die waarde aan de unitindent weggeschreven.

Adders en voetangels te over: hiervoor moet het commando ‘enddocument’ herschreven worden.

8 Verdere moeilijke veranderingen: de opmaak van lange koppen. Zoals deze dus. Reeds. Antidisestablishmentarianism. Hottentottententententoonstelling.

L^{A}TEX zet koppen als ingesprongen paragrafen. Het is echter niet gewoon dat een meerregelige kop zo behandeld wordt: beter is het vrije regelval te gebruiken en vooral woordafbreking (zelfs in samengestelde woorden) te verbieden.

8.1 Inventaris van relevante concepten Binnen het commando \@sect wordt de kop van de sectie gezet als

      {\interlinepenalty\@M #8\par}

8.2 Implementatie van de veranderingen Aan de zetcommando’s voor de sectiekoppen dient een aanroep van ‘headstyle’ toegevoegd te worden, waar

      \def\headstyle{\nohyphenation \rightskip=0cm plus 3cm}

of zoiets. Het commando ‘nohyphenation’ kan op verschillende manieren bereikt worden, ik heb gekozen voor \hyphenpenalty=10000, en idem zo voor de ‘exhyphenpenalty’.

9 Opties

De stijlen ‘Artikel1’ en ‘Artikel3’ hebben een door de gebruiker te kiezen optie. Hiermee kan de gebruiker de opmaak naar eigen goeddunken varieren. Misschien dat er nog wel meer van dat soort opties komen.

9.1 Hoe werken opties Een door de gebruiker gespecificeerde stijloptie wordt soms gerealiseerd door een commando in het stijlbestand, en soms door een in te laden optiebestand. Het mechanisme dat dit bewerkstelligt is het volgende.

Ergens bovenin het stijlbestand worden commando’s \ds@OPTION gedefinieerd. Als de gebruiker de betreffende optie meegegeven heeft, wordt dit commando uitgevoerd door \@options, dat ook ergens bovenin het stijlbestand staat. Voor die opties waarvoor geen \ds@OPTION macro gedefinieerd is, wordt na de verwerking van het stijlbestand door L^{A}TEX een bestand OPTIONSTY. geladen.

10 De inhoudsopgave

10.1 Beschrijving 10.1.1 Inventaris van kwalen Treebus vindt het zogenaamde ‘uitpunten’ van een inhoudsopgave een minder geslaagd idee. Ook over het steeds verder inspringen van kopjes in de inhoudsopgave is hij niet te spreken. Laat dit nu precies zijn wat L^{A}TEX doet.

Wat mij dan nog stoort zijn de grote verschillen in zetwijze van kopjes op verschillende nivo’s.

10.1.2 Remedie Kantlijnen Alle nummers worden tegen de linker kantlijn getrokken, en de kopjes staan dan (allemaal) op ‘unitindent’ van de linker kantlijn. Dit levert geen problemen op omdat er net zoveel nivo’s nummering in kopjes als in de inhoudsopgave voorkomen.

Fonts Kopjes worden in drie verschillende fonts gezet om de hierarchie uit te doen komen. Ik heb gekozen voor ‘bf’, ‘sl’, en ‘rm’ in ‘normalsize’. Er valt over te twisten of dit misschien gewoon de fonts van de koppen zelf moeten zijn.

Verdere zetwijze Er wordt vrije regelval gebruikt. Het paginanummer verschijnt direct achter het kopje (met een vaste hoeveelheid wit).

10.2 Implementatie Ten eerste is er een commando \toc@font gekomen dat het font bepaalt waarmee een kop in de inhoudsopgave gaat verschijnen. Deze bepaling gebeurt in \@sect, die daartoe verder is aangepast.

Ten tweede is er, als vervanging van \@dottedtocline, een commando \@regtocline dat de opmaak van de kop regelt. De merkwaardige sequentie

      \@tempdima=\unitindent

zorgt ervoor dat het nummer (dat in \@sect in een ‘numberline’ gestopt is) op de goede breedte gezet wordt.

De \l@TYPE commando’s (waar ‘type’ is ‘section’ en dergelijke) zijn omgezet zodat ze \@regtocline gebruiken. Uitzondering: \l@part. Daar kom ik nog wel een keer aan toe.

Deel III Veranderingen in Artikel2

In de documentstijl ‘Artikel2’ is voor veel zaken een geheel andere keuze gemaakt dan in ‘Artikel1’. Vaak betekende dit dat, gegeven de moeite die in ‘Artikel1’ geinvesteerd was, slechts een paar parameters veranderd hoefden te worden. In enkele gevallen, echter, moest een geheel nieuwe aanpak gevolgd worden.

11 Variaties

De beide hier beschreven documentstijlen hebben als voornaamste verbetering ten opzichte van ‘Article’ een nadrukkelijk aanwezige tweede kantlijn. In ‘Artikel1’ wordt deze kantlijn gebruikt door al het eenmaal ingesprongen materiaal. In ‘Artikel2’ wordt deze kantlijn minder radicaal gevolgd:

• ‘verbatim’ omgevingen worden weer gewoon tegen de linkerkantlijn geplaatst;

• de eerste kantlijn voor lijststructuren bedraagt de helft van de paragraafinspinging; en

• de labelbreedte van voetnoten is hieraan gelijk gemaakt. Alles bij elkaar wordt het gewicht van de pagina verder tegen de linkerkantlijn geplaatst.

Van een andere kant bekeken is de tweede kantlijn (zeg dat die door de ‘parindent’ bepaald wordt) in de stijl ‘Artikel2’ juist nadrukkelijker aanwezig:

• alle tussenkopjes springen in over de ‘parindent, en

• de eerste regel na een kopje springt ook in.

12 Behandeling van koppen

12.1 Sectie, subsectie, subsubsectie 12.1.1 Elementaria Het laten inspringen van koppen gaat door een positieve waarde voor de derde parameter van \@startsection te specificeren. Door de vierde parameter positief te maken springt de eerste regel na de kop ook in.

Omdat de tekst van de kopjes nu geen verdere kantlijn definieert hoeft er niet zo’n moeite gedaan te worden om die te plaatsen als in ‘Artikel1’. Ik heb de normale L^{A}TEX-constructie van een vaste ‘skip’ weer in ere hersteld; op drie-tiende ‘em’ deze keer.

12.1.2 Complicaties Om te voorkomen dat bij lange koppen de tekst alsnog een tweede kantlijn gaat definiëren moest de \@hangfrom die dit bewerkstelligt verwijderd worden. Bij volledig verwijderen, echter, zal de tweede regel van de kop tegen de linker kantlijn geplaatst worden. Ook niet de bedoeling.

In de aanpak die ik gevolgd heb hangt de tekst nu aan de inspringing; het commando \@svsec dat het nummer zet is gewoon in de tekst geplaatst.

12.2 Part Het zou leuk zijn als de eerste regel na een ‘part’-kop ook insprong. Het al dan niet inspringen van deze regel wordt bestuurd door de schakelaar \@ifafterindent waarop getest wordt in \@afterheading. Normaal wordt inspringen voorkomen door deze schakelaar in ‘part’ op onwaar te zetten.

Het zal de perceptieve lezer duidelijk zijn wat ik gedaan heb om inspringen van de eerste regel na een ‘part’ af te dwingen.

13 De samenvatting

In ‘Article’ (maar niet in ‘Artikel1’) wordt de samenvatting gezet door middel van de ‘quotation’ omgeving. Dit, op zijn beurt, is een ‘list’ met slechts een item, in dit geval de tekst van de samenvatting. Net als in ‘Article’ zou ik de samenvatting ingesprongen willen zien over de alineainspring. Dit lukt niet meer als de samenvatting als een ‘quotation’ gezet wordt, aangezien de lijstinspringing (op het eerste nivo) de helft van de alineainspringing bedraagt.

Ik heb er derhalve voor gekozen de samenvatting expliciet als een lijst te zetten, waarbij in het tweede argument van ‘list’ (het argument waarin commando’s meegegeven kunnen worden) de ‘leftmargin’ op ‘unitindent’ gezet wordt.

14 De inhoudsopgave

De inhoudsopgave wordt in ‘Artikel2’ net zo gezet als in ‘Artikel1’, met het verschil dat de sectienummers nu niet links maar rechts lijnen. Dit in het kader van het beklemtonen van de tweede kantlijn. Hiertoe moest het commando ‘numberline’ uit ‘LaTeX.tex’ overgenomen en aangepast worden.

Overigens is de tweede kantlijn in de inhoudsopgave verder naar rechts dan in de rest van het document. De inhoudsopgave dient dus liever niet op een tekstpagina te beginnen.

Dat de tweede kantlijn verder naar rechts staat betekent overigens dat het woord ‘inhoudsopgave’, dat als een sectiekop gezet wordt, voorafgegaan moet worden door een ‘skip’ ter breedte van het verschil.

Deel IV Veranderingen in Artikel3

Uitgaande van ‘Artikel1’ was het kinderspel een stijl te maken die net zo strak links lijnend oogde, maar die bovendien geen alineainspringing heeft en dit compenseert met een ‘parskip’.

• Er is gekozen voor een ‘parskip’ ter grootte van de helft van de ‘baselineskip’.

• De ‘topsep’ in lijststructuren – de witruimte boven en onder de gehele lijst – is minus de halve ‘parskip’; netto effect is dat hier de helft van de witruimte komt die zich tussen alineas bevindt.

• De grootte van de ‘unitindent’ kon ongewijzigd blijven, aangezien kopjes nog steeds op dezelfde wijze gezet worden.

• Het wit onder kopjes is op nul gezet. Dit betekent niet dat er geen wit staat,

want de ‘parskip’ krijg je hoe dan ook kado. Het geheel oogt wel aardig.

Referenties

[1] Inge Eijkhout, Gesprekken en correspondentie, 1989.

[2] Leslie Lamport, L^{A}TEX, a document preparation system, Addison-Wesley, 1986.

[3] John Miles, Ontwerpen voor Desktop Publishing^{6}, Alles over layout en typografie op de personal computer, Uitgeverij Mingus, Baarn 1988.

[4] Karel Treebus, Tekstwijzer, een gids voor het grafisch verwerken van tekst, SDU uitgeverij, 1988.

6. De Nederlandse uitgave is goedkoper dan de Engelse, maar doet een zware aanslag op je ogen, door het soort zetfout dat in TEX onmogelijk zou kunnen voorkomen.

Inhoudsopgave

I Algemeen 1 1 Verantwoording 1 2 Overzicht 1 3 Exportkwaliteit documentstijlen 2 3.1 Kanttekening 2 3.2 Een steek onder water 2

II Mechanismen; veranderingen in Artikel1 2 4 Trivialiteiten 3 4.1 Paginanummers 3 4.2 De samenvatting in ‘Artikel1’ 3 5 Makkelijke veranderingen: witregels 3 5.1 Witregels rond koppen 3 5.1.1 Relevante concepten 3 5.1.2 Implementatie van de veranderingen 4 5.2 Witregels rond lijststructuren 4 5.2.1 Inventaris van relevante concepten 4 5.2.2 Implementatie van de veranderingen 5 5.3 Verdere witregels 5 6 Ook niet moeilijk: fonts 5 6.1 Fonts in sectiekoppen 5 6.2 Theorems en het ‘emphasize’ font 5 7 Moeilijke veranderingen: eenheidsinspringing 5 7.1 Inspring bij lijststructuren 6 7.1.1 Inventaris van relevante concepten 6 7.1.2 Implementatie van de veranderingen 6 7.1.3 Speciale behandeling eerste nivo 6 7.2 Inspring bij koppen 6 7.2.1 Inventaris van relevante concepten 6 7.2.2 Implementatie van de veranderingen 7 8 Verdere moeilijke veranderingen: de opmaak van lange

koppen. Zoals deze dus. Reeds. Antidisestablishmentarianism. Hottentottententententoonstelling. 7

8.1 Inventaris van relevante concepten 7 8.2 Implementatie van de veranderingen 7 9 Opties 8 9.1 Hoe werken opties 8 10 De inhoudsopgave 8 10.1 Beschrijving 8 10.1.1 Inventaris van kwalen 8 10.1.2 Remedie 8 10.2 Implementatie 8

III Veranderingen in Artikel2 9 11 Variaties 9 12 Behandeling van koppen 9 12.1 Sectie, subsectie, subsubsectie 9 12.1.1 Elementaria 9 12.1.2 Complicaties 9 12.2 Part 10 13 De samenvatting 10 14 De inhoudsopgave 10

IV Veranderingen in Artikel3 10

Lijst van tabellen

1 Hoeveelheid vertikaal wit in termen van ‘normalbaselineskip’ 4

Lijst van figuren

1 Parameters in tabel-omgeving 4