Setext: opmaak voor platte tekst
Setext is een zeer eenvoudige manier om een platte tekst beter leesbaar te maken. Het bestaat uit een klein aantal codes die in de tekst zelf kunnen worden opgenomen en die aangeven wat de functie van een bepaald tekstgedeelte is. Het bijzondere van setext is dat het niet zozeer bedoeld is om geconverteerd te worden naar een andere formaat als Word of PDF maar gericht is op de tekst zelf. Tegenwoordig heeft setext voornamelijk nog een historische waarde al wordt het nog wel gebruikt voor zeer eenvoudige elektronische nieuwsbrieven en korte computerhandleidingen. Elementen van setext zijn terug te vinden in meer voorkomende eenvoudige opmaaktalen als mulitmarkdown en textile.
Setext (Structure-enhanced text) is een eenvoudige opmaaktaal die bedoeld is voor de opmaak van platte tekst documenten zoals emails, elektronische nieuwsbrieven en readme files. Setext is in 1992 ingevoerd door Ian Feldman toen hij richtlijnen opstelde voor de opmaak van de TidBits nieuwsbrieven. In tegenstelling tot andere eenvoudige opmaaktalen als multimarkdown en textile is setext bedoeld om de tekst zelf beter leesbaar te maken. Bij de andere opmaaktalen wordt de tekst met behulp van een "parser" naar een ander formaat als RTF, HTML of PDF wordt vertaald. Hoewel er ook parsers bestaan voor setext bestanden, ligt de nadruk hier op de tekst zelf. Er is dus ook geen speciale software nodig om een in setext opgemaakte taal te lezen.
Settelt kent met maar een heel klein aantal codes, of conventies voor opmaak. Een aantal ervan keren terug in meer gebruikte opmaaktalen als markdown, multimarkdown en textile. Ook in emails zijn soms elementen ervan nog te herkennen. Setext als geheel wordt echter, afgezien van de genoemde toepassingen, nauwelijks meer gebruikt. Het heeft vooral een historische waarde.
De volledige syntax
Setext is niet een goed gestandaardiseerde taal. Het wordt ook niet altijd consistent gehanteerd. Omdat setext van oorsprong niet bedoeld is om door een parser gehaald te worden, is het ontbreken van strenge specificaties niet erg. Toch bestaan er parsers voor setext (pandoc is er een van) zodat de volgende beschrijving van de syntax toch zo precies mogelijk zijn gegeven. De specificatie van
Erik Oliver is als richtlijn genomen. Als de onderstaande regels gevolgd worden dan kan in elk geval de parser pandoc ermee overweg. Daarbij is het gebruikelijk om een in setext opgemaakte tekst te "saven" met de extensie
.etx
Elke code in setext heeft een naam die eindigt op -tt. Het woord voor -tt duidt de functie van de code aan. Uiteraard wordt niet de naam als code gebruikt, maar alleen de code zelf.
Title-tt
Een titel regel wordt aangegeven door het te laten volgen met een regel die uitsluitend uit = tekens bestaat. Het is gebruikelijk om evenveel = tekens te gebruiken als er letters in de titel staan, inclusief de spaties. Doordat deze website geen gebruik maakt van een monospaced lettertype, kan in de hier gegeven voorbeelden de lengte van de regels met een = of - teken wat langer lijken dan de tekst zelf.
Hoofdstuk 1
===========
Zowel de titel regel als de onderstrepingsregel moeten beginnen op de eerste positie van een regel. Officieel is het zo een titel maar een keer in de tekst mag voorkomen. Een titel mag wel ontbreken, maar dan mag de subhead-tt (zie hieronder) slechts een keer voorkomen. Wel moeten een van beide, title-tt of subhead-tt, in de tekst staan wil het een geldige setext file zijn. Deze regels worden in de praktijk echter niet altijd gevolgd.
Subhead-tt
Subkopjes worden op dezelfde manier als een titel aangegeven, alleen moet de volgende regel nu bestaan uit alleen maar - tekens. Ook hier is het gebruikelijk om evenveel - tekens te gebruiken als er letters in de titel staan, inclusief de spaties.
Sectie 1
--------
Indent-tt
Elke regel tekst moet in de strikte standaard voorafgegaan worden door twee spaties. Het aantal karakters, inclusief de twee spaties, mag uit niet meer dan 66 karakters bestaan (inclusief alle spaties).
Als de nieuwe regel een nieuwe alinea inluidt, dan moet er een witregel ingelast worden.
Het is er gewoon. Een waarnemer - een mens bijvoorbeeld - die
een plek heeft in dit blok universum, heeft die plek voor
eeuwig en altijd.
In het blok universum kunnen gebeurtenissen aangeduid worden
met de voor ons normale coördinaten van tijd en ruimte.
Uiteraard zijn tijd en ruimte nauw aan elkaar gerelateerd: wat
de ene persoon als een afstand in de ruimte ziet, ziet een
ander als een afstand in de tijd. Maar er stroomt niets.
Op deze manier ontstaan helder van elkaar te onderscheiden tekstblokken.
Een parser als pandoc gaat flexibel met deze eis om. De enige regel die strikt gehanteerd wordt, is de scheiding van alinea's door een witregel.
bold-tt, Italic-tt en Underline-tt
Woorden kunnen in een platte tekst editor niet vet of schuin gedrukt worden. Ook onderstrepen gaat niet. Om deze effecten toch te kunnen emuleren - om ook in een platte tekst iets te benadrukken - moeten de frasen omringd worden door speciale symbolen. Vet gedrukt wordt nagebootst door het te omringen met twee setjes van sterretjes (**dit is vet gedrukt**), schuin schrift door twee tildes (~dit is schuin schrift~) en onderstrepen door twee underscore (_dit_is_onderstreept_).
De tijd zoals wij die ~ervaren~, dus met een werkelijke
_flow_ van het verleden, via het heden, naar de toekomst,
heeft **geen** plaats in de natuurkunde.
Wanneer de te benadrukken frase uit meerder woorden bestaat die onderstreept moeten worden dan is het gebruikelijk om elk woord door het teken te verbinden, als bijvoorbeeld in
_alles_word_onderstreept_
Voor vet en schuin geldt deze regel niet.
Hotword-tt
Een hot word wordt gebruikt om een referentie of een link naar een andere informatiebron aan te geven. Als stand alone element wordt het voor zover mij bekend niet gebruikt. Een hot word onderscheidt zich van de rest door een underscore, maar nu alleen aan het eind van het woord of tussen woorden. De volgende twee voorbeelden verduidelijken dit.
de_website_van_koning_Alexander_
Een hot word mag dus niet beginnen met een underscore maar mag er wel mee eindigen.
Include-tt
Door een alinea vooraf te laten gaan door een groter-dan teken (>) wordt aangegeven dat het om een citaat gaat. Tussen > en de eerste letter van de alinea moet een spatie staan. Elke regel in het citaat moet voorafgegaan worden door een >.
> Volgens de relativiteitstheorie gaat er niets sneller dan het
> licht. Hoewel de snelheid van het licht immens is, is het toch
> een beperking. Het sturen van informatie van de ene plaats
> naar de andere kost tijd. Ook zoiets als causale beïnvloeding
> kost dus tijd.
Bullett-tt
Opsommingen komen in teksten vaak voor. In setext wordt elk element van een opsomming voorafgegaan door een sterretje aan het begin van de regel.
* zich voor deze principiële rol van de overheid uit te spreken
en er op aan te dringen dat de overheid het exclusieve recht
op geldschepping herneemt door het in circulatie brengen van
schuldvrije euro’s;
* de euro’s, gecreëerd door een op te richten publiek instituut,
zoveel mogelijk in omloop te brengen door het te besteden, dan
wel rentevrij uit te lenen.
Het is niet helemaal duidelijk of het sterretje op de eerste positie van een regel moet staan, maar gebruikelijk is het wel. Een opsomming onderscheidt zich van de rest van de tekst door een witregel in te lassen zowel voor als na de opsomming.
Elk item in een opsomming mag uit meerdere regels bestaan. In dat geval is het gebruikelijk de items als normale alinea’s te formatteren, dus door elke regel vooraf te laten gaan door twee spaties.
Quote-tt
Om een tekst letterlijk weer te geven, dus met opmaaktekens erin die nu als een gewoon onderdeel van de tekst gelezen moeten worden, dan kunnen de back-tics (`) gebruikt worden.
Onderlijnen van een tekst in setext doe je zo: `_onderstreepte_tekst_`
De back-tick kan zelf, voor zover mij bekend, niet zelf als een normaal deel van de tekst geschreven worden.
Href-tt
Een link naar een andere informatiebron op het internet heeft twee gedeeltes: de naam van de bron en het adres ervan. De naam van de bron moet als een hot word geschreven staan
^..naam_van_de_website http://infonu.nl
Elk paar woorden dat een informatiebron op het internet beschrijft moet met elkaar verbonden worden door een underscore. Het eerste woord dat niet op die manier verbonden is met de vorige wordt geïnterpreteerd als het internet adres van de bedoelde informatiebron
Een merkwaardige variant op deze syntax is de volgende
^..naam_van_een_website Note:(dit is een fout!)
Hiermee kan, wellicht, expliciet gemaakt worden dat het adres van een informatiebron fout is, maar waarom deze code bestaat is eigenlijk onduidelijk. Erik Oliver speculeert dat goed zou zijn voor het inlassen van een voetnoot. De tekst "dit is een fout!" in het voorbeeld van zo-even zou dan als een voetnoot gelezen worden
Twobuck-tt
Door een tekst te beëindigen met de combinatie
$$
wordt expliciet aangegeven dat het einde van de tekst bereikt is. Alles wat daarna nog volgt, kan genegeerd worden. Sommige parsers gebruiken dit teken als een scheidingsteken, zodat twee verschillende teksten in een bestand gezet kunnen worden.
Suppress-tt
Wanneer een regel begint met een spatie en twee punten en dan weer een spatie, dan geldt het als een commentaar regel. Parsers zullen deze regel negeren.
.. Dit is ingelast commentaar
Twodot-tt
Het einde van een tekst kan ook aangegeven worden met een enkele regel die begin met een spatie en daarna twee punten heeft en verder niks. Alles wat daarna komt kan genegeerd worden. Het heeft dezelfde functie als Twobuck-tt maar moet op een aparte regel staan
..
Lees verder