Eine Auszeichnungssprache (engl. Markup Language, Abk. ML) dient zur Beschreibung von Daten oder des Verfahrens, das zur Darstellung nötig ist. Ursprünglich dienten die Auszeichnungen im Text als Anweisungen für die Setzer aus der Druckindustrie.
Es gibt zwei Gruppen von Auszeichnungssprachen.
- Die Descriptive Markup Languages (Abk. DML) beschreiben die Syntax von Daten.
- Die Procedural Markup Languages (Abk. PML) beschreiben das Verfahren oder die Schritte, die zur Darstellung nötig sind.
Bei einer Auszeichnungssprache werden die Eigenschaften, Zugehörigkeiten und Verfahren von bestimmten Wörtern, Sätzen und Abschnitten eines Textes beschrieben bzw. zugeteilt, meist in dem sie mit so genannten Tags markiert werden. Die Quelltexte werden in der Regel im ASCII-Code oder Unicode (meist UTF-8) verfasst. Oft bietet die Sprache auch die Möglichkeit, Sonderzeichen zu beschrieben, meist mithilfe einer nummerischen Zuweisung (Unicode) oder durch Benennung (in LaTeX z.B.: „\mu“ für „µ“, in HTML: „µ“ für „µ“).
Descriptive Markup Languages sind unter anderem die in SGML oder XML definierten Sprachen HTML, DocBook, TEI, MathML, WML oder SVG. Weiterhin gehört auch TeX dazu, wie es mit dem Makropaket LaTeX verwendet wird. Auch das Wikipedia-Projekt hat eine eigene Auszeichnungssprache (Wikitext). Diese Formate erleichtern die Erstellung von Formatierungen oder auch Tabellen, für die ansonsten Kenntnisse in HTML nötig wären.
Procedural Markup Languages sind unter anderem TeX, PDF und PostScript. Diese Formate weisen u. a. den Bildschirm oder den Drucker an, wie das Dokument dargestellt werden soll.
Wie jede Programmiersprache besitzen auch die Auszeichnungssprachen eine Syntax, eine Grammatik und eine Semantik. Beispiele dafür befinden sich in folgender Vergleichstabelle.
Der Begriff Daten ist der Plural von Datum (lat. Singular datum, Plural data = Gegebenes).
Sprachliche Anmerkung
Diese Pluralform folgt damit anderen Wörtern lateinischen Ursprungs wie Faktum/Fakten und Skriptum/Skripten. In der deutschen Sprache hat sich jedoch die Bedeutung von "Datum" im allgemeinem Sprachgebrauch auf "Kalenderdatum" eingeengt.
Deshalb ist die Verwendung des Wortes "Daten" als Plural von "Datum" unüblich. "Datum" wird behandelt, als ob es ein Singularetantum (Wort ohne Plural) wäre; "Daten" wird behandelt, als ob es ein Pluraletantum (Wort ohne Singular) wäre. Falsche scherzhafte Pluralia von "Datum" sind Datümer und Datumse; eine beliebte Methode, das Wort "Daten" zu vermeiden, ist die Umschreibung mit "Termine". Um dagegen das Wort "Datum" als Singular zu "Daten" zu vermeiden, werden Wörter wie "Datenelement", "Angabe" oder "Wert" verwendet.
Informatik
Die Informatik und Datenverarbeitung (EDV) benutzen Daten als (maschinen-) lesbare und bearbeitbare Repräsentation von Information. Die Information wird dazu in Zeichen (bzw. Zeichenketten) kodiert, deren Aufbau strengen Regeln folgt, der so genannten Syntax. Daten werden zu Informationen, wenn sie in einem Bedeutungskontext stehen.
Beispiel: 0815 kann eine Telefonnummer sein und damit zu den Daten gehören. Wenn dazu der Name des Teilnehmers genannt wird, so wird daraus eine Information.
Man unterscheidet:
- strukturierte Daten (zum Beispiel Datenbanken, XML)
- unstrukturierte Daten (beispielsweise Dokumente)
- transiente Daten
Während sich strukturierte Daten relativ einfach maschinell weiterverarbeiten lassen, ist dies bei unstrukturierten Daten nur schwer oder ungenau möglich.
Das Synchronisieren von Daten wird als Datenabgleich bezeichnet.
Semiotik
Die Semiotik definiert Daten als potenzielle Information. In der Semiotik werden Daten heute in die Sigmatik-Ebene eingeordnet.
Beispiele für Daten
- 0010100100100001
- Ländercodes (Internet) - Ländervorwahlen für das internationale Telefonnetz - Städtevorwahlen für Deutschland - Anzahl der Fenster in einem Haus
- Größe und Masse
- Ergebnisse von Experimenten in den Naturwissenschaften
- technische Fakten
- Antworten von Umfragen, Volkszählungen,...
In der Datenverarbeitung und Informatik steht das englische Wort Tag (Etikett, Anhänger, Aufkleber, Marke) für die Auszeichnung eines Datenbestandes mit zusätzlichen Informationen. Die darin enthaltenen Informationen dienen je nach Verwendungsgebiet sehr unterschiedlichen Zwecken.
Auszeichnungssprachen
In Auszeichnungssprachen (engl. mark-up languages) wie SGML, XML oder HTML bezeichnet das Wort Tag die in Kleiner- und Größerzeichen eingeschlossenen Kürzel, die beispielsweise in HTML dazu dienen, Textelemente zu formatieren und damit deren Darstellung in Webseiten zu beeinflussen, oder aber, wie in XML, verwendet werden Daten zu klassifizieren und strukturieren. Dabei kommen sogenannte öffnende und schließende Tags zum Einsatz. Letztere sind durch einen führenden Schrägstrich gekennzeichnet.
In HTML bewirkt zum Beispiel die Auszeichnung Text, dass der in ihr enthaltenen Text fett gedruckt (engl. bold) dargestellt wird.
Mittels der in XML in sogenannten DTDs frei definierbaren Tags könnte so zum Beispiel die Strukturierung und Auszeichnung eines Eintrages im Kundenverzeichnis einer Firma so aussehen:
MeierBert12345
Auch in der auf dieser Seite verwendeten Wikisyntax gibt es solche Tags zu verschiedenen Zwecken. Beispielsweise um die Interpretation von Tags explizit zu unterbinden: Keine Wikisyntax hier.
Dateiformate
Bei der Speicherung von Daten in Dateien bezeichnet "Tag" eine Meta- oder Zusatzinformation, die der Datei angefügt wird. Dabei werden neben den zu speichernden Daten zusätzlich Informationen beispielsweise über deren Ursprung oder Verwendungszweck abgelegt.
- Der ID3-Tag etwa bietet in Musikdateien Informationen über deren Name, Genre, Interpret und anderes.
- Ein Dateiformat für Bilddaten, das auf der Verwendung von Tags zur Speicherung von Informationen beruht, ist das Tagged Image File Format (TIFF).
Objektorientierte Programmierung
In der objektorientierten Programmierung wird "Tag" umgangssprachlich gebraucht und entbehrt einer genauen Definition. Es bezeichnet ein Attribut oder Datenfeld, welches entweder für verschiedene Zwecke bereitgehalten aber nicht notwendigerweise verwendet wird, oder aber eine ähnliche Funktion wie in XML einnimmt und verwendet wird um Programmobjekte zu klassifizieren oder intern zusätzliche Daten bereit zu halten. In letzterem Falle als Bezeichnung häufig synonym verwendet zu flag bleibt das Attribut für einen Anwender oder den Programmierer, der vorgefertige Klassen verwendet, verborgen.
In den Object Pascal Varianten Borland Delphi und Kylix etwa besitzen sämtliche Klassen ein Integer-Feld "Tag", das zunächst nicht verwendet wird und dem Programmierer erlaubt, dort zusätzliche Informationen zwischenzuspeichern.
Versionsverwaltung
In Versionsverwaltungsprogrammen wie CVS bezeichnet ein Tag die Markierung einer Menge von Dateien, aus denen sich zu einem beliebigen Zeitpunkt eine bestimmte Version wiederherstellen lässt.
Weitere Verwendungen
Die fachsprachlich ungenaue Verwendung des Wortes kann auch andere Bereiche erfassen. Allen Verwendungen ist gemein, dass sie sich sehr eng an der wörtlichen Bedeutung des englischen Begriffes orientieren, also ein Tag immer ein (abstraktes) Etikett oder Schildchen, ein Auszeichner oder eine wie auch immer geartete Markierung meint.
Unicode ist ein internationaler Standard, in dem langfristig für jedes sinntragende Zeichen bzw. Textelement aller bekannten Schriftkulturen und Zeichensysteme ein digitaler Code festgelegt wird. Er will das Problem der verschiedenen inkompatiblenKodierungen in den unterschiedlichen Ländern beseitigen. Herkömmliche Computer-Zeichensysteme umfassen einen Zeichenvorrat von entweder 128 (7 Bit) Zeichen wie der sehr bekannte ASCII-Standard oder 256 (8 Bit) Zeichen, wie z.B. ISO Latin-1, wovon nach Abzug der Steuerzeichen 96 Elemente bei ASCII und 192–224 Elemente bei den 8-bit ISO-Zeichensätzen als Schrift- und Sonderzeichen darstellbar sind. Diese Zeichenkodierungen erlauben die gleichzeitige Darstellung von nur wenigen Sprachen im selben Text, wenn man sich nicht damit behilft, in einem Text verschiedene Schriften mit unterschiedlichen Zeichensätzen zu verwenden. Dies behinderte den internationalen Datenaustausch erheblich.
In Unicode finden Zeichen der wichtigsten Industriestandard-Zeichensätze wie die ISO-Normen eine 1:1-Entsprechung (das bedeutet, dass bei einer Konversion vom Industriestandard zu Unicode und zurück das gleiche Ergebnis herauskommt). Heute erledigen die meisten Webbrowser die Darstellung dieser Zeichensätze mit einer Unicode-kodierten Schrift in der Regel perfekt und vom Benutzer unbemerkt.
ISO 10646 ist die von ISO verwendete praktisch bedeutungsgleiche Bezeichnung des Unicode-Zeichensatzes; er wird dort als Universal Character Set (UCS) bezeichnet.
Codes, Speicherung und Übertragung
Die Codes von Unicode-Zeichen werden hexadezimal mit vorangestelltem „U+“ dargestellt. Hierbei kann „x“ als Platzhalter verwendet werden, wenn zusammenhängende Bereiche gemeint sind, wie „U+01Fx“ für den Codebereich U+01F0–U+01FF.
Der Coderaum von Unicode umfasste ursprünglich 65.536 Zeichen (UCS-2, 16 Bit). Bald aber stellte sich dies als unzureichend heraus. In Version 2.0 wurde der Codebereich um weitere 16 gleich große Bereiche, sogenannte Planes (Ebenen) erweitert. Somit sind nun maximal 1.114.112 (220+216) Zeichen bzw. Codepoints im Codebereich von U+00000 bis U+10FFFF vorgesehen (UCS-4, 32 Bit). Bislang, in Unicode 4.0, sind 96.382 Codes individuellen Zeichen zugeordnet. Das entspricht in etwa erst 9% des Coderaumes.
Die Codebereiche (Blöcke), in welche die Unicode-Ebenen untergliedert werden, sind in der Liste der Unicode-Blöcke vollständig aufgeführt. Neben den gültig kodierten Zeichen ist auch sehr langfristig, z. T. noch recht vage Geplantes aufgeführt.
Die Speicherung und Übertragung von Unicode erfolgt in unterschiedlichen Formaten:
- Unicode Transformation Format (UTF), wobei UTF-8 das gebräuchlichste ist, z.B. im Internet und in fast allen Betriebssystemen. Neben UTF-8 hat UTF-16 eine große Bedeutung, so z.B. als Zeichencodierung in Java, der dem Unicode UCS-4 für alle UCS-2 Codepoints entspricht, und alle anderen Codepoints als Zweiersequenzen, die sogenannten Surrogate Pairs, abbildet.
- SCSU (Standard Compression Scheme for Unicode, früher auch als RCSU – Reuters' Compression Scheme for Unicode – bezeichnet) ist eine Methode zur platzsparenden Speicherung, welche die Anordnung der verschiedenen Alphabete in Blöcken ausnutzt (siehe Weblinks).
- UTF-EBCDIC ist eine Unicode-Erweiterung, die auf dem proprietären EBCDIC-Format von IBM-Großrechnern aufbaut.
- Punycode dient dazu, Domainnamen mit nicht-ASCII-Zeichen zu kodieren. Siehe auch: IDNA.
- Außerdem gibt es die Formate CESU-8 und GB18030.
Normierungsinstitutionen
Das gemeinnützige Unicode Consortium ist für den Industriestandard Unicode verantwortlich. Von der ISO (International Organization for Standardization) wird die internationale NormISO 10646 herausgegeben. Beide Institutionen arbeiten eng zusammen. Seit 1993 sind Unicode und ISO 10646 bezüglich der Zeichenkodierung identisch. Während ISO 10646 lediglich die eigentliche Zeichenkodierung festlegt, gehört zum Unicode ein umfassendes Regelwerk, das u. A. für alle Zeichen weitere zur konkreten Anwendung wichtige Eigenschaften eindeutig festlegt wie Sortierreihenfolge, Schreibrichtung und Regeln für das Kombinieren von Zeichen.
Im Moment ist Unicode strenggenommen noch eine Untermenge von ISO 10646: Während ISO 10646 Zeichencodes mit bis zu 31 Bit zulässt, sind bei Unicode maximal 21 Bit erlaubt. In nächster Zeit aber dürfte der ISO-Codebereich auf den von Unicode reduziert werden.
Kodierungskriterien
Gegenüber anderen Normen gibt es bei Unicode die Besonderheit, dass einmal kodierte Zeichen niemals wieder entfernt werden, um die Langlebigkeit digitaler Daten zu gewährleisten. Sollte sich die Normierung eines Zeichens nachträglich als Fehler erweisen, wird allenfalls von seiner Verwendung abgeraten. Daher bedarf die Aufnahme eines Zeichens in den Standard einer äußerst sorgfältigen Prüfung, die sich über Jahre hinziehen kann.
Im Unicode werden „abstrakte Zeichen“ (engl.: characters) kodiert, nicht Glyphen. Letzteres ist die grafische Darstellung abstrakter Zeichen, die extrem unterschiedlich ausfallen kann, beim lateinischen Alphabet beispielsweise in Fraktur, Antiqua, im Irischen und in Handschriften, siehe auch Glyphe. Für Glyphenvarianten, deren Normierung als sinnvoll und notwendig nachgewiesen wird, sind vorsorglich 256 „Variation Selectors“ vorgesehen, die ggf. dem eigentlichen Code nachgestellt werden können.
Andererseits haben Schriften, die sowohl das lateinische als auch das griechischeAlphabet enthalten, doppelt kodierte identische Glyphen für die folgenden mehrdeutigen Buchstaben: Α Β Ε Ζ Η Ι Κ Μ Ν Ο Ρ Τ Υ Χ. Von vielen Zeichen gibt es nicht nur durch die Schriftart bedingte Varianten sondern auch innerhalb einer Schriftart mehr oder minder notwendige sprach-, schrift- oder kontextabhängige Glyphenvarianten und Ligaturen, zu deren Darstellung es sogenannter Smartfonttechniken wie OpenType, nicht aber einer Unicode-Kodierung bedarf.
Allerdings wird in Grenzfällen hart um die Entscheidung gerungen, ob es sich um Glyphenvarianten oder kodierungswürdige Zeichen, d. h. unterschiedliche (Grapheme) handelt. Beispielsweise sind nicht wenige Fachleute der Meinung, das phönizische Alphabet könne man als Glyphenvarianten des hebräischen betrachten, da der gesamte Zeichenvorrat des Phönizischen dort eindeutige Entsprechungen hat, und auch die beiden Sprachen sehr eng verwandt sind. Die Auffassung, es handele sich um ein separates Zeichensystem, in der Unicode-Terminologie „script“, hat sich letztlich durchgesetzt. Anders verhält es sich bei CJK: Chinesisch, Japanisch und Koreanisch). Hier haben sich im 20. Jahrhundert die Formen vieler gleichbedeutender Schriftzeichen auseinanderentwickelt. Dennoch teilen sich die sprachspezifischen Glyphen die selben Codes im Unicode. In der Praxis werden hier wohl überwiegend sprachspezifische Schriftarten verwendet, und die zeichnen sich schon durch außergewöhnliche Dateigrößen aus. Die einheitliche Kodierung der CJK-Schriftzeichen (Han Unification) war eine der wichtigsten und umfangreichsten Vorarbeiten für die Entwicklung von Unicode. Besonders in Japan ist sie durchaus umstritten. Zu Einzelheiten (engl.) siehe Weblinks.
Als der Grundstein für Unicode gelegt wurde, musste berücksichtigt werden, dass bereits eine Vielzahl unterschiedlicher Kodierungen in verbreitetem Einsatz waren. Unicode-basierte Systeme sollten herkömmlich kodierte Daten mit geringem Aufwand handhaben können. Hierzu wurde für die unteren 256 Zeichen die weit verbreitete ISO 8859-1-Kodierung (Latin1) beibehalten ebenso wie die Kodierungsarten verschiedener nationaler Normen, z. B. TIS 620 für Thailändisch (fast identisch mit ISO 8859-11) oder ISCII für indische Schriften, die in der ursprünglichen Reihenfolge lediglich in höhere Codebereiche verschoben wurden.
Jedes Zeichen maßgeblicher überkommender Kodierungen wurde in den Standard übernommen, auch wenn es den normalerweise angelegten Maßstäben nicht gerecht wird. Hierbei handelt es sich zu einem großen Teil um Zeichen, die aus zwei oder mehr Zeichen zusammengesetzt sind, wie Buchstaben mit diakritischen Zeichen. Im übrigen verfügt auch heute noch ein großer Teil der Software nicht über die Möglichkeit, Zeichen mit Diakritika ordentlich zusammenzusetzen. Die exakte Festlegung von äquivalenten Kodierungen ist Teil des zum Unicode gehörenden umfangreichen Regelwerks. Obgleich die hexadekadischen Ziffern A bis F formal die Kriterien für eine gesonderte Kodierung erfüllen, musste dies unterbleiben, weil in der Praxis deren Funktion stets von den Buchstaben A bis F übernommen wird.
Vielen Unicode-Zeichen ist keine Glyphe zugeordnet. Auch sie gelten als „characters“. Neben den Steuerzeichen wie Zeilenvorschub (U+000A), Tabulator (U+0009) usw. sind allein 19 Zeichen explizit als Leerzeichen definiert, sogar solche ohne Breite, die u. a. als Worttrenner gebraucht werden für Sprachen wie Thai oder Tibetisch, die ohne Wortzwischenraum geschrieben werden. Für bidirektionalen Text, z. B. Arabisch und Lateinisch sind sieben Formatierungszeichen notwendig.
Beispiel: Combining Grapheme Joiner (CGJ)
Der CGJ ist ein unsichtbares Sonderzeichen, das normalerweise von den Anwendungsprogrammen völlig ignoriert wird (engl.: default ignorable). Er soll audrücklich nicht zur Kennzeichnung von Glyphenvarianten o. Ä. verwendet werden. Sein Gebrauch ist wie folgt definiert:
In manchen Sprachen gibt es Digraphen und Trigraphen, die grundsätzlich als eigenständige Buchstaben behandelt, d. h. insbesondere sortiert werden. Im Ungarischen beispielsweise betrifft das: cs, dz, dzs, gy, ly, ny, sz, ty und zs. Um Ausnahmen hiervon bei Bedarf zu kennzeichnen, wurde der „Combining Grapheme Joiner“ CGJ (U+034F) eingeführt. Der Name bedeutet eigentlich das Gegenteil, aber, auch das gehört zum Standard, auch die Namen kodierter Zeichen werden niemals geändert.
Trägt ein Buchstabe mehrere Diakritika drüber oder drunter, werden diese normalerweise vertikal gestapelt. Für Ausnahmefälle, in denen zwei Diakritika nebeneinander stehen müssen, sieht Unicode vor, dass ein CGJ dazwischengestellt wird. Es obliegt dem Schriftentwickler, die Erscheinungform der Zeichenfolgen „Diakritikon1 CGJ Diakritikon2“ festzulegen, auf die dann mittels einer Schrifttechnik wie OpenType zugegriffen werden kann.
Die im Standard festgelegte Eigenschaft „default ignorable“ qualifiziert den CGJ, in Sonderfällen auch andere sonst unnötige feine Unterschiede zu markieren. So kann die Datenverarbeitung deutscher Bibliotheken die Unterscheidung von Umlaut und Trema (meist für fremdsprachige Namen) erfordern. Hier empfiehlt Unicode, dem Trema (U+0308) den CGJ voranzustellen, um es als Umlaut zu kennzeichnen. Die ursprünglich von DIN vorgeschlagene nachträgliche gesonderte Kodierung der Umlaut-Punkte hätte zu einer kaum vertretbaren Inkonsistenz großer Datenmengen geführt.
Eingabemethoden
Will man ein Unicode-Zeichen (zum Beispiel „⊕“) in HTML oder XML verwenden, sucht man es zunächst aus der entsprechenden Tabelle (hier: Mathematische Symbole). Dort ist seine Zeichennummer hexadezimal angegeben. Mit dieser Zeichennummer erstellt man dann eine Zeichenentität durch Voranstellen von „&#x“ und Anfügen eines Semikolons, eben „⊕“. Die Zeichennummer kann in der Zeichenentität auch dezimal, dann ohne führendes „x“, angegeben werden, zum Beispiel „⊕“ für das gleiche Zeichen. Die Text Encoding Initiative TEI hat Empfehlungen erarbeitet, Unicode in XML-Dateien in leichter verständlicher Form einzugeben. Hier handelt es sich um einen Satz benannter Zeichen (engl.: named entites), der in das Stylesheet integriert wird. Allgemein übliche benannte Zeichen sind z. B. die Umlaute wie „Ä“ statt „Ä" für Ä.
Im Vi Improved kann man Unicode-Zeichen (Voraussetzung: Unicode-basierte Locale oder als Unicode, zum Beispiel UTF-8, erkannte Datei) eingeben, indem man Strg+V,U und dann die hexadezimale Zeichennummer drückt, also zum Beispiel Strg+V,U,2,0,A,C für das Euro-Zeichen. Eine alternative Eingabemöglichkeit ist die Benutzung der Digraph-Methode des Vim.
In Emacs ab Version 21.4 kann man Unicode-Zeichen eingeben, indem man ALT-x ucs-insert und dann die hexadezimale Zeichennummer eingibt.
Unter Windows (ab Windows 2000) kann in vielen Programmen der Code hexadezimal eingegeben werden. Mit nachfolgendem Alt-x, innerhalb von MS Word 2003 aber Alt-c, wird das Zeichen erzeugt. Diese Tastenkombination kann unter Windows XP auch benutzt werden, den Code des vor dem Cursor stehenden Zeichens anzuzeigen.
Ob das entsprechende Unicode-Zeichen auch tatsächlich am Bildschirm erscheint, hängt davon ab, ob die verwendete Schriftart eine Glyphe für das gewünschte Zeichen (also eine Grafik für die gewünschte Zeichennummer) enthält. Oftmals, z.B unter Windows wird, falls die verwendete Schrift ein Zeichen nicht enthält, nach Möglichkeit ein Zeichen aus einer anderen Schrift eingefügt. In der Typografie gilt so etwas als Fehler namens Zwiebelfisch. In Webbrowsern hingegen ist dies überaus nützlich, in Verbindung mit Umlaut-Domains und Phishing aber auch sicherheitsrelevant.
Schriftarten
Mittlerweile hat der Zeichensatz von Unicode/ISO einen Umfang angenommen, der sich praktisch nicht mehr vollständig in einer Schriftart unterbringen lässt. In Postscript-CFF-, TrueType- und OpenType-Schriften kann man maximal 65.536 Zeichen unterbringen. So versteht es sich von selbst, dass Unicode/ISO-Konformität einer Schrift nicht bedeutet, dass der komplette Zeichensatz enthalten sein muss, sondern lediglich, dass die enthaltene Zeichenauswahl normgerecht kodiert ist. Normalerweise wird eine dem Verwendungszweck oder Verbreitungsgebiet angemessene Auswahl getroffen. Die derzeit umfangreichste Schrift – in zwei Dateien aufgeteilt – ist
[http://home.att.net/~jameskass/ Code 2000/Code 2001] von James Kass.
Eine Übersicht über viele kostenlose und kommerzielle, umfangreiche und spezialisierte Unicode-Schriften bietet [http://www.alanwood.net/unicode/fonts.html Allan Wood].
Altgriechisch mit Unicode
Die meisten Unicode-Schriften stellen nur diejenigen Buchstaben und Zeichen dar, die im Neugriechischen Verwendung finden (Unicode-Tabelle [http://www.unicode.org/charts/PDF/U0370.pdf "Greek and Coptic"] PDF). Es handelt sich um folgende Zeichen:
Α α Ά ά Β β Γ γ Δ δ Ε ε Έ έ Ζ ζ Η η Ή ή Θ θ Ι ι Ί ί Ϊ ϊ ΐ Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Ό ό
Π π Ρ ρ Σ σ ς Τ τ Υ υ Ϋ ϋ Ύ ύ ΰ Φ φ Χ χ Ψ ψ Ω ω Ώ ώ ; ·
Die Eingabe dieser Zeichen kann z.B. so erfolgen, dass eine passende Unicode-Schriftart gewählt wird und dann das Tastenlayout auf Griechisch umgestellt wird.
Für das Schreiben und Darstellen altgriechischer Texte werden aber Sonderzeichen benötigt (Unicode-Tabelle [http://www.unicode.org/charts/PDF/U1F00.pdf "Greek Extended"] PDF), die in vielen Unicode-Schriftarten nicht vorhanden sind. In der folgenden Testtabelle finden sich Beispiele – nur das oberste Zeichen gehört zum "normalen" Zeichensatz "Greek".
Benötigt werden aber auch die anderen Zeichen, insgesamt mindestens die folgenden:
ἀ ἁ ὰ ᾶ ἂ ἃ ἄ ἅ ἆ ἇ ᾳ ᾀ ᾁ ᾴ ᾲ ᾷ ᾄ ᾅ ᾂ ᾃ ᾆ ᾇ ἐ ἑ ὲ ἔ ἕ ἒ ἓ ἠ ἡ ὴ ῆ ἤ ἢ ἣ ἥ ἦ ἧ ῃ ῄ ῂ ῇ ᾐ ᾑ ᾔ ᾒ ᾕ ᾓ ᾖ ᾗ ἰ ἱ ὶ ῖ ἴ ἲ ἵ ἶ ἷ ὀ ὁ ὄ ὅ ὂ ὃ ὐ ὑ ὺ ῦ ὔ ὕ ὒ ὓ ὖ ὗ ὠ ὡ ὼ ῶ ὤ ὢ ὥ ὣ ὦ ὧ ῴ ῲ ῷ ᾠ ᾡ ᾤ ᾢ ᾥ ᾣ ᾦ ᾧ ` ᾿ ῾ ῍ ῎ ῏ ῟ ῞ ῝ ῍ ῎
Zur Darstellung dieser Zeichen ist möglicherweise eine besondere Einstellung des Internet-Browsers nötig.
- Windows-Explorer: Unter "Extras" die "Internetoptionen" wählen, dann auf der Registerkarte "Allgemein" unter "Schriftarten" folgende Wahl treffen: "Sprachskript": Lateinischer Stamm; "Schriftart für Webseiten": Palatino-Linotype. Dann unter "Eingabehilfen" ein Häkchen setzen bei: "Schriftartangaben auf Webseiten ignorieren".
Versionen von Unicode
Derzeit erscheinen neue Versionen ungefähr im Abstand von anderthalb Jahren, wobei in der letzten Zeit jährlich etwa 1000 Zeichen neu aufgenommen werden.
- DP 10646 1989 (Vorschlag für den Entwurf von ISO 10646, unabhängig von Unicode)
- DIS-1 10646 1990 (Erster Entwurf für ISO 10646, unabhängig von Unicode)
- Unicode 1.0.0 Oktober 1991 - Unicode 1.0.1 Juni 1992 (Modifikationen um eine Zusammenführung mit ISO 10646 zu ermöglichen)
- Unicode 1.1.0 Juni 1993 (Unicode und ISO-Norm erstmals vereinigt: Codes identisch zu ISO 10646-1: 1993)
- Unicode 1.1.5 Juli 1995 - Unicode 2.0.0 Juli 1996 (Abgleich mit ISO 10646 Erweiterungen)
- Unicode 2.1.2 Mai 1998 (unter anderem Einführung des Eurozeichens)
- Unicode 2.1.5 August 1998 - Unicode 2.1.8 Dezember 1998 - Unicode 2.1.9 April 1999 - Unicode 3.0.0 September 1999 (Abgleich mit ISO 10646-1: 2000)
- Unicode 3.0.1 August 2000 - Unicode 3.1.0 März 2001 (Abgleich mit ISO 10646-2: 2001)
- Unicode 3.1.1 August 2001 - Unicode 3.2.0 März 2002 - Unicode 4.0.0 April 2003 (Abgleich mit ISO 10646: 2003)
- Unicode 4.0.1 März 2004 - Unicode 4.1.0 März 2005
Software
Das freie Programm gucharmap (für Linux/UNIX) stellt den Unicode-Zeichensatz auf dem Bildschirm dar und bietet zusätzliche Informationen zu den einzelnen Zeichen.
Literatur
- Joan Aliprand u.a. (Hrsg.): The Unicode Standard Version 4.0, Addison Wesley, Boston, Mass. 2003, ISBN 0-321-18578-1
- [http://www.unicode.org Unicode Consortium] (englisch)
- [http://www.decodeunicode.org/ Decode Unicode Projekt - Erklärungen zu 1200 Unicodezeichen in einem Wiki, dazu 50.000 Glyphen; Deutsch/Englisch]
- [http://www.cl.cam.ac.uk/~mgk25/unicode.html UTF-8- und Unicode-FAQ für Unix/Linux] (Markus Kuhn, englisch)
- [http://de.selfhtml.org/inter/unicode.htm Das Unicode-System - Beschreibung im HTML-Kompendium SELFHTML]
- [http://mypage.bluewin.ch/reprobst/WordFAQ/Unicode.htm Microsoft Word und Unicode-Unterstützung], (bezieht sich auf alte Versionen, in aktuellen keine Probleme vorhanden)
- [http://www.jostjahn.de/unicodes.html Liste und Anzeige der Codes]
Standards:
- RFC 3629 (UTF-8, a transformation format of ISO 10646)
- RFC 3492 (Punycode, für Sonderzeichen in Domainname)
----
Für Hinweise zur Darstellung ausländischer Schriften in Wikipedia-Artikeln im Browser siehe Wikipedia:Unicode.Kategorie:ZeichenkodierungKategorie:Datenformatja:Unicodeko:유니코드th:ยูนิโคดzh-min-nan:Thong-iōng-bé
Unicode
Unicode ist ein internationaler Standard, in dem langfristig für jedes sinntragende Zeichen bzw. Textelement aller bekannten Schriftkulturen und Zeichensysteme ein digitaler Code festgelegt wird. Er will das Problem der verschiedenen inkompatiblenKodierungen in den unterschiedlichen Ländern beseitigen. Herkömmliche Computer-Zeichensysteme umfassen einen Zeichenvorrat von entweder 128 (7 Bit) Zeichen wie der sehr bekannte ASCII-Standard oder 256 (8 Bit) Zeichen, wie z.B. ISO Latin-1, wovon nach Abzug der Steuerzeichen 96 Elemente bei ASCII und 192–224 Elemente bei den 8-bit ISO-Zeichensätzen als Schrift- und Sonderzeichen darstellbar sind. Diese Zeichenkodierungen erlauben die gleichzeitige Darstellung von nur wenigen Sprachen im selben Text, wenn man sich nicht damit behilft, in einem Text verschiedene Schriften mit unterschiedlichen Zeichensätzen zu verwenden. Dies behinderte den internationalen Datenaustausch erheblich.
In Unicode finden Zeichen der wichtigsten Industriestandard-Zeichensätze wie die ISO-Normen eine 1:1-Entsprechung (das bedeutet, dass bei einer Konversion vom Industriestandard zu Unicode und zurück das gleiche Ergebnis herauskommt). Heute erledigen die meisten Webbrowser die Darstellung dieser Zeichensätze mit einer Unicode-kodierten Schrift in der Regel perfekt und vom Benutzer unbemerkt.
ISO 10646 ist die von ISO verwendete praktisch bedeutungsgleiche Bezeichnung des Unicode-Zeichensatzes; er wird dort als Universal Character Set (UCS) bezeichnet.
Codes, Speicherung und Übertragung
Die Codes von Unicode-Zeichen werden hexadezimal mit vorangestelltem „U+“ dargestellt. Hierbei kann „x“ als Platzhalter verwendet werden, wenn zusammenhängende Bereiche gemeint sind, wie „U+01Fx“ für den Codebereich U+01F0–U+01FF.
Der Coderaum von Unicode umfasste ursprünglich 65.536 Zeichen (UCS-2, 16 Bit). Bald aber stellte sich dies als unzureichend heraus. In Version 2.0 wurde der Codebereich um weitere 16 gleich große Bereiche, sogenannte Planes (Ebenen) erweitert. Somit sind nun maximal 1.114.112 (220+216) Zeichen bzw. Codepoints im Codebereich von U+00000 bis U+10FFFF vorgesehen (UCS-4, 32 Bit). Bislang, in Unicode 4.0, sind 96.382 Codes individuellen Zeichen zugeordnet. Das entspricht in etwa erst 9% des Coderaumes.
Die Codebereiche (Blöcke), in welche die Unicode-Ebenen untergliedert werden, sind in der Liste der Unicode-Blöcke vollständig aufgeführt. Neben den gültig kodierten Zeichen ist auch sehr langfristig, z. T. noch recht vage Geplantes aufgeführt.
Die Speicherung und Übertragung von Unicode erfolgt in unterschiedlichen Formaten:
- Unicode Transformation Format (UTF), wobei UTF-8 das gebräuchlichste ist, z.B. im Internet und in fast allen Betriebssystemen. Neben UTF-8 hat UTF-16 eine große Bedeutung, so z.B. als Zeichencodierung in Java, der dem Unicode UCS-4 für alle UCS-2 Codepoints entspricht, und alle anderen Codepoints als Zweiersequenzen, die sogenannten Surrogate Pairs, abbildet.
- SCSU (Standard Compression Scheme for Unicode, früher auch als RCSU – Reuters' Compression Scheme for Unicode – bezeichnet) ist eine Methode zur platzsparenden Speicherung, welche die Anordnung der verschiedenen Alphabete in Blöcken ausnutzt (siehe Weblinks).
- UTF-EBCDIC ist eine Unicode-Erweiterung, die auf dem proprietären EBCDIC-Format von IBM-Großrechnern aufbaut.
- Punycode dient dazu, Domainnamen mit nicht-ASCII-Zeichen zu kodieren. Siehe auch: IDNA.
- Außerdem gibt es die Formate CESU-8 und GB18030.
Normierungsinstitutionen
Das gemeinnützige Unicode Consortium ist für den Industriestandard Unicode verantwortlich. Von der ISO (International Organization for Standardization) wird die internationale NormISO 10646 herausgegeben. Beide Institutionen arbeiten eng zusammen. Seit 1993 sind Unicode und ISO 10646 bezüglich der Zeichenkodierung identisch. Während ISO 10646 lediglich die eigentliche Zeichenkodierung festlegt, gehört zum Unicode ein umfassendes Regelwerk, das u. A. für alle Zeichen weitere zur konkreten Anwendung wichtige Eigenschaften eindeutig festlegt wie Sortierreihenfolge, Schreibrichtung und Regeln für das Kombinieren von Zeichen.
Im Moment ist Unicode strenggenommen noch eine Untermenge von ISO 10646: Während ISO 10646 Zeichencodes mit bis zu 31 Bit zulässt, sind bei Unicode maximal 21 Bit erlaubt. In nächster Zeit aber dürfte der ISO-Codebereich auf den von Unicode reduziert werden.
Kodierungskriterien
Gegenüber anderen Normen gibt es bei Unicode die Besonderheit, dass einmal kodierte Zeichen niemals wieder entfernt werden, um die Langlebigkeit digitaler Daten zu gewährleisten. Sollte sich die Normierung eines Zeichens nachträglich als Fehler erweisen, wird allenfalls von seiner Verwendung abgeraten. Daher bedarf die Aufnahme eines Zeichens in den Standard einer äußerst sorgfältigen Prüfung, die sich über Jahre hinziehen kann.
Im Unicode werden „abstrakte Zeichen“ (engl.: characters) kodiert, nicht Glyphen. Letzteres ist die grafische Darstellung abstrakter Zeichen, die extrem unterschiedlich ausfallen kann, beim lateinischen Alphabet beispielsweise in Fraktur, Antiqua, im Irischen und in Handschriften, siehe auch Glyphe. Für Glyphenvarianten, deren Normierung als sinnvoll und notwendig nachgewiesen wird, sind vorsorglich 256 „Variation Selectors“ vorgesehen, die ggf. dem eigentlichen Code nachgestellt werden können.
Andererseits haben Schriften, die sowohl das lateinische als auch das griechischeAlphabet enthalten, doppelt kodierte identische Glyphen für die folgenden mehrdeutigen Buchstaben: Α Β Ε Ζ Η Ι Κ Μ Ν Ο Ρ Τ Υ Χ. Von vielen Zeichen gibt es nicht nur durch die Schriftart bedingte Varianten sondern auch innerhalb einer Schriftart mehr oder minder notwendige sprach-, schrift- oder kontextabhängige Glyphenvarianten und Ligaturen, zu deren Darstellung es sogenannter Smartfonttechniken wie OpenType, nicht aber einer Unicode-Kodierung bedarf.
Allerdings wird in Grenzfällen hart um die Entscheidung gerungen, ob es sich um Glyphenvarianten oder kodierungswürdige Zeichen, d. h. unterschiedliche (Grapheme) handelt. Beispielsweise sind nicht wenige Fachleute der Meinung, das phönizische Alphabet könne man als Glyphenvarianten des hebräischen betrachten, da der gesamte Zeichenvorrat des Phönizischen dort eindeutige Entsprechungen hat, und auch die beiden Sprachen sehr eng verwandt sind. Die Auffassung, es handele sich um ein separates Zeichensystem, in der Unicode-Terminologie „script“, hat sich letztlich durchgesetzt. Anders verhält es sich bei CJK: Chinesisch, Japanisch und Koreanisch). Hier haben sich im 20. Jahrhundert die Formen vieler gleichbedeutender Schriftzeichen auseinanderentwickelt. Dennoch teilen sich die sprachspezifischen Glyphen die selben Codes im Unicode. In der Praxis werden hier wohl überwiegend sprachspezifische Schriftarten verwendet, und die zeichnen sich schon durch außergewöhnliche Dateigrößen aus. Die einheitliche Kodierung der CJK-Schriftzeichen (Han Unification) war eine der wichtigsten und umfangreichsten Vorarbeiten für die Entwicklung von Unicode. Besonders in Japan ist sie durchaus umstritten. Zu Einzelheiten (engl.) siehe Weblinks.
Als der Grundstein für Unicode gelegt wurde, musste berücksichtigt werden, dass bereits eine Vielzahl unterschiedlicher Kodierungen in verbreitetem Einsatz waren. Unicode-basierte Systeme sollten herkömmlich kodierte Daten mit geringem Aufwand handhaben können. Hierzu wurde für die unteren 256 Zeichen die weit verbreitete ISO 8859-1-Kodierung (Latin1) beibehalten ebenso wie die Kodierungsarten verschiedener nationaler Normen, z. B. TIS 620 für Thailändisch (fast identisch mit ISO 8859-11) oder ISCII für indische Schriften, die in der ursprünglichen Reihenfolge lediglich in höhere Codebereiche verschoben wurden.
Jedes Zeichen maßgeblicher überkommender Kodierungen wurde in den Standard übernommen, auch wenn es den normalerweise angelegten Maßstäben nicht gerecht wird. Hierbei handelt es sich zu einem großen Teil um Zeichen, die aus zwei oder mehr Zeichen zusammengesetzt sind, wie Buchstaben mit diakritischen Zeichen. Im übrigen verfügt auch heute noch ein großer Teil der Software nicht über die Möglichkeit, Zeichen mit Diakritika ordentlich zusammenzusetzen. Die exakte Festlegung von äquivalenten Kodierungen ist Teil des zum Unicode gehörenden umfangreichen Regelwerks. Obgleich die hexadekadischen Ziffern A bis F formal die Kriterien für eine gesonderte Kodierung erfüllen, musste dies unterbleiben, weil in der Praxis deren Funktion stets von den Buchstaben A bis F übernommen wird.
Vielen Unicode-Zeichen ist keine Glyphe zugeordnet. Auch sie gelten als „characters“. Neben den Steuerzeichen wie Zeilenvorschub (U+000A), Tabulator (U+0009) usw. sind allein 19 Zeichen explizit als Leerzeichen definiert, sogar solche ohne Breite, die u. a. als Worttrenner gebraucht werden für Sprachen wie Thai oder Tibetisch, die ohne Wortzwischenraum geschrieben werden. Für bidirektionalen Text, z. B. Arabisch und Lateinisch sind sieben Formatierungszeichen notwendig.
Beispiel: Combining Grapheme Joiner (CGJ)
Der CGJ ist ein unsichtbares Sonderzeichen, das normalerweise von den Anwendungsprogrammen völlig ignoriert wird (engl.: default ignorable). Er soll audrücklich nicht zur Kennzeichnung von Glyphenvarianten o. Ä. verwendet werden. Sein Gebrauch ist wie folgt definiert:
In manchen Sprachen gibt es Digraphen und Trigraphen, die grundsätzlich als eigenständige Buchstaben behandelt, d. h. insbesondere sortiert werden. Im Ungarischen beispielsweise betrifft das: cs, dz, dzs, gy, ly, ny, sz, ty und zs. Um Ausnahmen hiervon bei Bedarf zu kennzeichnen, wurde der „Combining Grapheme Joiner“ CGJ (U+034F) eingeführt. Der Name bedeutet eigentlich das Gegenteil, aber, auch das gehört zum Standard, auch die Namen kodierter Zeichen werden niemals geändert.
Trägt ein Buchstabe mehrere Diakritika drüber oder drunter, werden diese normalerweise vertikal gestapelt. Für Ausnahmefälle, in denen zwei Diakritika nebeneinander stehen müssen, sieht Unicode vor, dass ein CGJ dazwischengestellt wird. Es obliegt dem Schriftentwickler, die Erscheinungform der Zeichenfolgen „Diakritikon1 CGJ Diakritikon2“ festzulegen, auf die dann mittels einer Schrifttechnik wie OpenType zugegriffen werden kann.
Die im Standard festgelegte Eigenschaft „default ignorable“ qualifiziert den CGJ, in Sonderfällen auch andere sonst unnötige feine Unterschiede zu markieren. So kann die Datenverarbeitung deutscher Bibliotheken die Unterscheidung von Umlaut und Trema (meist für fremdsprachige Namen) erfordern. Hier empfiehlt Unicode, dem Trema (U+0308) den CGJ voranzustellen, um es als Umlaut zu kennzeichnen. Die ursprünglich von DIN vorgeschlagene nachträgliche gesonderte Kodierung der Umlaut-Punkte hätte zu einer kaum vertretbaren Inkonsistenz großer Datenmengen geführt.
Eingabemethoden
Will man ein Unicode-Zeichen (zum Beispiel „⊕“) in HTML oder XML verwenden, sucht man es zunächst aus der entsprechenden Tabelle (hier: Mathematische Symbole). Dort ist seine Zeichennummer hexadezimal angegeben. Mit dieser Zeichennummer erstellt man dann eine Zeichenentität durch Voranstellen von „&#x“ und Anfügen eines Semikolons, eben „⊕“. Die Zeichennummer kann in der Zeichenentität auch dezimal, dann ohne führendes „x“, angegeben werden, zum Beispiel „⊕“ für das gleiche Zeichen. Die Text Encoding Initiative TEI hat Empfehlungen erarbeitet, Unicode in XML-Dateien in leichter verständlicher Form einzugeben. Hier handelt es sich um einen Satz benannter Zeichen (engl.: named entites), der in das Stylesheet integriert wird. Allgemein übliche benannte Zeichen sind z. B. die Umlaute wie „Ä“ statt „Ä" für Ä.
Im Vi Improved kann man Unicode-Zeichen (Voraussetzung: Unicode-basierte Locale oder als Unicode, zum Beispiel UTF-8, erkannte Datei) eingeben, indem man Strg+V,U und dann die hexadezimale Zeichennummer drückt, also zum Beispiel Strg+V,U,2,0,A,C für das Euro-Zeichen. Eine alternative Eingabemöglichkeit ist die Benutzung der Digraph-Methode des Vim.
In Emacs ab Version 21.4 kann man Unicode-Zeichen eingeben, indem man ALT-x ucs-insert und dann die hexadezimale Zeichennummer eingibt.
Unter Windows (ab Windows 2000) kann in vielen Programmen der Code hexadezimal eingegeben werden. Mit nachfolgendem Alt-x, innerhalb von MS Word 2003 aber Alt-c, wird das Zeichen erzeugt. Diese Tastenkombination kann unter Windows XP auch benutzt werden, den Code des vor dem Cursor stehenden Zeichens anzuzeigen.
Ob das entsprechende Unicode-Zeichen auch tatsächlich am Bildschirm erscheint, hängt davon ab, ob die verwendete Schriftart eine Glyphe für das gewünschte Zeichen (also eine Grafik für die gewünschte Zeichennummer) enthält. Oftmals, z.B unter Windows wird, falls die verwendete Schrift ein Zeichen nicht enthält, nach Möglichkeit ein Zeichen aus einer anderen Schrift eingefügt. In der Typografie gilt so etwas als Fehler namens Zwiebelfisch. In Webbrowsern hingegen ist dies überaus nützlich, in Verbindung mit Umlaut-Domains und Phishing aber auch sicherheitsrelevant.
Schriftarten
Mittlerweile hat der Zeichensatz von Unicode/ISO einen Umfang angenommen, der sich praktisch nicht mehr vollständig in einer Schriftart unterbringen lässt. In Postscript-CFF-, TrueType- und OpenType-Schriften kann man maximal 65.536 Zeichen unterbringen. So versteht es sich von selbst, dass Unicode/ISO-Konformität einer Schrift nicht bedeutet, dass der komplette Zeichensatz enthalten sein muss, sondern lediglich, dass die enthaltene Zeichenauswahl normgerecht kodiert ist. Normalerweise wird eine dem Verwendungszweck oder Verbreitungsgebiet angemessene Auswahl getroffen. Die derzeit umfangreichste Schrift – in zwei Dateien aufgeteilt – ist
[http://home.att.net/~jameskass/ Code 2000/Code 2001] von James Kass.
Eine Übersicht über viele kostenlose und kommerzielle, umfangreiche und spezialisierte Unicode-Schriften bietet [http://www.alanwood.net/unicode/fonts.html Allan Wood].
Altgriechisch mit Unicode
Die meisten Unicode-Schriften stellen nur diejenigen Buchstaben und Zeichen dar, die im Neugriechischen Verwendung finden (Unicode-Tabelle [http://www.unicode.org/charts/PDF/U0370.pdf "Greek and Coptic"] PDF). Es handelt sich um folgende Zeichen:
Α α Ά ά Β β Γ γ Δ δ Ε ε Έ έ Ζ ζ Η η Ή ή Θ θ Ι ι Ί ί Ϊ ϊ ΐ Κ κ Λ λ Μ μ Ν ν Ξ ξ Ο ο Ό ό
Π π Ρ ρ Σ σ ς Τ τ Υ υ Ϋ ϋ Ύ ύ ΰ Φ φ Χ χ Ψ ψ Ω ω Ώ ώ ; ·
Die Eingabe dieser Zeichen kann z.B. so erfolgen, dass eine passende Unicode-Schriftart gewählt wird und dann das Tastenlayout auf Griechisch umgestellt wird.
Für das Schreiben und Darstellen altgriechischer Texte werden aber Sonderzeichen benötigt (Unicode-Tabelle [http://www.unicode.org/charts/PDF/U1F00.pdf "Greek Extended"] PDF), die in vielen Unicode-Schriftarten nicht vorhanden sind. In der folgenden Testtabelle finden sich Beispiele – nur das oberste Zeichen gehört zum "normalen" Zeichensatz "Greek".
Benötigt werden aber auch die anderen Zeichen, insgesamt mindestens die folgenden:
ἀ ἁ ὰ ᾶ ἂ ἃ ἄ ἅ ἆ ἇ ᾳ ᾀ ᾁ ᾴ ᾲ ᾷ ᾄ ᾅ ᾂ ᾃ ᾆ ᾇ ἐ ἑ ὲ ἔ ἕ ἒ ἓ ἠ ἡ ὴ ῆ ἤ ἢ ἣ ἥ ἦ ἧ ῃ ῄ ῂ ῇ ᾐ ᾑ ᾔ ᾒ ᾕ ᾓ ᾖ ᾗ ἰ ἱ ὶ ῖ ἴ ἲ ἵ ἶ ἷ ὀ ὁ ὄ ὅ ὂ ὃ ὐ ὑ ὺ ῦ ὔ ὕ ὒ ὓ ὖ ὗ ὠ ὡ ὼ ῶ ὤ ὢ ὥ ὣ ὦ ὧ ῴ ῲ ῷ ᾠ ᾡ ᾤ ᾢ ᾥ ᾣ ᾦ ᾧ ` ᾿ ῾ ῍ ῎ ῏ ῟ ῞ ῝ ῍ ῎
Zur Darstellung dieser Zeichen ist möglicherweise eine besondere Einstellung des Internet-Browsers nötig.
- Windows-Explorer: Unter "Extras" die "Internetoptionen" wählen, dann auf der Registerkarte "Allgemein" unter "Schriftarten" folgende Wahl treffen: "Sprachskript": Lateinischer Stamm; "Schriftart für Webseiten": Palatino-Linotype. Dann unter "Eingabehilfen" ein Häkchen setzen bei: "Schriftartangaben auf Webseiten ignorieren".
Versionen von Unicode
Derzeit erscheinen neue Versionen ungefähr im Abstand von anderthalb Jahren, wobei in der letzten Zeit jährlich etwa 1000 Zeichen neu aufgenommen werden.
- DP 10646 1989 (Vorschlag für den Entwurf von ISO 10646, unabhängig von Unicode)
- DIS-1 10646 1990 (Erster Entwurf für ISO 10646, unabhängig von Unicode)
- Unicode 1.0.0 Oktober 1991 - Unicode 1.0.1 Juni 1992 (Modifikationen um eine Zusammenführung mit ISO 10646 zu ermöglichen)
- Unicode 1.1.0 Juni 1993 (Unicode und ISO-Norm erstmals vereinigt: Codes identisch zu ISO 10646-1: 1993)
- Unicode 1.1.5 Juli 1995 - Unicode 2.0.0 Juli 1996 (Abgleich mit ISO 10646 Erweiterungen)
- Unicode 2.1.2 Mai 1998 (unter anderem Einführung des Eurozeichens)
- Unicode 2.1.5 August 1998 - Unicode 2.1.8 Dezember 1998 - Unicode 2.1.9 April 1999 - Unicode 3.0.0 September 1999 (Abgleich mit ISO 10646-1: 2000)
- Unicode 3.0.1 August 2000 - Unicode 3.1.0 März 2001 (Abgleich mit ISO 10646-2: 2001)
- Unicode 3.1.1 August 2001 - Unicode 3.2.0 März 2002 - Unicode 4.0.0 April 2003 (Abgleich mit ISO 10646: 2003)
- Unicode 4.0.1 März 2004 - Unicode 4.1.0 März 2005
Software
Das freie Programm gucharmap (für Linux/UNIX) stellt den Unicode-Zeichensatz auf dem Bildschirm dar und bietet zusätzliche Informationen zu den einzelnen Zeichen.
Literatur
- Joan Aliprand u.a. (Hrsg.): The Unicode Standard Version 4.0, Addison Wesley, Boston, Mass. 2003, ISBN 0-321-18578-1
- [http://www.unicode.org Unicode Consortium] (englisch)
- [http://www.decodeunicode.org/ Decode Unicode Projekt - Erklärungen zu 1200 Unicodezeichen in einem Wiki, dazu 50.000 Glyphen; Deutsch/Englisch]
- [http://www.cl.cam.ac.uk/~mgk25/unicode.html UTF-8- und Unicode-FAQ für Unix/Linux] (Markus Kuhn, englisch)
- [http://de.selfhtml.org/inter/unicode.htm Das Unicode-System - Beschreibung im HTML-Kompendium SELFHTML]
- [http://mypage.bluewin.ch/reprobst/WordFAQ/Unicode.htm Microsoft Word und Unicode-Unterstützung], (bezieht sich auf alte Versionen, in aktuellen keine Probleme vorhanden)
- [http://www.jostjahn.de/unicodes.html Liste und Anzeige der Codes]
Standards:
- RFC 3629 (UTF-8, a transformation format of ISO 10646)
- RFC 3492 (Punycode, für Sonderzeichen in Domainname)
----
Für Hinweise zur Darstellung ausländischer Schriften in Wikipedia-Artikeln im Browser siehe Wikipedia:Unicode.Kategorie:ZeichenkodierungKategorie:Datenformatja:Unicodeko:유니코드th:ยูนิโคดzh-min-nan:Thong-iōng-bé
SGML
SGML (engl. Standard Generalized Markup Language) ist eine Metasprache, mit deren Hilfe man verschiedene Auszeichnungssprachen (engl. markup languages) für Dokumente definieren kann. SGML ist
ein ISO-Standard: ISO 8879:1986 Information Processing — Text and Office Systems — Standard Generalized Markup Language (SGML).
Inhalt und Darstellung
Um ein gültiges (engl. valid) Dokument in SGML zu beschreiben, wird die Dokumenttypdefinition verwendet, die den strukturellen Aufbau von Dokumenten beschreibt.
In der Dokumenttypdefinition wird die mögliche Dokumentstruktur beschrieben.
In SGML sind der Inhalt des Dokumentes und sein Layout voneinander getrennt. Dennoch ist es ein Text, der nicht nur aus Wörtern, sondern zusätzlich noch aus Struktur besteht. Diese werden in SGML-Elemente gefasst.
Zur Wiedergabe dieser Struktur auf einem bestimmten Ausgabemedium wurde eine spezielle Sprache Document Style Semantics and Specification Language entwickelt. Eine Überschrift wird also in SGML zwar mit einem sog. Markup gekennzeichnet, wie diese bei der Ausgabe allerdings dargestellt wird, ist für SGML uninteressant.
Die Gültigkeit des Dokumentes überprüft man mit so genannten Parsern; diese lesen zunächst die SGML-Deklaration und die DTD ein und prüfen dann, ob das eigentliche Dokument konform mit Deklaration und DTD ist. Ein solcher Parser ist beispielsweise nsgmls von James Clark; dieser Parser wird im Rahmen des OpenSP-Projektes weiterentwickelt.
Bekannte DTDs sind z.B. DocBook und DITA
Verwendung
Wichtige Dokumente sollten in SGML verfasst werden, das unabhängig von ständig wechselnden binären Dateiformaten ist.
Abgrenzung
HTML und XML werden oft fälschlich als Ableitungen beziehungsweise als Dialekte von SGML beschrieben. HTML ist jedoch eine Anwendung (engl. application) von SGML und XML eine bestimmte Untermenge von SGML.
Geschichte
Einer der Väter von SGML ist Charles Goldfarb, der die Grundlagen für IBMs Document Composing Facility Generalized Markup Language (DCF GML) definierte. Ziel der GML war es, Dokumente so zu beschreiben, dass das Ergebnis weder von einer bestimmten Plattform noch von einer spezifischen Anwendung abhing. Es ging dabei rein um die logische Struktur wie z.B. die Einteilung eines Buches in Überschriften, Kapitel, Abschnitte und nicht um das Aussehen eines Dokumentes. Diese wesentliche Idee, nämlich das Konzept des generic coding, ist bereits Ende der 1960er Jahre entstanden und geht auf William W. Tunnicliffe zurück.
Im Laufe der Jahre wurde GML weiterentwickelt und setzte sich letztendlich als SGML – Standard Generalized Markup Language – 1986 als internationaler Standard durch, als ISO 8879.
Behörden, Firmen, Bildungseinrichtungen und Institutionen begannen damit, ihre Daten in SGML zu speichern. Den großen Durchbruch auf breiter Front schaffte SGML aber nicht.
Literatur
- Charles F. Goldfarb: The SGML Handbook, Oxford University Press (1991), ISBN 0-19-853737-9
Weblinks
- [http://mintert.com/xml/leise-revolution/leise_revolution.html Stefan Mintert: Die Standard Generalized Markup Language - Leise Revolution]
- [http://www.y12.doe.gov/sgml/WG8/wg8home.htm Information Technology - Document Description and Processing Languages] (Englisch)
- [http://www.w3.org/MarkUp/SGML/ Überblick über SGML-Ressourcen] (Englisch)
- [http://www.sgmlsource.com/history/roots.htm Charles Goldfarb: The Roots of SGML] (Englisch)
Kategorie:BeschreibungssprachenKategorie:ISO-Standardja:Standard Generalized Markup Languageko:SGML
Namensgebend sind die Hypertext-Elemente, die zum Verweis auf andere Textstellen oder auf ein anderes Dokument dienen. Zur Adressierung anderer Dokumente im Internet werden innerhalb des Dokumentes Hyperlinks verwendet. Dies ist die Grundlage für das World Wide Web. Die Programme, die die Struktur des Dokuments interpretieren und als formatierte Webseiten (eventuell mit Interaktionselementen wie Links oder Formularen) darstellen, werden Webbrowser genannt.
Dem Text wird durch Auszeichnung (engl. markup) von Textteilen mit in der Regel paarweisen (öffnenden und schließenden) Tags eine Struktur verliehen. Die jeweils zusammengehörenden Tags bilden zusammen mit dem dazwischenliegenden Text (Inhalt) ein Element. Diese Elemente lassen sich nach Regeln, die in einer Dokumenttypdefinition (DTD) angegeben sind, verschachteln:
Ein Textabsatz, der ein betontes Wort enthält.
Neben Elementen mit Start- und End-Tag gibt es auch leere Elemente, wie etwa Zeilenumbrüche oder Bilder:
Eine Textzeile, die hier fortgesetzt wird.
Es geht in HTML um sogenannte logische, nicht um physischeTextauszeichnung, auch wenn sich HTML in früheren Versionen dafür verwenden ließ. Das heißt, HTML-Tags sind keine Angaben zur Präsentation, die dem Webbrowser mitteilen, wie er den Text zwischen den Tags visuell zu formatieren hat. Vielmehr sind Tags eine strukturierende Auszeichnung, mit der sich Textbereichen eine Bedeutung zuordnen lässt, z. B.
...
für eine Überschrift,
...
für einen Textabsatz und ... für betonten Text. Wie diese Bedeutung letztlich dem Benutzer vermittelt wird (im Falle eine Überschrift z. B. durch vergrößerte, fette Schrift), ist zunächst dem Webbrowser überlassen und hängt von der Ausgabe-Umgebung ab. Denn obwohl HTML-Dokumente in der Regel auf Computerbildschirmen dargestellt werden, können sie auch auf anderen Medien ausgeben werden, etwa auf Papier oder mittels Sprachausgabe.
Um auf die Präsentation eines HTML-Dokuments in verschiedenen Medien Einfluss zu nehmen, eignen sich CSS-Formatvorlagen. Daher gelten Elemente und Attribute zur Präsentation wie ..., ... und width als veraltet und sollten nach allgemeiner Auffassung vermieden werden. Die meisten Elemente und Attribute zur Präsentation wurden in der HTML-4.01-Spezifikation als missbilligt (engl. deprecated) markiert.
Sprachtyp
HTML ist keine Seitenbeschreibungssprache wie etwa Postscript, da keine Papier-Seiten beschrieben werden, sondern Text strukturell und logisch ausgezeichnet wird. HTML ist eine Auszeichnungssprache und wird als solche auch nicht programmiert, sondern schlicht geschrieben.
Ein ähnliches Konzept (logische Beschreibung) wie hinter HTML steht hinter dem Satzsystem TeX/LaTeX, das im Unterschied zu HTML jedoch auf die Ausgabe per Drucker auf Papier zielt.
Versionen
- HTML (ohne Versionsnummer, 3. November1992): Die Urversion, die sich nur an Text orientierte. [http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/MarkUp.html Weblink]
- HTML (ohne Versionsnummer, 30. April1993): Zu Text kommen neben Attributen wie fette oder kursive Darstellung auch die Bildintegration dazu.
- HTML+ (November 1993) Geplante Erweiterungen, die in spätere Versionen einflossen, aber nie als HTML+ verabschiedet wurden. [http://www.w3.org/MarkUp/htmlplus_paper/htmlplus.html Weblink]
- HTML 2.0 (November 1995): Die mit RFC 1866 definierte Version führt u.a. Formulartechnik ein. Der Status dieses Standards ist „HISTORIC“. Auch die Vorgänger sind veraltet.
- HTML 3.0: Die Version erscheint nicht, weil sie mit der Einführung des Netscape-Browsers in der Version 3 bereits vor der Veröffentlichung obsolet ist.
- HTML 3.2 (14. Januar1997): Neu in dieser Version sind zahlreiche Feature wie Tabellen, Textfluss um Bilder, Einbindung von Applets.
- HTML 4.0 (18. Dezember1997): Mit dieser Version werden auch Stylesheets, Skripte und Frames eingeführt. Auch eine Trennung in Strict, Frameset und Transitional erfolgt. Am 24. April1998 erscheint eine leicht korrigierte Version dieses Standards.
- HTML 4.01 (24. Dezember1999): Ersetzt HTML 4.0 mit vielen, kleineren Korrekturen. Es ist die letzte HTML-Version.
- XHTML 1.0 (26. Januar2000): Eine Neuformulierung von HTML 4.01 mit Hilfe von XML. Am 1. August2002 erscheint eine überarbeitete Version.
- XHTML 1.1 (31. Mai2001): Nachdem XHTML in Module aufgeteilt wurde, wird mit XHTML 1.1 eine strikte Version definiert, bei der die mit HTML 4 eingeführten Varianten Frameset und Transitional entfallen.
- XHTML 2.0 (öffentlicher Entwurf): Diese Version basiert nicht mehr auf HTML 4.01 und führt einige neue Tags ein, so z.B. für Navigationslisten. Die Trennung von Auszeichnung und Stil soll in dieser Version vollendet werden
HTML-Struktur
Allgemeine Struktur
Ein HTML-Dokument besteht aus drei Bereichen:
# der Dokumenttypdeklaration ganz am Anfang der Datei, die die verwendete DTD angibt, z. B. HTML 4.01 Strict,
# dem HTML-Kopf (HEAD), der hauptsächlich technische oder dokumentarische Informationen enthält, die nicht direkt im Browser sichtbar sind und
# dem HTML-Körper (BODY), der anzuzeigende Informationen enthält.
Somit sieht die Grundstruktur einer Webseite wie folgt aus:
Titel der Webseite
Inhalt der Webseite
HTML-Kopf
Im Kopf können sieben verschiedene Elemente angewandt werden:
# title bezeichnet den Titel der Seite, der im Browserfenster sowie oft in Suchmaschinen angezeigt wird.
# meta kann vielfältige Metadaten enthalten. Siehe Meta-Tags.
# base gibt entweder eine Basis-URI an oder einen Basisframe.
# link dient zur Angabe von logischen Beziehungen zu anderen Ressourcen. Am häufigsten zur Einbindung von Stylesheets benutzt.
# script bindet Code in einer bestimmten Skriptsprache ein, hauptsächlich JavaScript.
# style enthält Stylesheet-Code, hauptsächlich CSS-Regeln.
# object bindet eine externe Datei ein. Browser dürfen solche Objekte im Dokumentkopf nicht darstellen.
HTML-Körper
Im Wesentlichen unterscheidet HTML zwischen Block- und Inline-Elementen. Der wesentliche Unterschied ist, dass erstere in der Ausgabe einen eigenen Block erzeugen, in dem der Inhalt untergebracht wird, während die Inline-Elemente den Textfluss nicht unterbrechen. Zu den Block-Elementen gehören z.B. die Überschriften und die Tabellen.
Eine Hauptüberschrift wird so ausgezeichnet:
Hauptüberschrift
h1 steht für Heading 1.
Der Inhalt zwischen den beiden Tags wird nun als Hauptüberschrift interpretiert. Weiter möglich sind h2 bis h6, Überschriften zweiter bis sechster Ordnung, mit denen sich die Gliederung einer Seite verdeutlichen lässt. Die Präsentation dieser Überschriften ist von ihrer strukturierenden Bedeutung unabhängig und kann mit CSS beeinflusst werden. Die Zweckentfremdung der Überschrift-Elemente zur Vergrößerung von Text wird allgemein als Missbrauch angesehen.
Hyperlinks: Hyperlinks sind Verweise auf andere Dateien, meistens ebenfalls HTML-Dateien, die üblicherweise im Browser durch Klick verfolgt werden können.
Gehe zu example.com
Hier wird auf die Ressource http://www.example.com/ verwiesen. Der Text Gehe zu example.com wird dabei als Link dargestellt.
Zur Logik stehen zum Beispiel die Elemente strong und em bereit, mit denen sich stark hervorgehobener oder betonter Text auszeichnen lässt. Gängigerweise werden strong-Elemente durch Fettschrift und em-Elemente durch kursive Schrift visuell kenntlich gemacht.
Die logische Beschreibung der Struktur des Textes, wie sie die obigen Beispielen veranschaulichen, vereinfacht es zum Beispiel, dass der Text auch einem Sehbehinderten vorgelesen oder als Braille ausgegeben werden kann, und ermöglicht Suchmaschinen die Auswertung der Texte unter Berücksichtigung ihrer Bedeutung.
HTML-Varianten
Beim Entwurf der letzten HTML-Version 4 sollte der Tatsache, dass in vielen HTML-Dokumenten noch Elemente und Attribute zur Präsentation eingesetzt werden, Rechnung getragen, aber auch eine stilistisch saubere Dokumenttypdefinition angeboten werden. Das Ergebnis waren schließlich drei Varianten:
Strict
Diese DTD umfasst den Kernbestand an Elementen und Attributen. Es fehlen die meisten Elemente und Attribute zur Beeinflussung der Präsentation, unter anderem die Elemente font, center und u sowie die Attribute bgcolor, width, height und target. Deren Rolle sollen in Strict-Dokumenten Stylesheets übernehmen. Text und nicht-blockbildende Elemente innerhalb der Elemente body, form, blockquote und noscript müssen sich grundsätzlich innerhalb eines Container-Elements befinden, zum Beispiel in einem p-Element.
Transitional
Die Transitional-Variante enthält noch ältere Elemente und Attribute, die auch physische Textauszeichnung ermöglichen. Durch diese DTD soll auch Webautoren, die noch nicht logische Strukturierung und Präsentation voneinander trennen, die Möglichkeit gegeben werden, standardkonformes HTML zu schreiben. Gleichzeitig soll sie sicherstellen, dass bestehende Webseiten weiterhin durch aktuelle Webbrowser angezeigt werden können.
Frameset
Diese Variante enthält zusätzlich zu allen Elementen der Transitional-Variante noch die Elemente für die Erzeugung von Framesets.
Zukunft der Varianten
Mit XHTML 1.1, der neuesten Version von HTML, verzichtet das W3-Consortium wieder auf die Unterscheidung und führt lediglich die Strict-Variante als „reine Lehre“ weiter. Dies setzt sich auch im momentan (2005) im Entwicklungsstadium begriffenen XHTML 2.0 fort.
Elemente, die bislang nur in den Varianten Transitional und Frameset vorkamen, werden beinahe alle entfallen. Entsprechende Effekte müssen dann durch CSS, Javascript, XFrames oder andere Methoden erreicht werden, da sie zur logischen Textauszeichnung nicht notwendig sind.
Ein Attribut, das aus der Transitional-Variante voraussichtlich den „Sprung“ in XHTML 2.0 schafft, ist das „value“-Attribut bei nummerierten Listenpunkten, das erlaubt, die Nummer des Listenpunktes selbst festzulegen.
Zusatztechniken und Weiterentwicklungen
Stylesheets
Im Laufe der Jahre ist HTML um Elemente erweitert worden, die sich mit der Gestaltung des Dokuments befassen, was der ursprünglichen Idee der Systemunabhängigkeit entgegen lief. Eine Rückbesinnung auf die Trennung von Inhalt (Struktur) und Layout wurde durch die Definition von CSS vorgenommen. So soll das Aussehen des Dokuments in einer separaten Datei, dem sogenannten Stylesheet, festgelegt werden. Dies verbessert die Anpassungsfähigkeit des Layouts an das jeweilige Ausgabegerät und an spezielle Bedürfnisse der Benutzer, z.B. von Sehbehinderten. Heutzutage ist die CSS-Unterstützung der Browser ausreichend, um damit eine anspruchsvolle Gestaltung zu realisieren.
Dynamisches HTML
Schon sehr früh in der Geschichte von HTML wurden Zusatztechniken erfunden, die es ermöglichen, HTML-Dokumente während der Anzeige im Browser dynamisch zu verändern. Die gebräuchlichste ist JavaScript. Man spricht bei solchen interaktiven Dokumenten von dynamischem HTML. Diese Techniken wurden von verschiedenen Browser-Herstellern, allen voran Microsoft und Netscape, unabhängig voneinander entwickelt. Daher gab es erhebliche Probleme bei der Umsetzung der Techniken zwischen den verschiedenen Browsern. Mittlerweile interpretieren alle verbreiteten JavaScript-fähigen Browser das Document Object Model (DOM). Dadurch ist es möglich, in allen Browsern lauffähige Skripte zu schreiben. Es gibt jedoch noch immer Differenzen bei der Unterstützung des DOM-Standards.
XML
Mittlerweile wurde die letzte Version des HTML-Standards (HTML 4.01) in der MetaspracheXML neu formuliert. Das daraus entstandene XHTML 1.0 genügt den im Vergleich zu SGML strengeren syntaktischen Regeln von XML, ist aber in seinen drei DTD-Varianten semantisch mit der jeweils entsprechenden DTD-Variante von HTML 4.01 identisch.
Aktuell liegt der XHTML-Standard in der Version 1.1 vor, der eine zusätzliche Modularisierung der Elemente einführt.
Als zukünftiges universelles Format wird zunehmend XML selbst eingesetzt. Dieses arbeitet ebenfalls mit Tags, die jedoch per Dokumenttypdefinition sehr restriktiv eingesetzt werden können. XML ermöglicht somit ein selbstbeschreibendes Datenmodell. Zur Umwandlung von in XML gespeicherten Daten in die entsprechenden Anzeigeformate (z.B. XHTML) kann die Stylesheet-Sprache XSL Transformation verwendet werden.
Falsche Interpretation von Webdokumenten
Die verbreiteten Browser folgen bei der Auswertung von HTML nicht ganz dem Standard. Dies zwingt Webautoren dazu, ihre Dokumente in verschiedenen Browsern zu testen und gegebenenfalls anzupassen. Eine solche Anpassung an die Gegebenheiten auf der Leserseite ist zwar durchaus von Vorteil, aber häufig kommt es zu schwer umgehbaren Fehlinterpretationen. Durch die wohlüberlegte Verwendung von strukturierendem HTML kann immerhin gewährleistet werden, dass ein Webdokument in jedem Fall zumindest grundlegend zugänglich und lesbar ist.
Der am weitesten verbreitete Webbrowser, der Internet Explorer, ist gutmütig und lässt so manchen Fehler durchgehen, hat jedoch insbesondere in CSS-Belangen einige Defizite, welchen Rechnung zu tragen ist. Die Browser mit Gecko-Engine (darunter Mozilla und Mozilla Firefox), Opera, Safari und Konqueror haben hier am wenigsten Probleme, tolerieren Codefehler jedoch weniger.
HTML lernen
SELFHTML ist ein deutschsprachiges und sehr umfangreiches Projekt, das für viele Themen rund um HTML Referenzmaterial bietet.
Die Lektüre einer modernen linearen Einführung (siehe Weblinks) und die Handarbeit direkt in einem Texteditor ist empfehlenswert, um HTML richtig zu verstehen und voll auszunutzen.
Für schnelle Erstellen von Webseiten ohne tiefere HTML-Kenntnis mag der Gebrauch eines so genannten WYSIWYG-Editors zunächst genügen. Diese Editoren produzieren einen HTML-Code, der die optischen Vorstellungen weitestgehend widerspiegelt. Allerdings wird die strukturelle und logische Auszeichnung, die dem Text erst einen echten Mehrwert gibt, dabei vernachlässigt. Diese erfordert ein gutes Verständnis von HTML, das ein WYSIWYG-Editor nicht ersetzen kann. Hinzu kommt, dass diese Editoren gelegentlich ungültiges HTML produzieren, was die Darstellung des Dokuments von der Fehlertoleranz des Webbrowsers abhängig macht. In der professionellen Webgestaltung werden solche HTML-Editoren daher häufig nur als zusätzliches Hilfsmittel benutzt, um etwa das Grundgerüst von Webseiten zu erstellen. Die Feinarbeit erfolgt dann in einem Texteditor direkt am HTML-Code.
- Stefan Mintert (Hrsg.): XHTML, CSS & Co. Die W3C-Spezifikationen für das Web-Publishing. Addison-Wesley, München 2003, ISBN 3-827318-726
- Mark Lubkowitz: Webseiten programmieren und gestalten - HTML, CSS, JavaScript, PHP, Perl, MySQL, SVG und Newsfeeds, mit CD. Galileo Press, Bonn 2004, ISBN 3898425576
Weblinks
- [http://www.w3.org/MarkUp/historical Einige Notizen zum Ursprung von HTML] (englisch)
- [http://www.w3.org/MarkUp/ Webpräsenz des Standardisierungsgremiums W3C] (englisch)
- HTML-Standards: [http://www.w3.org/TR/WD-html2/ 2.0], [http://www.w3.org/TR/REC-html32 3.2], [http://www.w3.org/TR/1998/REC-html40-19980424/ 4.0], [http://www.w3.org/TR/html4/ 4.01] (englisch)
- [http://www.edition-w3c.de/ edition W3C.de] Die W3C-Spezifikationen in deutscher Übersetzung und Kommentierung
- [http://de.selfhtml.org/ SELFHTML] Ausführliches Tutorial und Dokumentation
- [http://www.htmlwiki.de/ HTMLWiki] Ein Wiki über HTML und Webauthoring
- [http://www.lingo4u.de/article/checklist/ Checkliste für Webstandards]
- [http://validator.w3.org/ W3C-Validator] zur Überprüfung der syntaktischen Richtigkeit eines HTML-Dokuments (englisch)
- [http://uitest.com/en/analysis/ Verschiedene nützliche Testwerkzeuge], [http://uitest.com/en/check/ Site Check] (englisch)
Kategorie:BeschreibungssprachenKategorie:DatenformatKategorie:Web-Entwicklung!ja:Hypertext Markup Languageko:HTMLsimple:HTMLth:HTML
TEI
Die Text Encoding Initiative (TEI) ist eine 1987 gegründete Organisation (das TEI-Konsortium) und ein gleichnamiges Dokumentenformat zur Kodierung und den Austausch von Texten,
das diese entwickelt hat und weiterentwickelt.
Das Format basiert auf SGML (inzwischen XML) und ist in einer Dokumenttypdefinition (DTD) festgelegt.
TEI hat sich zu einem de-facto-Standard innerhalb der Geisteswissenschaften entwickelt, wo es zum Beispiel zur Kodierung von gedruckten Werken (Editionswissenschaft) oder zur Auszeichnung von
sprachlichen Informationen (Linguistik) in Texten verwendet wird.
Die TEI-Version "P3" wurde 1994 verabschiedet und ist 2002 durch die XML-Version "P4" abgelöst worden.
Gleichzeitig gibt es die Version TEI lite mit einem abgespecktem Umfang an Elementen.
Die TEI-DTD ist aus verschiedenen sachbezogenen Modulen aufgebaut,
die beispielsweise Elemente für die Dokumenstruktur, zur Auszeichnung
von Gedichten und Dramen, zur Markierung einzelner Zeilen und Seiten,
für Tabellen, für kritische Anmerkungen oder für Sprachkorpora, Terminologien und Wörterbücher enthalten.
Siehe auch: Ebind, EAD
Die Mathematical Markup Language (MathML) ist im Computer-Datenverkehr ein Dokumentenformat zur Darstellung von mathematischen Formeln und komplexen Ausdrücken. Der Standard MathML 2.0 wird durch eine Spezifikation des World Wide Web Consortium von 2001 festgelegt.
Wie in allen XML-Sprachen (z. B. XHTML) werden in MathML die Inhalte eines Dokumentes in einer logischen Struktur unabhängig von ihrer graphischen Gestaltung abgelegt.
MathML wird von aktuellen Browsern derzeit kaum unterstützt. Lediglich Browser, welche die aktuelle Gecko Rendering Engine verwenden, unterstützen wichtige Teile von MathML. Für den Internet Explorer existiert das MathPlayer-Plug-In.
Unter Mathematikern und anderen interessierten Benutzern gilt MathML für die manuelle Editierung als unhandlich, sodass nur Programme zur Generierung zum Einsatz kommen. Durch die Syntax lässt es sich nur schwer bzw. gar nicht durch CSS formatieren. Daher wird zur Erstellung mathematischer Dokumente häufig auf das altbewährte Textsatzsystem LaTeX gesetzt. Andererseits kommen zusehends Programme auf den Markt, die auf Basis von MathML Formeln beschreiben.
Über die mathematische Formelbeschreibung hinaus geht OpenMath, ein Standard, der die zu Grunde liegende Semantik beschreibt.
Weblinks
- [http://www.w3.org/TR/MathML2/ Offizielle Spezifikation von MathML 2.0] (Englisch)
- [http://www.dessci.com/en/products/mathplayer/ MathPlayer] (Englisch)
- [http://www.mozilla.org/projects/mathml/ Mozilla Editor/Browser]
- [http://www.w3.org/Amaya/ Amaya Editor/Browser]
- [http://www.w3.org/Math/Software/mathml_software_cat_editors.html aktuelle Software die MathML bearbeitet]
- [http://www.linkwerk.com/pub/math/test.math Kleiner MathML-Test]. Die Seite benutzt den Dokumenttyp "XHTML 1.1 plus MathML 2.0 plus SVG 1.1" gemäß W3C-Definition, sowie den entsprechenden MIME-Typ "application/xhtml+xml". Browser, die das nicht beherrschen, können den [http://www.linkwerk.com/pub/math/mathtest.png Screenshot] der Seite darstellen.
Kategorie:BeschreibungssprachenKategorie:Datenformatja:MathML
Scalable Vector Graphics (SVG) ist eine Sprache zur Beschreibung zweidimensionaler Vektorgrafiken in XML.
SVG wurde im September 2001 vom W3C als Empfehlung eingestuft und wird von der nächsten Generation der gebräuchlichen Webbrowser größtenteils nativ unterstützt. Zur Zeit wird dazu oft ein Plugin wie z. B. der SVG-Viewer von Adobe benötigt.
SVG unterstützt mittels SMILAnimationen. Manipulationen des SVG-DOM sind mit Hilfe eingebetteter Funktionen via Skriptsprachen möglich.
Da SVG eine XML-Anwendung ist, kann diese mit einem Texteditor geöffnet und bearbeitet werden und wie jedes andere Dateiformat von geeigneten Programmen geöffnet werden, z. B. die freien Vektorgrafik-Programme Sodipodi und Inkscape, die es als ihr natives Datenformat einsetzen. Eine SVG-Datei besitzt die Dateiendung.svg bzw. .svgz, wenn diese mit gzip komprimiert ist.
SVG-Grundstrukturen
Grundgerüst
Jede SVG-Datei beginnt, wie bei XML-basierten Sprachen üblich, mit der XML-Deklaration und der Dokumenttypdeklaration, die den benutzten Namensraum beschreibt. Dazu wird bei Letzterem ein Verweis auf die entsprechende DTD-Datei eingefügt. Darauf folgt das Start-Tag "<svg>". Die SVG-Datei wird durch das abschließende End-Tag "</svg>" abgeschlossen.
Mit den Attributen "width" (engl.: Breite) und "height" (engl.: Höhe) des SVG-Starttags "<svg>" wird die Größe des Ausgabebildschirms definiert.
Graphische Primitiven
Alle graphischen Objekte in SVG bauen auf einfachen graphischen Grundelementen auf. Komplexere Objekte sind dabei aus mehreren einfachen Objekten zusammengesetzt.
Pfad
Der Pfad ist das eigentliche Grundelement in SVG. Aus ihm können alle anderen Objekte (Kreise, Rechtecke, Polygone etc.) aufgebaut werden. Da das aber teilweise sehr umständlich ist, hat man diese häufigen Formen extra mit eigenen Beschreibungen versehen, die im Anschluss aufgeführt werden.
Der Pfad wird im Attribut (d) entweder durch Koordinatenpaare (absolut) oder durch Vektoren (relativ) beschrieben. Großbuchstaben werden von Koordinaten gefolgt, Kleinbuchstaben von Vektoren. Diese Koordinaten und Vektoren geben die Anweisung wie der Pfad gezeichnet werden soll.
- M/m - moveto = Stift dorthin bewegen
- L/l - lineto = mit Stift dorthin zeichnen
- Q/q - quadratische Bézierkurve (zwei Wertepaare: ein Stützpunkt, ein Zielpunkt)
- C/c - kubische Bézierkurve (drei Wertepaare: zwei Stützpunkte, ein Zielpunkt)
Beispiel:
Der absolut beschriebene Pfad...
ist identisch mit dem relativen
Für horizontale und vertikale Linien existiert eine entsprechend vereinfachte Notation, für Ellipsen und Kreise ist eine spezielle Notation mit sieben Werten erforderlich.
- H/h - horizontal line = horizontale Linie zeichnen (X-Wert)
- V/v - vertical line = vertikale Linie zeichnen (Y-Wert)
- A - elliptical arc = Bogenkurve
Kreis
Der Kreis wird mindestens durch den Radius (r) definiert. Optional kann die Position des Mittelpunktes durch die Atribute cx und cy festgelegt werden. Füllung, Art der Umrisslinie oder Transparenz werden durch das Attribut style definiert.
Ellipse
Die Ellipse wird durch die zwei Halbachsenradien definiert (rx und ry). Alle anderen Attribute sind die gleichen wie beim Kreis.
Rechteck
Ein Rechteck kann auf nur eine konforme Art definiert werden. Diese Möglichkeit ist die Beschreibung durch die obere linke Ecke mit den Koordinaten (x und y) und die Breite (width) und Höhe (height).
Möchte man die Ecken des Rechtecks abrunden, kann man das mit Hilfe der Attribute (rx und ry) bewerkstelligen.
Linie
Eine einfache gerade Linie wird durch die beiden Endpunkte in SVG beschrieben.
Polyline
Um eine Linie über mehrere Stützpunkte zu definieren, benutzt man die Beschreibung als Polylinie. Dabei werden die einzelnen Koordinatenpaare der Stützpunkte einfach fortlaufend hintereinander geschrieben. Die Linie wird von ersten Punkt aus zum zweiten gezogen und von dort weiter zum dritten Stützpunkt und so weiter.
Polygon
Ein Polygon (Vieleck) wird durch seine Eckpunkte beschrieben. Wie bei der Polyline werden auch hier alle Koordinatenpaare einfach hintereinander geschrieben.
Text
Zeichen und Text können mit Hilfe des Elements <text> definiert werden.
Hallo Welt!
Beispiel
Text
Ein kleines Beispiel illustriert die Verwendung der einzelnen Elemente gut. Das rechts dargestellte Bild Variable Resistor.svg hat den folgenden kommentierten Quelltext:
Des Weiteren gibt es eine Betaversion des Adobe SVG-Viewers in der [http://www.adobe.com/svg/viewer/install/beta.html Version 6] (Preview 1, mit Datum Juli 2003), die eine verbesserte Standards-Unterstützung und auch Verbesserungen in der Integration in Mozilla Firefox beinhaltet.
Das Projekt scheint jedoch seit Sommer 2003 angehalten zu sein.
Grafische Effekte
Bekannte Grafikfilter sind aus DTP-Programmen übernommen worden und arbeiten nach dem Matrizen-Prinzip, bei dem Operatoren und Funktionen die Form der Matrix ausdrücken. Es wird grob gesagt jedes einzelne Pixel mit dem definierten Filtereffekt berechnet und auf das nächste übertragen. Auf diese Weise lassen sich Bilder und Grafiken auf verschiedenste Art und Weise verarbeitet werden.
Einige der möglichen Filter:
- feTurbulence
- feDisplacement
- feGaussianBlur
Konferenzen
Die SVG Open ist eine internationale Konferenz, die sich mit allem rund um das Thema SVG beschäftigt. Mittlerweile hat sie bereits vier mal stattgefunden.
- Zürich, Schweiz, 15.-17. Juli 2002
- Vancouver, Kanada, 13.-18. Juli 2003
- Tokio, Japan, 7.-10. September 2004
- Niederlande, Enschede, 15.-18. August 2005
Nächste SVG Open ist 2006 in Victoria_(Kanada).
Varianten
- Eine Variante von SVG ist das NEVA-Dateiformat (.nva), welches vor allem bei Sharp-Handys eingesetzt wird. Dieses Format ist platzsparender als unkomprimiertes SVG.
Literatur
- Marcel Salathé, SVG Scalable Vector Graphics, ...für professionelle Einsteiger, Verlag Markt+Technik, ISBN 3827261880
- [http://www.et.fh-merseburg.de/person/meinike/PDF/TMs-SVGLitRes.pdf Literatur und Ressourcen zu SVG (PDF-Datei)]
Latex (männlich, Mehrzahl:Latizes) oder Naturkautschuk ist der milchige Saft des tropischen Kautschukbaums (Hevea brasiliensis) und anderer Kautschuk liefernder Pflanzen. Viele höhere Pflanzen produzieren in ihren speziellen Zellen diese milchige Emulsion - deren Zusammensetzung sehr unterschiedlich sein kann, meistens als Schutz gegen Verletzungen oder Verbiss durch Fressfeinde (Insekten und höhere Tiere) - die meisten Latizes sind bitter, einige sogar giftig.
Naturlatex ist eine komplexe Emulsion aus Wasser und Polymeren: Unter anderem pflanzliche Gummis, Naturharze, Tannine, Alkaloide, Proteine, Stärke, Zucker und Fett. Meistens ist Latex weiss, es gibt aber auch gelbe, orange oder rote Latizes. Latexproduzierende Pflanzen sind unter Anderem: Maulbeergewächse, Chicorée, Wolfsmilchgewächse, Mohngewächse, Hundsgiftgewächse, Schwalbenwurzgewächse, Sapodillgewächse.
Latex aus Chiclegummi wird zur Kaugummiherstellung verwendet. Aus Latex von Akazien gewinnt man Gummi arabicum.
Heute wird Latex jedoch hauptsächlich synthetisch hergestellt. Synthetischer Latex besteht meist aus Styrol und Butadien, andere Rohstoffbasen sind Styrolacrylat, Reinacrylat, Vinylacetat. Die Hauptanwendungsgebiete sind Binder für die Papierstreicherei, die Teppichrückenbeschichtung sowie Tauchartikel wie dünne Handschuhe etc.
Zur Gewinnung von Latex wird die Rinde des Kautschukbaums v-förmig angeritzt, so dass die Flüssigkeit an einer Seite des Stamms heraustropft und dort in Behältern aufgefangen werden kann. Anschließend wird der Saft durch Verdampfung oder Zentrifugierung eingedickt und mit Ammoniak stabilisiert. Durch Vulkanisierung wird aus Kautschuk Gummi.
Latex kann in aufgeschäumter Form für Matratzen und Schwämme verwendet werden, aber auch in sehr dünnen Filmen für Kondome, Handschuhe oder Luftballons und in dickeren Filmen für die Herstellung von Abgussformen oder für Kleidungstücke. Bei Kontakt mit Sonnenlicht bzw. mit UV-Licht oder mit Fetten kann sich das Material auflösen.
Als Latex bezeichnet man auch die Emulsion aus flüssigem Kautschuk und Wasser - Grundlage für Latexfarben, auch unter der Sammelbezeichnung Dispersionsfarben bekannt.
Latex ist nicht atmungsaktiv und kann bei Hautkontakt zu allergischen Reaktionen wie Hautreizungen oder -schwellungen führen. Da heute in vielen Bereichen aus hygienischen Gründen häufig Handschuhe aus Latex getragen und wegen der AIDS-Gefahr Kondome verwendet werden, steigt die Zahl der Latex-Allergiker stark an. Man schätzt, dass 10 bis 17 Prozent des medizinischen Personals und etwa 3 Prozent der Gesamtbevölkerung in Deutschland allergisch auf Latex reagieren.
Kleidungsstücke und andere Artikel aus Latex, bzw. Gummi, Neopren oder ähnlichen Kunststoffen reizen die Haut und andere Sinne (Geruch, Optik) auf eine besondere Art (Wärme - Kälte, Feuchtigkeit, Betonung der Körperformen) und dienen somit dem Gummifetischismus.
Siehe auch:Guttapercha, Latexfarbe.
Kategorie:Organischer WerkstoffKategorie:Kunststoff
TeX
TEX ist ein von Donald E. Knuth entwickeltes Textsatzsystem mit eingebauter Makrosprache (die ebenfalls als TeX bezeichnet wird). Das 'X' ist eigentlich der griechische Buchstabe χ (Chi). Deshalb soll die Aussprache des Namens laut Knuth auch [] sein. Τεχνή ist griechisch und bedeutet auf Deutsch Kunst. Da dies im deutschsprachigen Raum eher schwierig auszusprechen ist, hat sich hier auch die Form [] eingebürgert, die sich an der Aussprache griechischer Lehnwörter orientiert.
TeX kann für alle Arten von Texten verwendet werden, vom kurzen Brief bis zu mehrbändigen Büchern.
Viele große wissenschaftliche Verlage nutzen es für den Buchdruck bzw. Werksatz.
Eine besondere Stärke ist der mathematische Formelsatz.
Technisch gesehen handelt es sich bei TeX um einen Interpreter, der ca. 300 fest eingebaute Befehle (sogenannte primitives) kennt und einen komplexen Mechanismus zur Definition eigener Makros bereitstellt. Der Textsatz erfolgt absatzweise, wobei nach einem raffinierten Optimierungsverfahren alle Zeilenumbrüche (inklusive Silbentrennung) im Absatz gleichzeitig bestimmt werden. Ein einfacherer Algorithmus bestimmt danach den optimalen Seitenumbruch. Die Optimierungsverfahren arbeiten mit Bewertungspunkten (penalties), anhand derer mögliche Umbruchspunkte bewertet werden. Zeilen- und Seitenumbruch werden von einer Vielzahl von Parametern, insbesondere Registern und elastischen Längen gesteuert, die auch im Dokument geändert werden können. TeX selbst kommt mit einem Minimum an Ressourcen aus und stellt nur die Grundfunktionen zur Verfügung.
TeX wird durch eine Vielzahl von Makropaketen ergänzt, die eine effiziente und komfortable Nutzung von TeX erst ermöglichen. Das bekannteste dieser Pakete ist das von Leslie Lamport entwickelte LaTeX. Darauf aufbauend gibt es Dutzende von Zusatzpaketen für alle erdenklichen Gebiete. Mit dem Paket hyperref lässt sich beispielsweise ohne großen Zusatzaufwand ein Hypertext erstellen, der die Navigation im Inhaltsverzeichnis und im Index in einem PDF-Leseprogramm ermöglicht. Ein anderes Makropaket ist ConTeXt, das im Gegensatz zu LaTeX mehr Funktionalität (wie Hypertext-Unterstützung) direkt eingebaut hat, für das es aber weniger Zusatzpakete gibt. Das Programm BibTeX ermöglicht die Erstellung und Verwaltung von Literaturangaben und Referenzen in TeX-Texten.
Die Definition des Befehlsumfanges von TeX steht seit 1985 fest. Knuths Anliegen war es, ein qualitativ hochstehendes Programm zu schaffen; das Programm wird als abgeschlossen betrachtet, es finden nur noch Fehlerkorrekturen statt, und die Versionsnummer strebt gegen Pi. Weniger bekannt ist, dass Knuth ein beständiges System schaffen wollte (siehe Abschnitt unten).
Beispiel
Das folgende Beispiel zeigt die Schritte, um in plain TeX Text zu setzen.
Zuerst wird eine Textdatei (zum Beispiel "Text.tex") mit dem folgenden Inhalt erstellt:
Hallo
\bye
Der zu setzende Text ist in diesem Fall "Hallo".
"\bye" ist ein TeX Befehl, der das Ende der Datei angibt und auf der Ausgabe nicht erscheint.
Danach gibt man in einem Kommandozeileninterpreter den Befehl
tex Text.tex
ein. TeX erzeugt die Datei "Text.dvi" ("dvi" steht für "device independent", also "geräteunabhängig").
Die "Text.dvi" Datei kann (etwa mit dem "yap"-Programm der MiKTeX Distribution, oder mit "xdvi" unter UNIX) auf dem Bildschirm dargestellt werden. Auf dem Bildschirm erscheint eine Druckseite mit dem Wort "Hallo".
Die "dvi"-Datei kann direkt vom Anzeigeprogramm aus ausgedruckt werden oder in ein Druckerformat (etwa PostScript, mit dem "dvips"-Programm) umgewandelt werden.
Mit pdftex bzw. pdflatex können direkt PDF-Dateien erzeugt werden.
pdftex Text.tex
Die Stärke von TeX liegt darin, dass für viele übliche Dokumente bereits Muster vorliegen, die man verwenden kann.
LaTeX ist eine Sammlung von Makros, die in der Sprache TeX geschrieben sind.
Das Beispiel skizziert wie die minimale Struktur für ein Buch aussehen kann.
\documentclass[a4paper]
\usepackage[T1]
\usepackage[latin1]
%%
\begin
\chapter
\subsection
%% Hier Text
\end
Um das Buch zu setzen ist auf der Kommandozeile folgendes aufzurufen.
latex myfile.tex // erzeuge dvi
dvips myfile.dvi // erzeuge ps aus dvi
pdflatex myfile.tex // erzeuge pdf
Der erste Befehl erzeugt eine geräteunabhängige Datei (dvi steht für device