Auszeichnungssprache
Eine Auszeichnungssprache (englisch markup language, abgekürzt ML) ist eine maschinenlesbare Sprache für die Gliederung und Formatierung von Texten und anderen Daten. Der bekannteste Vertreter ist die Hypertext Markup Language (HTML), die Kernsprache des World Wide Webs.
Mit Auszeichnungssprachen werden Eigenschaften, Zugehörigkeiten und Darstellungsformen von Abschnitten eines Textes (Zeichen, Wörtern, Absätzen usw. – „Elementen“) oder einer Datenmenge beschrieben. Dies geschieht in der Regel, indem sie mit Tags markiert werden.
Der Artikel behandelt besonders die mit der Standard Generalized Markup Language (SGML) empfohlene „Trennung von Struktur und Darstellung“.
Wortherkunft und Geschichte
Der typografische Begriff Auszeichnung kommt aus der Druckersprache. Ursprünglich war damit lediglich die Methode gemeint, Teile eines Textes durch von der Grundschrift abweichende Schriften zu gestalten, z.B. durch andere Schriftgrößen und -arten, aber auch durch Unterstreichen, Sperren oder andere Druckfarben. Für den Schriftsetzer wurden die entsprechenden Stellen früher handschriftlich auf dem zugehörigen Manuskript kenntlich gemacht; auch dies wurde Auszeichnen genannt. Mit der Weiterentwicklung der Typografie für digitale Texte wurden daraus maschinenlesbare Sprachen, und das Konzept wurde auf Fußnoten, Literaturhinweise, Absätze, Überschriften etc. erweitert. Dann wurde der Gedanke der Trennung von Inhalt und Form (ursprünglich ein Schlagwort der Formalen Soziologie) populär, so dass in den Quelltexten für Dokumente Hinweise auf die Formatierung von Textteilen mehr und mehr durch Kennzeichnungen der Art von Information ersetzt wurden, die jeweils mitgeteilt werden sollte. Dies führte 1986 zu SGML als internationalem Auszeichnungsstandard (ISO 8879) und 1998 zur Spezifikation von XML durch das World Wide Web Consortium. XML wurde in den folgenden Jahren auch für andere Zwecke als für die Formatierung von Textdokumenten eingesetzt, etwa für Datenformate („Datenserialisierung“).
Wie ausgezeichneter Text aussieht
Grundzüge
Typische Auszeichnungssprachen kennzeichnen Teile von Texten oder anderen Daten
mit Tags. Die Quelltexte dafür
werden mit einem
computerlesbaren Zeichensatz verfasst, in der Regel
ASCII oder
UTF-8. Oft bietet die Sprache auch die Möglichkeit,
Sonderzeichen zu beschreiben, meist mit
Hilfe einer numerischen Zuweisung (Unicode) oder durch Benennung
(benannte Zeichenentitäten), für µ
zum Beispiel
\mu
in
LaTeX und
µ
in
HTML.
Ergebnis und Code in Beispielen
Beispiel für … | Darstellungs- beispiel |
HTML | LaTeX | MediaWiki-Wikitext |
---|---|---|---|---|
Überschrift | Abschnitt | <h2>Abschnitt</h2>
|
\section{Abschnitt}
|
== Abschnitt == |
Aufzählung |
|
<ul>
<li>Punkt 1</li>
<li>Punkt 2</li>
<li>Punkt 3</li>
</ul>
|
\begin{itemize}
\item Punkt 1
\item Punkt 2
\item Punkt 3
\end{itemize}
|
|
Hyperlink | W3C | <a href="http://www.w3.org/">W3C</a>
|
\href{https://www.w3.org}{W3C}
|
[http://www.w3.org/ W3C]
|
fetten Text | fett | <b>fett</b>
|
\textbf{fett}
|
'''fett'''
|
kursiven Text | kursiv | <i>kursiv</i>
|
\textit{kursiv}
|
''kursiv''
|
Der Hyperlink mit
LaTeX funktioniert nicht allgemein, jedenfalls aber mit dem Zusatzpaket
hyperref
und bei Erzeugung eines Ergebnisses im
PDF-Format.
Beispiele „darstellender“ gegenüber „beschreibender“ Auszeichnung
„Fett“ und „kursiv“ in der vorigen Tabelle bedeuten eine bestimmte Darstellung (Formatierung, hier konkret Wahl eines Schriftschnitts), während „Überschrift“ ein semantisches Merkmal ist und im Allgemeinen keine Darstellung etwa als fett festlegt. In Druckwerken werden Überschriften statt durch Fetten auch durch Kapitälchen oder Kursivstellung formatiert.
Zu HTML und LaTeX gibt die vorige Tabelle daher für „fett“ und „kursiv“ den Code für die
Schriftauszeichnung an;
tatsächlich erzeugt die MediaWiki-Software der
Wikipedia aus dem Wikitext '''fett'''
den HTML-Code
<b>fett</b>
.
Im Gegensatz dazu bietet
HTML die
semantische Auszeichnung durch strong
an, was „Wichtigkeit“ ausdrücken soll,
Beispiel:
HTML | Ergebnis mit Voreinstellungen |
---|---|
<strong>wichtig!</strong>
|
wichtig! |
Das HTML-Element strong
wird also normalerweise
(in Browser-Voreinstellungen)
durch fetten Text dargestellt.
Analog zum Verhältnis des HTML-Elements b
zum HTML-Element strong
ist die Beziehung des
HTML-Elements i
zu em
: Dieses Element steht für
„Betonung“, seine voreingestellte Darstellung ist
Kursivstellung. In LaTeX gibt es ebenfalls eine „semantische Variante“
\emph
der Darstellungsauszeichnung
\textit
:
HTML | LaTeX | Ergebnis mit Voreinstellungen |
---|---|---|
<body>
eine <em>Betonung</em>
in normaler Umgebung
</body>
|
\begin{document}
eine \emph{Betonung}
in normaler Umgebung
\end{document}
|
eine Betonung in normaler Umgebung |
Innerhalb eines kursiv gesetzten Texts aber ist Kursivstellung zur Betonung ungeeignet, LaTeX berücksichtigt das:
HTML | Ergebnis mit Voreinstellungen |
---|---|
<i>eine <em>Betonung</em> in kursiver Umgebung</i>
|
eine Betonung in kursiver Umgebung |
\textit{eine \emph{Betonung} in kursiver Umgebung}
|
eine Betonung in kursiver Umgebung |
LaTeX | Ergebnis |
Wikitext verhält sich hier in gewisser Weise wie LaTeX; in HTML kann das Verhalten von LaTeX durch die
CSS-Deklaration
i em
{ font-style: normal;
}
(ansatzweise) erzielt werden. Nach HTML5-Spezifikation soll Verschachtelung von
em
-Elementen verstärkte Betonung ausdrücken
(was anscheinend noch kaum implementiert ist). LaTeX hingegen schaltet bei Verschachtelung von
\emph
nur zwischen
Kursiv- und Aufrechtstellung hin und her, so dass beim Lesen dreifache Betonung von einfacher Betonung nicht zu unterscheiden ist.
Letztlich sind demnach gebräuchliche und gleichzeitig sinnvolle Implementierungen von „Betonung“ in HTML nur für die einfachsten Fälle und in LaTeX nur für die einfachsten und die zweiteinfachsten Fälle bekannt.
Bei HTML wurde lange angestrebt, darstellende
(der Jargon ist in diesem Falle „präsentationale“) Elemente
abzuschaffen (HTML4-Varianten „strict“
vs. „transitional“).
Mit HTML5 soll dieses Ziel erreicht sein, obwohl b
und i
immer noch vorhanden sind – für Fälle, in denen
Fetten bzw. Kursivstellung „dringend erwünscht“ ist. Eine Aufzählung von Fällen, in denen die konkrete Schriftschnittwahl angebracht ist,
wird als „semantische Definition“ der beiden Elemente betrachtet.
Innere Systematik – Abstraktionsstufen
„Darstellend“ gegenüber „beschreibend“ – Übersicht
1981 unterschied Charles Goldfarb auf einer Konferenz (der „Lausanne-Konferenz“) und in einem einflussreichen Artikel zwischen prozeduraler (englisch procedural markup) und deskriptiver (beschreibender, englisch descriptive markup) Auszeichnung von Dokumenten. 1987 wurde präsentational (englisch presentational markup) im Zusammenhang mit WYSIWYG-Textverarbeitung als weitere Art, Text auszuzeichnen, genannt. Recht bald wurde „präsentational“ jedoch als mit „prozedural“ synonym (oder als Oberbegriff davon, dazu unten #„Prozedural“ und „präsentational“) verwendet – wir nennen das hier darstellend. Letzteres bestimmt die Textformatierung, also etwa die Schriftauszeichnung durch Wahl einer Schriftart, eines Schriftschnitts, des Schriftgrads, einer Schriftfarbe oder einer Unterlegung; auch die Ausrichtung von Text (relative Abstände, absolute Position auf der Seite). Weitere Synonyme wurden später häufiger verwendet:
- zu „darstellend“/„präsentational“
- visuell, physisch, spezifisch;
- zu „deskriptiv“
- strukturell, deklarativ, verallgemeinert („generalized“), generisch, inhaltlich, logisch, konzeptuell (englisch conceptual markup), semantisch.
Der Ausdruck generic coding anstelle von descriptive markup stammt von William W. Tunnicliffe. Furuta verwendete 1992 zur Darstellung von Goldfarbs (und Brian Reids, s.u.) Unterscheidung nicht „prozedural“ und „deskriptiv“, sondern „präsentational“ und „generisch“ (außerdem separation between content specification and format specification und zu „generisch“ logical structure rather than its physical appearance.) In den Spezifikationen (und Entwürfen) zu HTML 4.0 und HTML 4.01 ist das vorherrschende Gegensatzpaar „präsentational“ (auch presentation elements and attributes) versus „strukturell“ (Separate structure and presentation), auch von visual formatting ist die Rede.
Zu Beginn seines Artikels erklärt Goldfarb, das Markup trenne die logischen Elemente voneinander und gebe („typischerweise“ – wohl in Bezug auf das bis dahin bekannte prozedurale Markup) die Verarbeitungsfunktionen („processing functions“) an, die auf diese Elemente angewendet werden sollen.
Popularität beschreibender Auszeichnung (Vorteile, historische Entwicklung)
Goldfarb, William W. Tunnicliffe und Brian Reid empfahlen damals, Dokumente beim Verfassen nur „beschreibend“ auszuzeichnen – z.B. Phrasen und Blöcke nur als „Titel“, „Abschnittsüberschrift“, „Blockzitat“ usw. zu kennzeichnen –, um typografisch hochwertigen Satz auch ohne typografische Fachkenntnisse und Programmierkenntnisse der Verfasser zu ermöglichen, den Darstellungsstil mit geringem Aufwand ändern zu können, nicht auf bestimmte Werksatzanbieter angewiesen zu sein und um automatische Informationsgewinnung zu erleichtern, etwa um beim Durchsuchen von Dokumenten nach Stichwörtern Vorkommnisse in Überschriften stärker zu gewichten. Goldfarb weist etwa darauf hin, dass durch die bloße Kennzeichnung von Wörtern als zu zentrieren die Information verloren geht, ob es sich um eine Überschrift oder die Beschriftung einer Tabelle oder Abbildung handelt. Deskriptive Auszeichnung erleichtert auch die Darstellung in unterschiedlichen Ausgabeformaten/-geräten wie HTML, PDF und Screenreader . Im Falle von HTML kann die Nutzung präsentationaler Attribute anstelle von Stylesheets auch die HTML-Dateien „aufblähen“. Entsprechend wurde später bei HTML darauf hingearbeitet, nur „strukturelle“ oder „semantische“ Elemente und Attribute anzubieten und die Darstellung völlig in die Cascading Style Sheets auszulagern (Trennung von Inhalt und Form).
William W. Tunnicliffe
sprach sich bereits 1967 auf einer Konferenz für die Trennung von Inhalt und Form in der Textverarbeitung aus, was jedoch zunächst
geringe Wirkung hatte (immerhin gibt Goldfarb an, davon beeinflusst worden zu sein). 1981 stellte Brian Reid sein Satzsystem
Scribe in derselben Sitzung der „Lausanne-Konferenz“ vor,
in der Goldfarb seine Ideen vorstellte. Scribes Trennung von Inhalt und Form(atierung) beeindruckte als besonders gut gelungen.
In den nächsten Jahren entwickelte Leslie Lamport
das Makropaket LaTeX für das
TeX-Programm besonders mit der Motivation, ebenfalls Autoren eine
deskriptive Auszeichnungssprache anzubieten. 1985 wurde es veröffentlicht. Bereits 1992 war LaTeX sehr populär, zunächst unter
nordamerikanischen Mathematikern, in den nächsten Jahren überhaupt im wissenschaftlich-akademischen Bereich und in der Industrie.
In den nächsten Jahren übernahm ein fast rein europäisches Entwicklungsteam die Weiterentwicklung von LaTeX von Lamport und verbesserte
seine Flexibilität hinsichtlich Verwendung unterschiedlicher „Stylesheets“ (Makrodefinitionsdateien mit Endungen .sty
für „style“ wie bei Lamport und .cls
für die Deklaration der „Dokumentenklasse“ mit \documentclass
) und
hinsichtlich der Verwendung mit nicht-englischen Sprachen, wodurch die Bedeutung von LaTeX noch gesteigert wurde.
Tunnicliffe und Goldfarb führten dagegen die Weiterentwicklung von IBM Generalized Markup Language zu SGML als Grundlage für die Definition rein deskriptiver Auszeichnungssprachen an, woraus später XML entstand, das im Werksatz ebenfalls eine bedeutende Rolle spielt.
Definition als „Sprache“
Eine Auszeichnungssprache sollte eine Sprache sein, die auch maschinenlesbar ist. Dazu müssen jeweils Syntax und Semantik angegeben werden, was in folgenden Fällen zutrifft:
- Der Quellcode eines Dokuments ist ein Programm mit Anweisungen einer (domänenspezifischen) Programmiersprache; Syntax und Semantik sind also wie bei anderen Programmiersprachen auch definiert und bilden eine formale Sprache, deren Syntax etwa durch Produktionsregeln (etwa in Backus-Naur-Form) gebildet wird. Dies gilt etwa für PostScript, troff und TeX (für dieses auf Token-Ebene nach Expansion von Makros u.a.).
- Bei gemäß SGML bzw. XML definierten Auszeichnungssprachen wird jedenfalls die Syntax präzise durch eine Dokumenttypdefinition dargestellt. Unter Umständen gibt das World Wide Web Consortium auch eine (informelle) Semantik an, die aus an Nutzer und Entwickler gerichteten Empfehlungen besteht.
Etwas schwieriger ist es im Fall von TeX und LaTeX, wo durch Makrodefinitionen (hauptsächlich vor dem Einlesen des Codes, der den Inhalt eines Dokuments darstellt) eine sehr umfangreiche „prozedurale“ Sprache (wir greifen etwas vor) entsteht. Durch die Wahl „sprechender“ Makronamen entsteht jedenfalls eine „Illusion“ von rein „deskriptiver“ Auszeichnung. Durch Verschweigen (im Handbuch) oder Verbieten der durchaus verfügbaren Möglichkeiten „prozeduraler“ oder „präsentationaler“ Auszeichnung kann man zu einer „rein deskriptiven“ Auszeichnungssprache gelangen. Auf ähnliche Weise war HTML 4.01 Strict eine durch „Verbieten“ präsentationaler, von Browsern aber weiterhin interpretierter Elemente und Attribute eine rein deskriptive Auszeichnungssprache.
„Prozedural“ und „präsentational“
In einem bedeutenden Aufsatz von 1987 wurden neben „prozedural“ und „deskriptiv“ weitere Auszeichnungsarten beschrieben, von denen der XML-Koautor Tim Bray in seinem Blog „präsentational“ übernahm. Gemeint war mit letzterem solches Markup, das von WYSIWYG-Textverarbeitungsprogrammen automatisch in den Dokument-Quellcode eingefügt wurde, wenn Nutzer bestimmte Tastenkombinationen eingaben (genannt wird WordStar). Statt des Quellcodes bekommt der Nutzer aber nur eine Vorschau der Druckausgabe zu sehen. „Präsentational“ hat hierbei offenbar eine andere, speziellere Bedeutung als in den HTML-Spezifikationen, in denen keine Rede von WYSIWYG-Editoren ist. Eine Gemeinsamkeit besteht aber darin, dass der Auszeichnungscode knapper ist als der für „auffällig prozedurales Markup“ in folgendem Sinne:
In dem von Goldfarb angegebenen Beispiel geht einer Liste, wie sie etwa in HTML mit
<ol>
eingeleitet wird, folgender Code voraus:
tb 4
of 4
sk 1
Die ersten beiden Zeilen stellen dabei
Wertzuweisungen für Parameter dar,
die den hängenden Einzug
des folgenden Absatzes steuern, die dritte Zeile erzeugt dessen vertikalen Abstand zum vorhergehenden Absatz. Die dabei
verwendete Auszeichnungssprache ist das (troff-ähnliche)
SCRIPT. Es handelt sich offenbar um einen Teil eines
Computerprogramms in einer
imperativen Programmiersprache.
<ol>
in HTML ist kürzer und verzichtet auf Details der Formatierung. Das Beispiel ist allerdings nur
dazu geeignet, Goldfarbs Vorstellung von „prozeduraler Auszeichnung“ anzudeuten, und illustriert nur den Unterschied
zur „deskriptiven Auszeichnung“.
Bray illustriert „prozedurales Markup“ mit den PostScript-Befehlen
gsave
und
grestore
.
Diese beiden Befehle verhalten sich zueinander wie
\begingroup
und
\endgroup
in
TeX.
Die Anweisung \begingroup
bewirkt, dass bei jeder folgenden Parameterwertänderung der vorige Parameterwert in einem
Stapelspeicher abgelegt wird. Der entsprechende Befehl
\endgroup
stellt die
Parameterwerte vor dem entsprechenden
\begingroup
wieder her.
Beide Befehle haben keine unmittelbare Auswirkung auf die Formatierung, die Wirkung hängt vielmehr davon ab, die Werte welcher
Parameter zwischen ihnen geändert werden.
In PostScript gibt es außerdem den Befehl
selectfont
,
der an den LaTeX-Befehl \selectfont
erinnert:
%!
/Courier
20 selectfont
72 500 moveto
(Hallo Welt!) show
showpage
Insgesamt legen die vorigen Beobachtungen folgendes Beispiel nahe:
Darstellung | HTML | LaTeX high-level | LaTeX mit \begingroup
|
LaTeX mit { statt \begingroup
|
---|---|---|---|---|
kursiv gesetzt |
<body>
<i>kursiv</i>
gesetzt
</body>
|
\begin{document}
\textit{kursiv}
gesetzt
\end{document}
|
\begin{document}
\begingroup
\fontshape{it}\selectfont
kursiv\/\endgroup\
gesetzt
\end{document}
|
\begin{document}
{\fontshape{it}\selectfont
kursiv\/} gesetzt
\end{document}
|
Die beiden low-level-Beispiele rechts kommen dem sehr nahe, wie LaTeX den high-level-Befehl
\textit
tatsächlich umsetzt.
\endgroup gesetzt
würde
in „kursivgesetzt“ resultieren, daher wird
\endgroup\
verwendet.
Die Notwendigkeit dieses Tricks vermeidet man im rechten Beispiel, wo die geschweiften Klammern die Befehle
\begingroup
und
\endgroup
vertreten,
während sie nach \textit
nur dessen Anwendungsbereich angeben. Der Befehl
\/
verhindert,
dass durch die Rechtsneigung des „v“ der Abstand zwischen „kursiv“ und „gesetzt“ optisch zu eng ausfällt (sogenannte Kursivkorrektur).
In allen vier Beispielen liegt eine darstellende Auszeichnung vor, die den Schriftschnitt variiert. Einer der Nachteile
prozeduraler Auszeichnung, die Goldfarb nennt, soll darin bestehen, dass sie die Beherrschung einer Vielzahl von Programmierbefehlen
erfordert, als Beispiel nennt er ausdrücklich Knuths TeX.
Die Kursivkorrektur ist auch eine typografische Feinheit, deren Notwendigkeit bei der Nutzung von TeX für Autoren nicht selbstverständlich
ist. Der LaTeX-Befehl
\textit
erspart dem
Anwender die Kenntnis einiger low-level-Befehle und der Kursivkorrektur. Das i
-Element in HTML ist ebenso einfach zu beherrschen.
Goldfarbs hier angesprochener Kritikpunkt richtet sich (im Unterschied zu anderen) offenbar nicht gegen jede darstellende
Auszeichnung, sondern nur gegen programmiersprachenartige Auszeichnung wie in den beiden Beispielen rechts und gegen PostScript-Befehle
weiter oben.
Im Falle des HTML-Beispiels erscheint die Bezeichnung der Auszeichnung durch
<i>
und
</i>
als „prozedural“ auch unpassend. Während in den „umständlichen“ Beispielen einzelne Befehle an den Textprozessor gerichtet werden
(Goldfarb: „processing functions“), die erst durch ihre Kombination die gewünschte Darstellung erreichen, stellt das
i
-Element nur eine abstrakte Schnittstelle zum
Webbrowser dar,
dessen prozedurale Verarbeitung des linken Beispiels für Verfasser von HTML-Dokumenten gar nicht zugänglich ist. Der Unterschied
ähnelt dem zwischen imperativer Programmierung
(„echt prozedural“ in den rechten Beispielen) und
deklarativer Programmierung,
in der die Algorithmen zum Erreichen eines beschriebenen Zustands (hier: Kursivschrift) nicht explizit genannt werden.
„Prozedurale“ und „deskriptive“ Auszeichnungssprachen
In der Literatur wird auch von „deskriptiven Auszeichnungssprachen“ (englisch descriptive markup languages) im Gegensatz zu „prozeduralen Auszeichnungssprachen“ (englisch procedural markup languages) gesprochen; wann eine Aussprache „prozedural“ bzw. „deskriptiv“ ist, soll vielleicht im Anschluss an Erläuterungen von „prozeduraler Auszeichnung“ bzw. „deskriptiver Auszeichnung“ selbstverständlich sein. Eine „deskriptive Auszeichnungssprache“ dürfte eine Auszeichnungssprache sein, die weder „prozedurales“ noch „präsentationales“ Markup ermöglicht, also „rein deskriptiv“ ist – wie es die Intention/„Philosophie“ von SGML war. Dies trifft auf DocBook und TEI zu. Das Prädikat „prozedurale Auszeichnungssprache“ scheint auf Auszeichnungssprachen zuzutreffen, in denen Wertzuweisungen und andere Ähnlichkeiten mit imperativen Programmiersprachen „unübersehbar“ sind, vielleicht auch auf Auszeichnungssprachen, die Formatierungsanweisungen in eher deklarativer Weise geben, wie HTML (vor HTML5). Jedenfalls könnten PostScript, TeX und troff dazu gezählt werden.
Die vorige Deutung steht allerdings im Widerspruch dazu, dass LaTeX laut Furuta (und dem 1994er LaTeX-Begleiter „in hohem Maße“)
eine „generische Markup-Sprache“ sein soll, trotz des darstellenden
\textit
(mit dem im LaTeX-Begleiter beschriebenen LaTeX 2e) bzw.
\it
(mit dem 1992 gültigen LaTeX 2.09). Vielleicht ist eine generische (oder deskriptive) Markup-Sprache doch eine Sprache,
die neben präsentationalem Markup auch ein „gewisses Maß“ an generischem Markup bietet.
Darstellungsstufen
Auf eine Arbeit von 1988 unter seiner Beteiligung Bezug nehmend, spricht Furuta von drei „Erscheinungsformen“ (representations) eines Dokuments:
- einer abstrakten, die durch Bearbeitung mit einem Editor verändert wird (abstract representation),
- einer physischen, die aus einer abstrakten durch Formatierung entsteht (physical representation), und
- einer Seitenerscheinungsform, die für ein bestimmtes Ausgabegerät erforderlich ist (page representation).
Entsprechend ist Furutas Artikel gegliedert.
Durch „darstellendes Markup“ kann man wie oben dargelegt (beginnend mit
Beispiele) Schriftschnitt, Farben, und Textausrichtung bestimmen, ein entsprechender Abschnitt in den
Spezifikationen zu HTML 4.0 und 4.01 beschreibt diesen „physischen“ Aspekt einigermaßen umfassend. In HTML5 ist mit dem
style
-Attribut eine Möglichkeit verblieben, z.B. Schriftschnitte (durch CSS-Code) zu wählen, auch Tabellen
bewirken eine „physisch“ einigermaßen strikte Darstellung, die der seitenorientierten Darstellung näher kommt als die
Wahl von Schriftschnitten. Auszeichnung dieser Art entspricht dem ursprünglichen, engeren Begriff
(Textformatierung bzw.
traditionelles Auszeichnen wie am Anfang des Artikels beschrieben).
Was bei solcher Auszeichnung im Allgemeinen nicht bestimmt wird, ist in einem
Fließtextabsatz der
Zeilenumbruch. Bei einem Wort ab der
Mitte eines längeren Absatzes lässt man sich davon „überraschen“, ob es im dargestellten Absatz auf dem
Bildschirm oder auf der
ausgedruckten Seite eher links
oder eher rechts steht oder ob es beim Zeilenumbruch
getrennt wird.
So ist es auch bei der üblichen Verwendung von LaTeX,
ConTeXt und
plain TeX. Bei Bedarf kann man
(mit etwas fortgeschrittenen Kenntnissen) die Zeilen eines Absatzes manuell fixieren (bei Webseiten mit
white-space:
nowrap
und
<br
/>
, bei LaTeX mit
\makebox
und \linebreak
).
Häufiger ist man in einzelnen Fällen mit dem automatischen Zeilenumbruch nicht zufrieden und legt einen Zeilenwechsel manuell fest,
oder man unterbindet einen Zeilenumbruch innerhalb einer Phrase. Neben dem Zeilenumbruch werden auch die Zeilenabstände
typischerweise automatisch bestimmt (sie sollten gleichmäßig sein, etwa bei mathematischen Formeln mit Brüchen müssen sie
aber oft größer gewählt werden). TeX trat auch mit der Besonderheit hervor, die Zeichen in mathematischen Formeln in
verschiedenen Größen zu setzen und relativ zueinander zu so anzuordnen, dass die Proportionen hohen typografischen Ansprüchen genügen.
Gegenüber Webseiten muss im Drucksatz zusätzlich der Seitenumbruch bestimmt werden. Auch den überlässt man meist dem Satzprogramm und korrigiert das automatische Ergebnis gelegentlich manuell. Bei der Gestaltung der Titelseite eines Buchs überlässt man dagegen „nichts dem Zufall“.
Dateiformate, die alle Zeilenumbrüche in Fließtexten einer Ausgabeseite und auch die exakte Position von Textelementen und Grafiken auf ihr fixieren und festlegen, heißen (oder entsprechen) Seitenbeschreibungssprachen. Solche sind etwa PostScript und PDF von Adobe, das ursprüngliche Ausgabeformat DVI von TeX oder XML Paper Specification von Microsoft. PDF und DVI kann man allerdings nicht in einem Texteditor betrachten und ändern oder verfassen. In Postscript ist dies möglich, man kann im Prinzip ein Buch in PostScript verfassen und bestimmt dabei ähnlich wie mit der Schreibmaschine die exakten Positionen aller Zeichen auf den einzelnen Seiten. In der Praxis werden PostScript-Dateien eher etwa aus mit LaTeX ausgezeichneten Quelltextdateien erzeugt, indem man die von TeX erzeugte DVI-Datei mit einem weiteren Programm (dvips) in PostScript umwandelt.
Im Allgemeinen versieht also der Verfasser den Text nur mit deskriptivem oder auch „physischem“ Markup (in einem Editor), ohne Zeilen-/Seitenumbrüche festzulegen, diese (und weitere Anordnungsweisen) werden vielmehr automatisch erzeugt und unter Umständen in einer Seitenbeschreibungsdatei abgelegt. Seitenbeschreibungsdateien kann man mit einem Viewer wie Ghostview (Postscript), Adobe Reader (PDF) oder YAP (für DVI unter Windows) bzw. xdvi als Vorschau am Bildschirm betrachten und ausdrucken lassen. Sie sind auch für den elektronischen Austausch von Dokumenten bzw. ihre Verbreitung (Online-Publikation) gegenüber den Quellformaten vorteilhaft, da sie dem Empfänger das Neuerzeugen der Ansichtsversion des Dokuments (was sogar scheitern kann) ersparen („Austauschformate“).
Die „Seitenerscheinungsform“ oder „Seitendarstellung“ eines Dokuments muss jedoch nicht als eigene Seitenbeschreibungsdatei vorliegen. Bei manchen „Editoren“ kann/konnte man sie „direkt“ am Bildschirm betrachten oder ausdrucken. troff wurde zu ditroff erweitert, das eine eigene Seitenbeschreibungsdatei erzeugen kann, andere Textverarbeitungsprogramme wurden mit der Möglichkeit ausgestattet, PDF zu erzeugen.
Bei Webbrowsern (genauer: HTML-Renderern) und E-Book-Readern (die etwa HTML oder EPUB darstellen) wird die Seitendarstellung (der Umbruch von Fließtextabsätzen) schnell an sich ändernde Fensterbreiten oder Schriftgrößen angepasst.
Implementierung der Stilvariation bei generischer Auszeichnung
Implementierung einer Darstellungsweise
Für die Formatierung generisch ausgezeichneten Texts werden allgemeine Regeln zur Behandlung der einzelnen Tags (eventuell abhängig von „Attributen“ bei SGML-artigen Auszeichnungssprachen) in einer formalen Sprache (in einer Art Programm) festgelegt. Entsprechende „Regeldateien“ werden im SGML-Umfeld „Stylesheets“ genannt (bei LaTeX nicht). Zum Teil oder in einem ersten Schritt besteht die Formatierung darin, die generische Sprache in eine präsentationale zu „übersetzen“.
Im Falle von HTML wird die Formatierung einzelner Elemente durch entsprechende Anweisungen
in CSS-Code bestimmt.
Beispielsweise besagt die CSS-Zeile body
{ color: blue;
background-color: yellow;
}
, dass eine HTML-Datei mit blauem Text auf gelbem Grund dargestellt werden soll,
und mit
em { color: red; }
soll der Text in em
-Elementen rot sein. In folgendem Beispieldokument
<head>
<title>Hallo Welt!</title>
<style type="text/css">
body { color: blue; background-color: yellow; }
em { color: red; }
</style>
</head>
<body>
<em>Hallo,</em> Welt!
<em>Hörst</em> du?
</body>
erscheint dieser CSS-Code in einem style
-Element innerhalb des head
-Elements. Das Ergebnis sollte in etwa
sein und das gleiche wie mit
<head>
<title>Hallo Welt!</title>
</head>
<body style="color: blue; background-color: yellow; ">
<em style="color: red; ">Hallo,</em> Welt!
<em style="color: red; ">Hörst</em> du?
</body>
In der zweiten Datei wurde
<body>
durch <body style="color: blue; background-color: yellow;">
ersetzt, und jedes em
-Tag – generisches Markup – der ersten Datei wurde durch das präsentationale
<em style="color: red; ">
ersetzt. Die CSS-Anweisung tag { stil }
wirkt also wie das Einfügen von
style=stil
in alle tag
-Anfangstags.
Was HTML-Renderer tatsächlich tun, um CSS und HTML zusammenzuführen, kann hier nicht dargestellt werden. Immerhin handelt es sich bei den Beispieldateien sogar um XHTML, also Code einer XML-Sprache, und die „Übersetzung“ stellt eine Transformation dar, die (wiederum leicht missbräuchlich) durch XSL Transformation (XSLT) dargestellt werden könnte. XSL steht für Extensible Stylesheet Language. Im Falle von XML besteht die „puristische“ Anwendung von XSL und XSLT darin, generische XML-Sprachen gemäß XSL-Stylesheets in die präsentationale Sprache XSL-FO („XSL Formatting Objects“) zu übersetzen. In einfachen Fällen bedeutet das, wie oben, Ersetzen generischer durch präsentationale Tags. XSL-FO ist selbst noch keine Seitenbeschreibungssprache und muss zum Ausdrucken erst etwa in eine PDF-Datei umgewandelt werden.
Eine XSL-Transformation erzeugt aus generischem Quellcode eines Dokuments tatsächlich eine Datei in einem anderen Textformat.
Im Falle von LaTeX aber ist es ähnlich wie bei HTML-Renderern: generische Befehle werden in präsentationale bzw. (schließlich)
prozedurale übersetzt, allerdings intern, auf
Tokenebene.
\emph{Hallo}
wird zu einer Tokenkette emph
{
1H
11a
11l
11l
11o
11,
12}
2,
dann werden die beiden ersten Token und das letzte nach und nach durch einige andere ersetzt, wenn einige Prüfungen überstanden
sind und die Neigung der umgebenden Schrift nicht positiv ist, resultiert eine ähnliche Tokenkette wie
begingroup
itshape
H
11a
11l
11l
11o
11,
12/
endgroup
,
wobei sich unter Standardeinstellungen itshape
wie fontshape>
{
i
11t
11}
2selectfont
verhält. Das Resultat wäre dasselbe wie das der „prozeduralen Version“ von
\textit
im Abschnitt
#„Prozedural“ und „präsentational“. Im Gegensatz zum
Document Object Model, bei dem das
Dokument erst übersetzt wird, nachdem es komplett im Speicher repräsentiert ist, verarbeitet die TeX-Engine
Datenströme wie den Quellcode, die Tokenketten und weitere
interne Listen in möglichst kurzen Abschnitten und entledigt sich nach Ausgabe einer Druckseite weitgehend der dafür
benötigten Speicherinhalte (so konnten schon vor Jahrzehnten dicke Bände gesetzt werden).
Im Falle von LaTeX (wie von TeX überhaupt und auch von ConTeXt) wird das Suchen und Ersetzen, das die Formatierung implementiert, durch einen internen Makroprozessor bewerkstelligt. Auch die 1981 von Charles Goldfarb vorgestellte die generische Auszeichnungssprache IBM Generalized Markup Language übersetzte Makros in die prozedurale, troff-ähnliche Sprache SCRIPT.
An den Beispielen sollten auch zwei Vorteile der generischen Auszeichnung gegenüber der prozeduralen erkennbar sein: Generisch ausgezeichneter Quellcode beansprucht weniger Speicherplatz als präsentational ausgezeichneter (sobald die Zahl der entsprechenden Textelemente eine von der Komplexität der Ersetzungsregel abhängige Zahl übersteigt – was im Beispiel noch nicht der Fall ist), und in einem Texteditor ist bei generischer Auszeichnung der darzustellende eigentliche Text leichter wiederzufinden als bei prozeduraler Auszeichnung, er ist intuitiver zu lesen.
Dieser Speicherplatzeffekt wird noch verstärkt, wenn die Stildefinitionen (anders als im vorigen Beispiel)
nicht im „Kopf“ der Textquelldatei – dem head
-Element einer HTML-Datei oder oberhalb
\begin{document}
in einer LaTeX-Quelldatei (dort „Dokumentenpräambel“ genannt) – stehen, sondern in separaten Stildateien, die von den
Textquelldateien eingebunden werden (Transklusion).
Auf Websites, die eine Vielzahl separater Dokumente beherbergen,
welche einheitlich gestaltet werden, sind das CSS-Dateien mit der Endung .css
. Im Falle von LaTeX trugen die Stildateien ursprünglich die
Endung .sty
für style. Heute bestimmen auch Dateien mit der Endung .cls
, die von
\documentclass
eingelesen werden,
die Darstellungsweise:
HTML | LaTeX |
---|---|
<head>
<title>Hallo Welt!</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<em>Hallo,</em> Welt!
<em>Hörst</em> du?
</body>
|
\documentclass{abc-art}
\begin{document}
\emph{Hallo,} Welt!
\emph{H\"orst} du?
\end{document}
|
Die beiden CSS-Zeilen von vorher könnten sich nun in der Datei style.css
befinden, die wie folgt aussähe:
body { color: blue; background-color: yellow; }
em { color: red; }
Darstellungsänderung
Im vorigen Beispielpaar kann man nun die Darstellung des ausgezeichneten Textquellcodes ändern, indem man jeweils den „Kopf“ ändert:
HTML | LaTeX |
---|---|
<head>
<title>Hallo Welt!</title>
<style type="text/css">
em { text-decoration: underline;
font-style: normal; }
</style>
</head>
<body>
<em>Hallo,</em> Welt!
<em>Hörst</em> du?
</body>
|
\documentclass{article}
\usepackage{ulem}
\begin{document}
\emph{Hallo,} Welt!
\emph{H\"orst} du?
\end{document}
|
Im Falle von LaTeX wurde hier der Formatierungsstil des fiktiven The ABC-Journal durch eine LaTeX-Standardklasse ersetzt
und Transklusion der Datei ulem.sty eingefügt. Diese definiert das aus
\emph
resultierende
Token emph
so um (setzt eine andere Makro-Ersetzungsregel in Kraft), dass die Betonung durch Understreichen statt
Kursivstellung dargestellt wird. Der veränderte CSS-Code für das em
-Element wirkt ebenso. Von der Schriftart abgesehen,
sollte das Ergebnis mit HTML wie LaTeX so aussehen:
Alternativ könnte der CSS-Code in style.css
geändert werden. Für Fachzeitschriftsnummern können die von
\begin{document}
und \end{document}
eingerahmten Teile der von den einzelnen Autoren eingesandten Quelltexte mit der Dokumentenpräambel des Journals zusammengefügt werden,
so dass sie alle nach „Art des Hauses“ – gleichartig – formatiert werden.
Bei XML-Dokumenten kann die Darstellung geändert werden, indem man eine andere XSL-Transformation verwendet.
Der generisch ausgezeichnete Text des Dokuments muss zur Änderung der Darstellung also überhaupt nicht geändert werden.
Darauf wies das
World Wide Web Consortium
in der Spezifikation von HTML5 als zweiten Nachteil präsentationaler Auszeichnung hin, und Goldfarb sprach von „Inflexibilität“ in
Bezug auf Änderungen der Darstellungsweise als zweitem Nachteil prozeduraler Auszeichnung. – In der Praxis findet aber etwa
LaTeX nicht immer die besten Zeilen- oder Seitenumbrüche, so dass die Bearbeiter einer Fachzeitschriftsnummer gelegentlich ein
präsentationales \pagebreak
o.ä.
einfügen müssen.
(Statt \"o
kann man mit LaTeX ö
verwenden, wenn die Dokumentpräambel etwa
\usepackage[utf8]{inputenc}
enthält. Die so eingelesene Datei inputenc.sty
ist ein Beispiel dafür, dass die Endung
.sty
leider nicht mehr ausschließlich für „Stil“ steht, solche Pakete bieten vielmehr oft Möglichkeiten,
die Arbeit zu erleichtern, meist durch Erweiterung des Befehlssatzes.)
Fazit: Worin besteht die „Trennung von Inhalt und Darstellung“?
Im Falle von LaTeX und HTML enthält der Quellcode des Dokuments zwar Angaben zur Formatierung, bei rein
deskriptiver/generischer Auszeichnung befinden sich die Angaben zur Formatierung jedoch ausschließlich in einem „Kopfteil“ der
Quelldatei – im head
-Element bzw. in der „Dokumentpräambel“. Der darzustellende Text mit generischem Markup
befindet sich in einem anderen Teil des Quelldokuments – body
-Element bzw.
{document}
-Umgebung.
Die Trennung von Struktur und Präsentation o.ä. besteht dann darin, dass Quelldokumente zwei Bestandteile haben, von denen einer
ausschließlich Formatierungsregeln angibt und der andere ausschließlich den Dokumenttext mit generischer Auszeichnung enthält.
Die Formatierungsregeln müssen sich nicht direkt im Kopfteil befinden, der Kopfteil bindet zumeist den größten Teil der Formatierungsregeln aus anderen Dateien ein (Transklusion). Im Falle von LaTeX muss die Datei mit den Angaben zur Formatierung (die „Steuerdatei“) nicht den gesamten darzustellenden Text enthalten, dieser wird oft auch – gerade im Fall von Büchern – ebenfalls aus anderen (generisch ausgezeichneten) Dateien eingebunden.
In anderen Fällen enthält das Quelldokument überhaupt keine Angaben zur Formatierung (bindet keine Dateien mit Formatierungsregeln ein, z.B. XML/XSL). Die „Trennung von Inhalt und Form“ – bzw. zur Abgrenzung von der Formalen Soziologie: von „Inhalt“ und „Formatierung“ – ist dann – noch deutlicher als schon im vorigen Fall – dadurch verwirklicht, dass der mit logischer Auszeichnung versehene Inhalt sich in anderen Dateien befindet als die Formatierungsregeln. Für die Wahl eines Darstellungsstils ist dann keine Änderung der Dateien erforderlich, die den darzustellenden Text („Inhalt“) enthalten.
Automatische Codeerzeugung und ursprünglicher Quellcode
Es wurde bereits angesprochen, dass „ausgezeichneter Text“, der der Darstellung eines Dokuments auf Ausgabegeräten
(Drucker, Bildschirm) zugrunde liegt, automatisch aus einer anderen Form von „ausgezeichnetem Text“ erzeugt werden kann.
Soweit die fixe seitenorientierte Darstellungsform noch als in einer Auszeichnungssprache kodiert angesehen kann
(ist PostScript eine Auszeichnungssprache?, PDF?), wird sie praktisch immer durch ein Satzprogramm automatisch aus
einer rein physischen (ohne semantisch-strukturelle Information), rein generischen (ohne Hinweise auf die Darstellungsweise,
wie in HTML5 ohne das style
-Attribut) oder physische und semantisch-strukturelle Angaben mischenden Auszeichnungssprache
(wie bei „nicht-puristischer“ Verwendung von LaTeX) erzeugt. Sie kann direkt aus einer rein physisch ausgezeichneten Erscheinungsform
des Dokuments erzeugt werden (PDF aus XSL-FO), und eine rein physische, nicht seiten-orientierte Form kann aus einer rein
strukturellen Erscheinungsform (XHTML) automatisch erzeugt worden sein (etwa durch XSL-Transformation).
Wenn das Werk publiziert oder an einen Adressaten verschickt worden ist, oder wenn der für ein Archiv gewünschte Ausdruck vorliegt, geraten die zugrunde liegenden Dateien bestimmter Auszeichnungsformate oft in Vergessenheit, von manchen Anwendern werden sie auch gelöscht. Wenn das Dokument aber noch (teilweise) wiederverwendet werden soll, z.B. für eine neue, überarbeitete Buchausgabe, oder wenn ein vor Jahren gedruckter Artikel auch als HTML online publiziert werden soll, ist es gut, wenn die ursprüngliche (teils) semantisch-strukturelle Auszeichnung – der ursprüngliche Quellcode – immer noch verfügbar ist und nicht aus einem rein darstellenden Format „rekonstruiert“ werden muss (z.B. nicht nummerierte Abschnittsüberschriften und Unterabschnittsüberschriften).
Den automatisch erzeugten Code schauen sich Verfasser (oder Typisten) meist nicht an. Bei Verwendung von WYSIWYG-Editoren beachtet man typischerweise nicht einmal den ursprünglichen Quellcode. Ebenso ist es etwa bei LyX, einem Frontend für LaTeX, mit dem man semantisch-strukturell auszeichnen und die erzeugte Struktur auch am Bildschirm erkennen kann, ohne den Quellcode zu sehen.
(In Anbetracht unterschiedlicher Codierungsweisen von Textzeichen – Unicode oder … könnte man auch sagen, dass der ursprüngliche Quellcode in einem Hexdump besteht, den man sich nicht ansieht, der Texteditor präsentiert eine „anwenderfreundliche Version“ davon, die hinsichtlich der am Ausgabegerät zu lesenden Zeichen WYSIWYG-artig ist.)
HTML war einmal Format, in dem der „ursprüngliche Quellcode“ von Dokumenten notiert wurde. Inzwischen ist es auch ein
Zielformat, es wird etwa (aus Datenbanken, die in XML notiert sein können) durch Skriptsprachen wie
JavaScript und
PHP – oder aus anderen Quellformaten mit
Pandoc erzeugt. Um einen Text wie einen Wikipedia-Artikel
auszuzeichnen, sind das jedoch keine Alternativen: der reine Text (wie er aus Browserfenster durch
Copy and Paste extrahiert
werden kann) muss getippt und markiert werden. Die < und > sind umständlich zu tippen und werden durch XML-Anforderungen
noch vermehrt. Zum Teil müssen Attributnamen getippt werden, was das Verhältnis von in der Ausgabe anzuzeigenden Zeichen
zu fürs Markup verwendeten Zeichen verschlechtert. LaTeX ist teilweise einfacher zu tippen und leichter zu lesen, da es
(im Fließtext) hauptsächlich Positionsparameter anstelle von
Key-Value-Angaben verwendet. Zudem können LaTeX-Anwender für in einem
Dokument häufig auftretende Zeichenkombinationen (wie Tags – welche häufig auftreten, ist von Dokument zu Dokument verschieden)
Abkürzungsbefehle einführen (in der Dokumentenpräambel oder
in .sty
-Dateien – dank eingebautem Makroprozessor). – Zur Vereinfachung der Erzeugung von (X)HTML-Dokumenten
sind daher noch folgende Möglichkeiten ersonnen worden:
- HTML-Editoren mit Autovervollständigung;
- TeX4ht wandelt die DVI-Ausgabe von TeX in HTML oder auch XML um;
- die Website Meta Language – Werkzeuge für Programmierer, dabei wird Makroprozessor m4 genutzt
- Content-Management-Systeme für Nichtprogrammierer, das ist allgemeiner insofern, als hierbei auch andere Zielformate als (X)HTML anvisiert werden, und schließt die bereits mehrfach genannten WYSIWYG-Editoren ein;
- vereinfachte Auszeichnungssprachen – diese werden nachfolgend genauer beschrieben. Sie stellen in Wikis das „ursprüngliche Quellformat“ dar, aus dem hauptsächlich XHTML erzeugt wird – daraus kann dann auch in guter Qualität gedruckt werden (PDF), etwa via XSL.
Historische Entwicklung
Vereinfachte Auszeichnungssprachen wurden schon immer in rein textbasierten Systemen (z.B. Readme oder E-Mails) zur Darstellung von Hervorhebungen wie Kursiv oder Fett verwendet, ohne dass diese weiter umgewandelt wurden. Besonders ist die Syntax von Markdown – das mit umgewandelt wird – eng an diese historische Praxis angelehnt.
Die meisten Auszeichnungssprachen haben sich in der Anwendung unterschiedlicher Software gebildet, es gibt kaum standardisierte oder einheitliche Lösungen, obwohl die Funktionen oft ähnlich sind.
- Um in Wikis an Hypertexten zusammenzuarbeiten, gibt es unterschiedlichen Wikitext, aber auch den Versuch einer Standardisierung mit Creole.
- In Foren hat sich der BBCode etabliert.
- Für den Emacs gibt es Org-mode.
- Zur Einbettung strukturierter Dokumentation in Computerprogramme (Plain Old Documentation (POD) für Perl oder Javadoc für Java).
- Markdown, Textile, AsciiDoc und reStructuredText konzentrieren sich auf jeweils andere Vorgehensweisen.
Die wohl erste vereinfachte Auszeichnungssprache mit Umwandlung wurde 1994 von Ward Cunninghams entwickelt und 1995 als WikiWikiWeb zusammen mit dem Portland Pattern Repository veröffentlicht
Daten
YAML und seine Untermenge JavaScript Object Notation (JSON) sind vereinfachte Auszeichnungssprachen für die Datenserialisierung.
Äußere Systematik: Einordnung als Programmiersprache oder Datenformat
Auszeichnungssprache | Dateiendung | MIME-Typ |
---|---|---|
HTML | .htm , .html |
text/html
|
PostScript | .ps |
application/postscript
|
Rich Text Format | .rtf |
text/rtf
|
TeX/LaTeX | .tex |
text/x-tex
|
XML | .xml |
text/xml
|
Zur Frage, ob eine Auszeichnungssprache eine
Programmiersprache ist oder nicht,
oder ob eine bestimmte Auszeichnungssprache wie HTML eine Programmiersprache (eine HTML-Datei ein „Programm“) ist oder
nicht, finden sich gegensätzliche Äußerungen.
Zu XML erklärte das W3C 2001,
es sei keine Programmiersprache, sondern biete Regeln zum Festlegen von
Textformaten zur Strukturierung von Daten,
also zum Festlegen von Datenformaten
(damit steht es nicht allein). Tatsächlich ergab die Entwicklung von
SGML zu
XML die Möglichkeit,
Auszeichnungssprachen zu völlig anderen Zwecken als dem ursprünglichen – der Formatierung von Texten – zu nutzen.
Beispielsweise wird die Konfiguration des Linux-Fenstermanagers
Openbox in einer XML-Datei abgelegt; statt Zeilen der Gestalt
key=value
wie in den Konfigurationsdateien anderer Programme findet man hier
<key>value</key>
,
und übergeordnete Elemente wie mouse
werden zur Gliederung der ungefähr 900 Zeilen umfassenden Datei verwendet.
Es ist ganz und gar nicht beabsichtigt, diese Konfigurationsdatei als „Dokument“ zu „setzen“.
Als Datenformat ist die in einer (Dokument-)Datei
verwendete Auszeichnungssprache an den
Dateinamenserweiterungen
erkennbar (siehe Tabelle). Diejenigen Auszeichnungssprachen, die noch zum Erstellen von Dokumenten gedacht sind
(HTML, PostScript, troff, LaTeX, RTF), bilden
Dokumentenformate.
Binäre Dokumentenformate (.doc
,
.pdf
, das Ausgabeformat
DVI von TeX)
sind keine Auszeichnungssprachen.
Von den Musterbeispielen prozeduraler Auszeichnungssprachen – PostScript, TeX und dem Nachkömmling troff des urzeitlichen RUNOFF (auf das auch Goldfarbs GML aufsetzte) ist bekannt, dass sie Turing-vollständig sind. Insofern können diese beliebig komplexe Algorithmen darstellen und erfüllen so ein wesentliches, allgemein anerkanntes Merkmal von Programmiersprachen. XSLT bildet eine weitere Turing-vollständige Programmiersprache, deren „Befehle“ jedoch wie bei den vorgenannten „Sprachen“ für die Darstellung mit XML „deskriptiv“ ausgezeichneter Dokumente ausgelegt sind und die kurioserweise selbst in einem „XML-Datenformat“ notiert ist. Ebenso ist die in XML notierte Sprache XQuery für XML-Datenbanken Turing-vollständig.
© biancahoegel.de
Datum der letzten Änderung: Jena, den: 21.09. 2022