Sonderzeichen
# Sonderzeichen

Ein Sonderzeichen ist (in der Typografie/Typometrie und der digitalen Datenverarbeitung) ein Schriftzeichen, das weder ein Buchstabe noch eine Ziffer ist.

Zu den Sonderzeichen gehören Interpunktionszeichen (Satzzeichen, Wortzeichen) und wissenschaftlich-technische Symbole. Auch Diakritika sind Sonderzeichen, z. B. Akut oder Breve (é, ă).

## Abweichende Bedeutungen und schwankende Bedeutung

Zu den Sonderzeichen werden zum Teil auch die nicht-druckenden Zeichen gezählt, die bei der Gestaltung einer Druckvorlage als Orientierungshilfe dienen, wie zum Beispiel Leerzeichen, zum Teil gerade nicht.

Etwas unklar ist, ob z. B. Umlaute Sonderzeichen sind, unter der angegebenen Definition hängt dies mit der Streitfrage zusammen, ob etwa „Ä“ ein eigenständiger, von „A“ zu unterscheidender Buchstabe ist, vgl. Zahl der Buchstaben im Deutschen Alphabet. Im Schwedischen, Finnischen und Estnischen hingegen gilt Ä als eigenständiger Buchstabe. Zum Teil werden auch Ziffern zu den Sonderzeichen gerechnet.

Griechische Buchstaben können Symbole sein, wenn sie nicht zum Bilden griechischer Wörter, sondern als Variablen (z. B. in der Statistik σ für die Standardabweichung) oder Konstanten (z. B. für die Kreiszahl π) verwendet werden.

Als „Eingeben von Sonderzeichen“ werden häufig Eingabemethoden (auf Computertastaturen) beschrieben (auf Webseiten mit dem Titel „Sonderzeichen“, siehe #Weblinks und Eingabemethode #Weblinks), wobei die Eingabe sämtlicher Zeichen ohne ASCII-Code behandelt wird, einschließlich von Buchstaben nicht-deutscher Sprachen. Häufig wird etwa der dänische Kleinbuchstabe ø explizit als Beispiel aufgeführt.

## Sonderzeichen und Technik

In den frühen Zeiten der Informationstechnik war die Beschränkung von Zeichensätzen auf 7 oder 8 Bit technisch bedingt. Um die vielen damit verbundenen Probleme – so musste zur Einführung des Euro-Symbols ein anderes Zeichen aus ISO 8859-15, einer 8-Bit-Erweiterung von ASCII, herausgenommen werden – zu vermeiden, wird heute zunehmend eine höhere Bitzahl je Zeichen verwandt.

Allerdings gibt es keinen klaren Zusammenhang zwischen dem Begriff Sonderzeichen und Fortschritten in der Kodierungstechnik. Von den 94 druckbaren ASCII-Zeichen sind 32 Sonderzeichen, also recht genau ein Drittel. Symbole für einfachere mathematische Aussagen sind unter ihnen bereits vorhanden, und hinsichtlich der Satzzeichen hat Unicode (s. u.) den bereits in ASCII kodierten (aus deutscher Sicht) nur die typografischen Varianten des waagrechten Strichs (Viertelgeviertstrich, Halbgeviertstrich, Geviertstrich, Minuszeichen), der Anführungszeichen und der Auslassungspunkte hinzugefügt (die vorher bereits mit TeX aus 7-Bit-Zeichensätzen verfügbar waren). Die Terminologie ist nicht klar hinsichtlich der Frage, ob es sich überhaupt bei der Mehrzahl der gegenüber ASCII neu kodierten Zeichen um Sonderzeichen handelt (z. B. bei Umlauten, s. o.).

Die Verwendung von ASCII-Sonderzeichen benötigt gegenüber der der ASCII-Buchstaben und -Ziffern auch keine besondere Technologie. In den Quellcode digitaler Texte kann man die meisten (oder viele) ASCII-Sonderzeichen (Interpunktionszeichen, mathematische Zeichen) ebenso umstandslos einbetten wie die Buchstaben und Ziffern. Jedoch haben bei verschiedenen Technologien (Dateinamen, Programmierung, URL-Kodierung, weitere folgen) bestimmte ASCII-Sonderzeichen eine spezielle syntaktische Funktion (etwa als „reservierte Zeichen“ bezeichnet), die ihre Darstellung etwas erschwert. Man verwendet für solche Zwecke gerade ASCII-Sonderzeichen, um Anwendern die Texteingabe möglichst wenig zu erschweren.

Ein anderer Gesichtspunkt ist die Tastaturbelegung. Schon zu Zeiten der Schreibmaschine unterschieden sich die deutsche und die amerikanische Tastatur hauptsächlich in der Anordnung bzw. dem Vorhandensein von Sonderzeichen. Durch Tastenkombinationen wird auf Computertastaturen in den gängigen Betriebssystemen die Menge der direkt in den Quellcode einfügbaren Zeichen erweitert. Es ist eine terminologische Frage, ob alle so zusätzlich verfügbare Zeichen Sonderzeichen sind.

Unabhängig vom Begriff des Sonderzeichens ist manchen Technologien noch anzumerken, dass sie ursprünglich nur für ASCII-Zeichen entworfen wurden, wenn auch eher für Programmierer als für Anwender.

Im 80-Zeichen-Code der IBM-Lochkarte wurden Zahlen, Buchstaben, und Ziffern in unterschiedlichen Weisen dargestellt.

## Unicode

Auf modernen Systemen lassen sich auch recht entlegene Sonderzeichen ohne große Umstände benutzen. Dabei haben sich (aus der Not heraus) verschiedene Methoden entwickelt.

Unicode gilt als die modernste und generischste Form der Umsetzung. Jedes Zeichen auf dieser Welt, ob es nun ein Recycling-Symbol oder ein chinesisches Schriftzeichen ist, bekommt einen Platz in den Unicode-Tabellen und wird auf einem Rechner als ein oder mehr Bytes umfassende Speicherstelle abgebildet. Jedes Unicode-Zeichen hat eine eigene Nummer. In den Zeichentabellen findet sich etwa:

## HTML

### Zeichenentitäten

Zeichenentitäten machen es möglich, Tausende verschiedener Zeichen mit in ASCII kodierten HTML-Dateien darzustellen. So können jedenfalls Buchstabenvarianten, Symbole und Interpunktionszeichen dargestellt werden, für die 7 Bit nicht ausreichen. – Im Artikel Entitäten in Auszeichnungssprachen wird die Thematik allgemeiner behandelt.

**Numerische Zeichenentitäten**

In HTML kann man ein Zeichen mit der Unicode-Position NUM durch den Code &#NUM; (NUM dezimal geschrieben) in die Browseransicht befördern, alternativ durch &#xHNUM;, wenn HNUM die hexadezimale Notation für NUM ist, Beispiel &#60; bzw. &#x3C; für das mathematische „kleiner-als“-Zeichen „<“, das in ASCII wie in Unicode die Position 60 hat. Man spricht in diesem Fall von numerischen Zeichenentitäten. Sie beginnen mit &# (dem Ampersand-Zeichen, gefolgt vom Doppelkreuz) und enden mit ; (Semikolon). Sowohl ASCII-Zeichen als auch praktisch sämtliche Zeichen, die man „Sonderzeichen“ nennen könnte, sind auf diese Weise darstellbar.

**Benannte Zeichenentitäten und „HTML-eigene“ Zeichen**

Für einzelne Zeichen, die besonders häufig benötigt werden, sind benannte Zeichenentitäten eingeführt worden, deren „Namen“ leicht zu merken sind. Z. B. kann das „kleiner-als“ Zeichen auch durch &lt; dargestellt werden, der „Name“ lt ist eine Abkürzung für „less than“. Der Code beginnt wieder mit & und endet mit ;, aber das Doppelkreuz fehlt.

Voriges betrifft hauptsächlich nicht in ASCII kodierte Zeichen. Von den 32 ASCII-Sonderzeichen müssen eigentlich nur drei so behandelt werden:

* das „kleiner-als“-Zeichen – s. o.
* das „größer-als“-Zeichen – Gegenstück zum vorigen, so werden die HTML-„Tags“ gebildet (<ELTNAME ATTR>TEXT</ELTNAME>) – darstellbar durch &gt;
* das &, welches ein Entity selbst einleitet – darstellbar durch &amp;.

Diese Zeichen werden als „HTML-eigene“ Zeichen bezeichnet, man könnte sie auch „reservierte Zeichen“ (wie bei der URL-Kodierung) nennen.

Im Zusammenhang mit Attributwerten kann es außerdem sinnvoll sein, das " („behelfsmäßiges doppeltes Anführungszeichen“) durch &quot; und das ' („behelfsmäßiges einfaches Anführungszeichen“) durch &apos; („Apostroph“) zu ersetzen. Wenn hochwertige Typografie angestrebt wird, sind diese Maßnahmen allerdings nicht ausreichend.

Benannte Zeichenentitäten erleichtern jedenfalls das Erstellen von HTML-Dateien mit einem Texteditor. Die so dargestellten Zeichen umfassen Buchstabenvarianten (mit diakritischen Zeichen), mathematische Symbole (die auch Pfeile und griechische Buchstaben sein können), und typografische Varianten von Interpunktionszeichen (→ Satzzeichen). 1995 wurden „Benennungen“ für die über ASCII hinausgehenden Zeichen in ISO 8859-1 eingeführt, 1999 weitere für einzelne Unicode-Zeichen, siehe Benannte Zeichenentitäten im Artikel Entitäten in Auszeichnungssprachen.

### Angabe der Quellcode-Kodierung

Außerdem können HTML-Betrachter (Browser) angewiesen werden, nicht in ASCII kodierten Text intentionsgemäß umzusetzen, indem man die Kodierung des Quelltexts im Dateikopf explizit angibt:

Alternativ zu UTF-8 können auch ISO-8859-Varianten angegeben werden. In beiden Fällen werden Zeichen-Entitäts-Referenzen überflüssig, nur noch auf &, <, > (und "/') ist zu achten.

Beide Methoden – Benutzung von Entities und Angabe der Zeichenkodierung – können problemlos gleichzeitig verwendet werden.

### Was ist besser?

Der Artikel Entitäten in Auszeichnungssprachen diskutiert die beiden dargestellten Möglichkeiten, Nicht-ASCII-Zeichen (seien es Buchstaben, Numerale oder Sonderzeichen) in den Abschnitten Zukunft der Zeichenentitäten und Anmerkung. (Stand Mitte Februar 2016.)

## LaTeX

Populär zur Erstellung wissenschaftlicher Dokumente ist LaTeX, ursprünglich von den Informatikern Donald E. Knuth (TeX) – für die American Mathematical Society – und Leslie Lamport (LaTeX) entwickelt.

### Sonderzeichen ohne ASCII-Code

**Zeichenkodierung**

Wie bei HTML kann man die Zeichenkodierung des Quelltexts angeben, um etwa Umlaute und diakritische Zeichen direkt im Quellcode eines Dokuments unterzubringen, hier mithilfe einer Präambelzeile

alternativ etwa latin1 statt utf8, wenn man mit älteren Quelldateien arbeitet, die gemäß ISO 8859-1 kodiert wurden. Ohne das Paket inputenc können Dateien mit ASCII-Erweiterungen nicht verarbeitet werden (in der Voreinstellung verarbeitet LaTeX Quelldateien als in ASCII kodiert) – jedenfalls mit Knuths ursprünglicher TeX-Engine oder mit pdfTeX (pdflatex). XeTeX (xelatex) und LuaTeX fassen die Quelldateien in ihrer Voreinstellung als in UTF-8 kodiert auf. Mit UTF-8 (also Unicode) können im Prinzip beliebige in verschiedenen Fachgebieten erforderliche Symbole, die etwa in Mathematik (wofür es ursprünglich geschaffen wurde) einen besonders großen Anteil an (nicht durch eine einzelne ASCII-Position kodierten) „Sonderzeichen“ bilden, direkt als einzelnes Zeichen in den Quellcode eines LaTeX-Dokuments eingefügt werden. Auch typografische Varianten in ASCII kodierter Interpunktionszeichen stehen so zur Verfügung (in 8 Bit bot nur das herstellerspezifische, nicht normierte Windows-1252 typografische Gedankenstriche).

**Kodierung durch ASCII-Kombinationen**

Typografische Qualität war bei LaTeX aber auch schon immer ohne Erweiterung der Zeichenkodierung möglich. Den Halbgeviertstrich (Gedankenstrich) erhält man mit dem ASCII-Code --, den Geviertstrich (englischen Gedankenstrich) mit --- und typografisch befriedigende Auslassungspünktchen mit \dots. Das ursprünglich als Grave-Akzent vorgesehene Zeichen wird zur Darstellung eines einzelnen Anführungszeichens links oben dargestellt, für doppelte Anführungszeichen verdoppelt man die einfachen. Buchstabenvarianten mit kombinierenden Zeichen wurden ursprünglich durch Übereinanderschieben von Buchstaben- und in Zeichensätzen separat bereitgestellten diakritischen Glyphen dargestellt, letztere erscheinen im Code (außerhalb von Formeln) als Kombinationen aus beginnendem Rückstrich \ (in ASCII hexadezimal 5C) und einem anderen Zeichen, so dass etwa „Ä“ durch \"{A} erzeugt wird. Mit dem Zusatz-Makro-Paket german konnte man stattdessen kürzer und leserlicher "A tippen, dadurch werden die Pünktchen auch typografisch korrekt etwas tiefer platziert als im Englischen. Gerade solche Buchstabenvarianten lassen sich mit Tastaturen, die für lateinische Alphabete ausgelegt sind, leicht in eine Quellcodedatei einfügen, so dass diese Kombinationsbefehle durch ASCII-Erweiterungen vielleicht obsolet geworden sind; andererseits müssen beim gemeinschaftlichen Verfassen von Texten Quellcodedateien ausgetauscht werden, und man verschickt Quelldateien an englischsprachige Zeitschriften bzw. Verlage, dabei können heute noch in ASCII, in ISO 8859-1 und in UTF-8 kodierte Dateien „durcheinandergeraten“, in solchen Fällen kann es ratsam sein, weiterhin die Kombinationsbefehle zu verwenden.

LaTeX verwendet auch automatisch Ligaturen, die allerdings in deutschen Texten oft unpassend sind und dann eigens unterdrückt werden müssen.

Darüber hinaus sind für LaTeX Zeichensätze mit zusammen Tausenden fachgebietsspezifischer Symbole aus dem Comprehensive TeX Archive Network bzw. über TeX-Distributionen erhältlich, verbunden mit Makropaketen, die für jedes Symbol eine Kombination aus einem beginnenden Rückstrich und ASCII-Buchstaben als Befehl bieten (→ #Weblinks). Diese Symbole haben also eine Position in einem von einem einzelnen Schöpfer (oder einem kleinen Team) verwalteten Zeichensatz, nicht (unbedingt) in einem von einer Normierungsinstitution verwalteten System. Für manche einzelne Unicode-Codepunkte bieten mehrere TeX- oder LaTeX-Pakete unterschiedliche Schriftschnitte an (z. B. für das Euro-Symbol €). Wie die „benannten Entitäten“ in HTML werden die Buchstabenfolgen nach mnemonischen Gesichtspunkten gewählt, teilweise stimmen die „Namen“ mit denen in HTML überein, z. B. \cup wie &cup; für das Vereinigungsmengensymbol.

Als Vorteil der ASCII-Eingabe von Symbolen gegenüber direkter Einfügung von Unicodezeichen durch Tastenkombinationen oder aus einer Zeichentabelle bzw. einer Symbolleiste wird gelegentlich angegeben, dass der Verfasser sich weitgehend auf den Inhalt des Texts konzentrieren kann, während seine Finger wie beim Klavierspielen in ununterbrochenem Fluss weitgehend ohne bewusste Steuerung im 10-Finger-System über die Tastatur wandern. Für häufig erforderliche Befehle kann man (anders als bei HTML mit seiner starr vorgegebenen Syntax – mit \newcommand oder \renewcommand) einen kürzeren „Alias“-Befehl einführen.

### ASCII-Sonderzeichen

Um das Eintippen zu erleichtern und die Leserlichkeit des Codes zu verbessern, werden 10 der ASCII-Sonderzeichen – \$&#^_~% „zweckentfremdet“/„reserviert“ (Funktionszeichen), z. B. für $m^2$ (Ergebnis „m²“), wofür man in HTML m&sup2; oder m<sup>2</sup> tippt. Um sie wie ursprünglich mit ASCII darzustellen, kann man sie bis auf \ und ~ (die kontextabhängig durch längere Befehle erzeugbar sind) mit dem Rückstrich „maskieren“, beispielsweise tippt man \$ für das Dollarsymbol $.

In LaTeX halten manche Befehle nach folgender linker eckiger Klammer [ oder dem Stern * Ausschau. In speziellen Fällen bereitet dies Schwierigkeiten, beispielsweise wenn man eine neue Zeile mit einer eckigen Klammer beginnen will. Statt \\[ tippt man dann besser \\[.

## Punycode

Um Umlaute und andere Sonderzeichen in Domainnamen darstellen zu können, hat man das Verfahren Punycode entwickelt, welches zusammen mit Nameprep den Standard für internationalisierte Domainnamen (IDN) ergibt. Dabei werden Nicht-ASCII-Zeichen durch Bindestriche ersetzt und deren Repräsentation an das Ende des Wortes angehängt.

