Auszeichnungssprache

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Eine Auszeichnungssprache (englisch markup language) 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.[1]

Mit Auszeichnungssprachen werden Eigenschaften, Zugehörigkeiten und Darstellungsformen von Abschnitten eines Textes (Zeichen, Wörter, Absätze usw.) oder einer Datenmenge beschrieben. Dies geschieht in der Regel, indem sie mit Auszeichnungselementen (so genannten Tags) markiert werden.

Wortherkunft und Geschichte[Bearbeiten]

Der typographische 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.[2] 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.

Wie ausgezeichneter Text aussieht[Bearbeiten]

Typische Auszeichnungssprachen beschreiben Abschnitte von Texten oder anderen Daten mit Auszeichnungselementen (Tags). Die Quelltexte dafür werden mit einem computerlesbaren Zeichensatz verfasst, in der Regel ASCII oder Unicode, meist 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, Code und Auszeichnungsarten in Beispielen[Bearbeiten]

Beispiel für … Darstellungsbeispiel HTML LaTeX Wikitext Markdown
Überschrift Überschrift <h1>Überschrift</h1> \section{Überschrift} ==Überschrift== #Überschrift
Aufzählung
  • Punkt 1
  • Punkt 2
  • Punkt 3

<ul>
<li>Punkt 1
<li>Punkt 2
<li>Punkt 3
</ul>

\begin{itemize}
\item Punkt 1
\item Punkt 2
\item Punkt 3
\end{itemize}

* Punkt 1
* Punkt 2
* Punkt 3

- Punkt 1
- Punkt 2
- Punkt 3
oder
* Punkt 1
* Punkt 2
* Punkt 3

fetten Text fett <b>fett</b> \textbf{fett} '''fett'''
**fett**

oder

__fett__
kursiven Text kursiv <i>kursiv</i> \textit{kursiv} ''kursiv''
*kursiv*

oder

_kursiv_

Fett“ und „kursiv“ 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 (präsentationales Markup) 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 dargestellt, die Spezifikationen (HTML 4.01, HTML5) des HTML-Elements strong lassen jedoch die konkrete Darstellungsweise offen.[3]

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,[4] 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.[3]

Unterscheidung und Abgrenzung[Bearbeiten]

Man kann die Auszeichnungssprachen grob unterteilen in Sprachen zur semantischen Beschreibung (englisch descriptive markup language) und in Auszeichnungssprachen für die Darstellung (englisch procedural markup language).

Mit den Beschreibungssprachen werden die Dokumente durch Metainformationen zu ihrer physischen und inhaltlichen Struktur und die Semantik ihrer Elemente ergänzt. Zu ihnen gehören unter anderem die in SGML oder XML definierten Sprachen HTML, DocBook, TEI, MathML, WML, XAML und SVG. Auszeichnungssprachen im engeren Sinne beschreiben dagegen die Darstellung der Dokumente auf dem Bildschirm, im Webbrowser, für Drucker und andere Ausgabegeräte. Dazu gehören die darstellenden Seitenbeschreibungssprachen wie das Textsatzsystem TeX und dessen Makropakete LaTeX oder ConTeXt. Viele Auszeichnungssprachen verwenden sowohl Eigenschaften der Beschreibungssprachen als auch der Darstellungssprachen, z. B. die Seitenbeschreibungssprachen für PDF und PostScript.

Vereinfachte Auszeichnungssprachen[Bearbeiten]

Im folgenden Absatz fehlen folgende wichtige Informationen: „Die Syntax solcher Sprachen besteht aus kürzeren und einfacheren Elementen“ als in was? – Vielleicht als in „klassischen Auszeichnungssprachen“, s. u. [--14:53, 4. Jul. 2015 (CEST)]
Du kannst Wikipedia helfen, indem du sie recherchierst und einfügst.

Um Dokumente (z. B. in Wiki, Blogs, Foren) manuell erstellen zu können und den Quelltext lesbar zu halten, werden oft vereinfachte Auszeichnungssprachen verwendet. Die Syntax solcher Sprachen besteht aus kürzeren und einfacheren Elementen, so auch bei Wikipedia („Wikitext“). Für die Darstellung der Dokumente werden diese Anweisungen dann in eine gewöhnliche Auszeichnungssprache wie HTML oder XHTML serverseitig umgewandelt, etwa durch Pandoc oder, wie im Falle der Wikipedia, durch die MediaWiki-Software.

Im folgenden Absatz fehlen folgende wichtige Informationen: Was sind „klassische Auszeichnungssprachen“? [--14:53, 4. Jul. 2015 (CEST)]
Du kannst Wikipedia helfen, indem du sie recherchierst und einfügst.

Klassische Auszeichnungssprachen, die viele Details exakt darstellen können, müssen nicht unbedingt von Menschen direkt verwendet werden können, sondern werden oft maschinell durch Skriptsprachen erzeugt. Müssen aber die Quelltexte manuell geschrieben werden oder für Menschen lesbar sein, so können diese entweder mit WYSIWYG grafisch aufbereitet oder direkt durch einfache Auszeichnungssprachen dargestellt werden. Im Gegensatz zu WYSIWYG muss der Text zum Schreiben und Lesen nicht bearbeitet werden.

Vereinfachte Auszeichnungssprachen nutzen im Unterschied zu klassischen

  • keine ausführlichen Tags wie z. B. HTML <a href="Seite">Seite</a>, sondern wenige, anderweitig nicht benutzte Zeichenfolgen (zum Beispiel [[Seite]]), um die Lesbarkeit zu erhöhen;
  • wenn möglich keinen zwingenden Abschluss wie bei SGML-Elementen durch schließende Tags;
  • hingegen Zeilenumbruch oder Leerzeichen als Trennzeichen.

So ist ein Sternchen (*) am Anfang einer Zeile hier ein Listenpunkt und wird erst bei der Darstellung als typografisches Aufzählungszeichen dargestellt. Diese Schreibweise ist gegenüber nativem HTML (<ul><li>text</li></ul>) kürzer. Nachteil dieser Methode sind mögliche Kollisionen mit einer anderen Funktion der entsprechenden Zeichen, die Fehler verursachen können. In manchen vereinfachten Auszeichnungssprachen beginnt z. B. ein fett geschriebener Text mit dem Sternchen (ich rufe *laut* um Hilfe), was am Zeilenanfang (*laut* rufe ich um Hilfe) mit der Verwendung für einen Listeneintrag kollidieren kann.

Neben reinen logischen Auszeichnungen wie Überschriften und reinen Schriftauszeichnungen wie fett können auch weitere Funktionen erfüllt werden:

  • Hyperlinks;
  • Tags zur zusätzlichen Auszeichnung eines Datenbestandes mit zusätzlichen Informationen und zur Kategorisierung;
  • Transklusionen, um Teile anderer Dokumente durch einen Verweis einzuschließen.

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 werden. 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.

Programmiersprache[Bearbeiten]

Während Auszeichnungssprachen allgemein zu den Computersprachen gehören, ist die Abgrenzung zu Programmiersprachen zum Teil schwierig. So weist beispielsweise die Sprache PostScript auch Eigenschaften von Programmiersprachen auf: Zur Darstellung einer Lissajous-Figur in Postscript müssen nicht alle Kanten der Grafik in einer Segmentliste enthalten sein, sondern können mit einem programmierten Algorithmus erzeugt werden. Das Ziel ist zwar eine beschreibende Datenauszeichnung, allerdings wird diese hier erst zur Laufzeit aus einer prozeduralen Vorstufe erzeugt. Die Abgrenzung zu Programmiersprachen wird hier fließend, denn wie diese besitzen auch alle Auszeichnungssprachen eine Syntax, eine Grammatik und eine Semantik. Eine Programmiersprache unterscheidet sich von einer reinen Auszeichnungssprache durch Strukturelemente wie zum Beispiel Aufeinanderfolge (Komposition, Relation, Sukzession), Wiederholungen (Repetition, Iteration, Rekursion) und Bedingungen (Kondition, Selektion, Option).

Siehe auch[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. HTML5 – A vocabulary and associated APIs for HTML and XHTML. W3C Recommendation 28 October 2014. W3C, 28. Oktober 2014, abgerufen am 10. Juni 2015 (englisch): „the core language of the World Wide Web: the Hypertext Markup Language (HTML)“
  2. Meyers enzyklopädisches Lexikon, Mannheim 1971. Band 3, S. 188.
  3. a b HTML5, Abschnitt Text-level semantics, Empfehlung des W3C vom 28. Oktober 2014.
  4. HTML5, Abschnitt Presentational markup, Empfehlung des W3C vom 28. Oktober 2014.