Internationalisierung digitaler Schriften



Ähnliche Dokumente
Kapitel 3. Codierung von Text (ASCII-Code, Unicode)

Gliederung. Was ist der Unicode? Warum gibt es den Unicode? Wie funktioniert er? Wo ist mein Schriftzeichen? Kritische Stimmen

Zahlensysteme: Oktal- und Hexadezimalsystem

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Primzahlen und RSA-Verschlüsselung

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

SDD System Design Document

Binärdarstellung von Fliesskommazahlen

Sie werden sehen, dass Sie für uns nur noch den direkten PDF-Export benötigen. Warum?

SANDBOXIE konfigurieren

Grundlagen der Informatik

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

4D Server v12 64-bit Version BETA VERSION

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

1 Mathematische Grundlagen

Im Original veränderbare Word-Dateien

4 Aufzählungen und Listen erstellen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

GRAF-SYTECO. Handbuch. Zeichensatzgenerator für AT-Geräte. Erstellt: November SYsteme TEchnischer COmmunikation

IAWWeb PDFManager. - Kurzanleitung -

Erstellen einer PostScript-Datei unter Windows XP

Task: Nmap Skripte ausführen

Netzwerkeinstellungen unter Mac OS X

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Dokumentation von Ük Modul 302

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Professionelle Seminare im Bereich MS-Office

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Run Length Coding und Variable Length Coding

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Datensicherung. Beschreibung der Datensicherung

Erklärung zum Internet-Bestellschein

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

auf den E-Book-Reader

Carolo Knowledge Base

Facharbeit Informatik. Thema:

Barrierefreie Webseiten erstellen mit TYPO3

Leichte-Sprache-Bilder

Einfache kryptographische Verfahren

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Grundbegriffe der Informatik

Dokumentation IBIS Monitor

Robot Karol für Delphi

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Thema: Microsoft Project online Welche Version benötigen Sie?

Abschluss Version 1.0

Schritt-Schritt-Anleitung zum mobilen PC mit Paragon Drive Copy 10 und VMware Player

In 15 Schritten zum mobilen PC mit Paragon Drive Copy 11 und VMware Player

Arbeiten mit den Mastercam Werkzeug-Managern

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Windows 8 Lizenzierung in Szenarien

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Jederzeit Ordnung halten

2. Word-Dokumente verwalten

Grundfunktionen und Bedienung

Single User 8.6. Installationshandbuch

12. Dokumente Speichern und Drucken

auf den ebook-reader Ausleihen und Nutzen von ebooks auf einem ebook-reader

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Zwischenablage (Bilder, Texte,...)

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

1 Dokumentenmanagement

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Software Engineering Klassendiagramme Assoziationen

Der Einsatz von Open-Source-Produkten im Unternehmen, dargestellt am Beispiel von OpenOffice

Netzwerk einrichten unter Windows

Grundlagen der Informatik I Informationsdarstellung

Stapelverarbeitung Teil 1

Lizenzierung von System Center 2012

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

10.1 Auflösung, Drucken und Scannen

OPERATIONEN AUF EINER DATENBANK

SICHERN DER FAVORITEN

Kurzskript Literaturverzeichnis Microsoft Office Word 2010

Tutorial Windows XP SP2 verteilen

Schritt 1 - Registrierung und Anmeldung

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

GITS Steckbriefe Tutorial

PowerPoint 2010 Mit Folienmastern arbeiten

impact ordering Info Produktkonfigurator

Neue Schriftarten installieren

Zeichen bei Zahlen entschlüsseln

Anleitung zur Verwendung der VVW-Word-Vorlagen

3. GLIEDERUNG. Aufgabe:

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Wie Sie mit Mastern arbeiten

Die Excel Schnittstelle - Pro Pack

Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

Outsourcing und Offshoring. Comelio und Offshoring/Outsourcing

PowerPoint: Text. Text

Online Newsletter III

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Transkript:

Internationalisierung digitaler Schriften mit OpenType am Beispiel der indischen Schrift Devanagari Leipzig, 1. März 2007 Hochschule für Technik, Wirtschaft und Kultur (FH) Fachbereich Medien Studiengang Verlagsherstellung Matrikel 2001 eingereicht von: Ivo Zibulla * 21. Juli 1980 in Leipzig Hardenbergstraße 52 04275 Leipzig Telefon: 0179 2174621 E-Mail: iz@ungestalt.de Betreuer: Prof. Dr. rer. pol. Ulrich Nikolaus Gutachter: Prof. Dr. Ing. Jörg Bleymehl

Abb. 0 Straßenzug im Zentrum von Varanasi, Uttar Pradesh, Indien. Sie wird als»die Stadt Shivas«bezeichnet und ist eine der ältesten Städte der Welt die Wiege der indischen Weisheit. eigene Abb., 2005.

Verzicht In dieser Arbeit wird auf etwa bestehende Patente, Gebrauchsmuster oder Warenzeichen nicht gesondert hingewiesen. Wenn ein solcher Hinweis fehlt, heißt dies also nicht, dass eine Ware oder ein Warenname frei sei. Erklärung Hiermit versichere ich die vorliegende Arbeit selbstständig und ohne fremde Hilfe verfasst zu haben. Alle verwendeten Quellen sind als solche kenntlich gemacht und im Anhang ausgewiesen.............................. Ivo Zibulla, Leipzig, 1. März 2007

inhaltsverzeichnis Abkürzungsverzeichnis................................. 6 1 einleitung 8 11 1.1 Autorenreferat................................ 8 1.2 Ziel der Arbeit................................ 8 1.3 Aufbau der Arbeit.............................. 9 1.4 Begriffseinführung und -abgrenzung.................. 10 2 schriftformate 12 20 2.1 Beschreibung der Zeichen........................ 13 2.2 PostScript.................................. 15 2.3 TrueType.................................. 17 2.4 OpenType.................................. 18 2.5 Exkurs: Weitere Formate........................ 19 3 zeichenkodierung 21 30 3.1 Begriffseinführung............................ 22 3.2 Zeichenkodierungsstandards...................... 23 3.3 Kodierungsmechanismen im Font.................... 26 4 devanagari 31 39 4.1 Alphabet.................................. 32 4.2 Struktur und Satzregeln......................... 36 4.3 Zusammenfassung.............................39 5 zeichenkodierung indischer schriften 40 54 5.1 ISCII 91.................................. 41 5.2 Devanagari in Unicode.......................... 43 5.3 Exkurs: Weitere Standards in Entwicklung.............. 54 6 schriftverarbeitung 55 67 6.1 Konventionelle Schriftverarbeitung................... 56 6.2 OpenType Layout Model......................... 56 6.3 Zusammenfassung............................ 67

7 produktion eines fonts für devanagari 68 80 7.1 Methodik.................................. 69 7.2 Fontproduktion.............................. 69 8 schlussbetrachtungen 81 83 8.1 Erkenntnisse................................ 81 8.2 Ausblick................................... 82 9 anhänge 85 91 9.1 Spezifikationen.............................. 84 9.2 Features for devanagari script...................... 84 9.3 Literaturverzeichnis............................ 88 9.4 Thesen................................... 91 Danksagung...................................... 92

abkürzungsverzeichnis / glossar AGL Adobe Glyph List ANSI American Nation Standards Institute API Application Programming Interface sind Schnittstellendefinitionen, die vom Betriebssystem- oder Applikationshersteller zur Verfügung gestellt werden. Mit ihnen kann ein Programmierer System- oder Anwendungsfunktionen direkt ansprechen und für seine Zwecke nutzen ASCII American Standard Code for Information Interchange ATSUI Apple Type Services for Unicode Imaging BIOS Basic Input/Output System BMP Bitmap Picture CCS Coded Character Set CDAC Centre for Development of Advanced Computing CD-ROM Compact Disk Read-Only Memory CEF Character Encoding Form, Zuordnung des CCS zu einer Binärzahl (Code Unit) CES Character Encoding Scheme, Regeln, wie CEF auf Byte- Blöcke verteilt werden Character Repertoire Zeichenvorrat eines Codes Charset Kombination aus CCS und CES Code Number Eindeutige, nicht-negative Ganzzahl, die die Position eines Zeichens in einem Codesystem festlegt Code Unit Binärzahl der Code Number Coded Character Set Zuordnungsregelwerk Code Number zu Character Repertoire CP Codepage CPU Central Processing Unit DLL Dynamic Link Library DTP Desktop Publishing DPI dots per inch Ausgabeauflösung eines Druckers EBCDIC Extended Binary Coded Interchange Code EDV Elektronische Datenverarbeitung EPS Encapsulated PostScript HEX Hexadezimal IPA International Phonetic Alphabet IBM PC International Bureau Machines Personal Computer ISO International Standardardization Organisation IT Information Technology MS Microsoft OS Operating System OT OpenType OTF OpenType-Font PDF Portable Document Format PS PostScript PT Punkt Grundmaßeinheit in der Typografie: Didot 1 pt = 0,375 mm; DTP 1 pt = 0,35277 mm; Pica 1 pt = 0,35147 mm;

RTF Rich Text Format SDK Software Developer Kit enthält wichtige programm - spezifische APIs, die zur Programmierung von Zusatzprogrammen für das Softwareprodukt nötig sind TCP/IP Transmission Control Protocol/Internet Protocol TDIL Technology Department of Indian Languages TTF TrueType-Font UCS Universal Character Set UI User Interface Unicode Universeller Standard zur Kodierung aller Zeichen der Welt URL Uniform Resource Locator US-ASCII United States of America Standard Code for Information Interchange UTF Universal Text Format Windows NT Windows New Technology WYSIWYG What You See Is What You Get

1 einleitung 1.1 autorenreferat Die Fähigkeit, Wissen niederzuschreiben und somit leichter zugänglich und beliebig reproduzierbar zu machen, ist eine Grundvoraussetzung für Fortschritt in Wissenschaft und Kultur. Anfangs wurde das Wissen auf Steintafeln und Tierhäuten, dann auf Schriftrollen und Büchern niedergeschrieben. Mitte des 20. Jahrhunderts kam ein völlig neues Werkzeug zur Schaffung und Konservierung von Wissen hinzu: der Computer. Die Entwicklung der Informationstechnik begann in den USA und Westeuropa und lief dabei simultan bei verschiedenen Forschungsgruppen und Firmen ab. Somit wurden bis Anfang der neunziger Jahre des letzten Jahrhunderts verschiedene, unabhängige und leider oft zueinander inkombatible Fontkonzepte entwickelt, um die lateinische Schrift auf Rechnern darstellen zu können. Nun benutzen andere Völker verschiedene, z. T. wesentlich kompliziertere Schriftsysteme, um ihre Sprachen abzubilden. Erwähnt seien hier beispielsweise: das chinesische Silbenalphabet mit seinen zehntausenden Zeichen (Kanji) oder die von rechts nach links geschriebene arabische Schrift, deren Schriftzeichen je nach Position im Wort ihr Aussehen ändern. Mit der zunehmenden Globalisierung und der damit verbundenen neuen Absatzmärkte in Asien wurde es für die großen IT-Konzerne notwendig, mächtigere und gleichzeitig flexiblere Schriftformate zu ersinnen. Ein Ergebnis dieser Anstrengungen soll Untersuchungsgegenstand dieser Arbeit sein. 1.2 ziel der arbeit Es soll zum einen der Versuch unternommen werden, einen Leitfaden zur Produktion eines Fonts für komplexe Schriften zu erstellen. Als beispielhaftes Schriftsystem wird das nordindische Devanagari verwendet. Es wird versucht, die unterschiedlichen, für das Verständnis notwendigen Fachrichtungen miteinander zu verbinden. Die Sprachwissenschaft beschreibt dabei präzise die Eigenschaften und Anforderungen der indischen Schrift; die Informatik liefert notwendige Technologien und Kodierungsmodelle, um diese Eigenschaften maschinenverständlich zu transformieren. Als weiteres Ziel wird in dieser Arbeit das auf Unicode basierende Fontformat OpenType auf seine Tauglichkeit zur Umsetzung einer komplexen Schrift hin untersucht, im Zusammenhang mit den weiteren Komponenten des OpenType Layout Models von Microsoft erläutert und abschließend, untermauert mit den Ergebnissen einer Fontanalyse des Devanagari-Fonts Mangal, in einer schrittweisen Abhandlung der Produktion eines Fonts angewendet. 8 Kapitel 1 Einleitung

1.3 aufbau der arbeit Am Anfang eines Kapitels werden die notwendigen Informa tionen geliefert. Zusätzliche Informationen, die einer horizontalen Erweiterung des Fachwissens dienen, folgen ggf. als Exkurse. Dieser Einführung sowie einer Definition grundlegender Begriffe folgt der Theorieteil. Dabei wird zuerst das Konzept Schriftformat wie also das Schriftzeichen vom Papier aus seiner analogen (auf dem Papier befindlichen) in die digitale Form (auf Datenspeichern und Sichtgeräten) gebracht wird und wie diese Informationen geordnet und gespeichert werden anhand der»konkurrierenden«ansätze PostScript und TrueType vorgestellt und erläutert. Das für die Darstellung von komplexen Schriften weiterentwickelte Format OpenType wird eingeführt. Ein Alphabet wird i.d.r. von unterschiedlichen Sprachen verwendet. Demzufolge musste ein Ansatz ersonnen werden, der den Computern ermöglicht, je nach Sprachumgebung und Anwendung die Zeichen des Alphabets entsprechend den sprachlichen Anforderungen zuzuordnen. Dieser Ansatz, Zeichenkodierung genannt, sowie die dafür entwickelten nationalen und internationalen Standards werden im dritten Kapitel erläutert. Um nun die beiden vorangegangenen Kapitel auf die indischen Schriften (als Beispiel komplexer Schriften) beziehen zu können, muss erst einmal eine solche eingeführt werden. Das nordindische Alphabet Devanagari wird in Herkunft und Eigenschaften betrachtet. Die einzelnen Zeichen und die besondere Syntax der indischen Schriftsysteme wird an ihm exemplarisch genau beleuchtet, da diese Syntax die Grundvoraussetzung für das Verständnis der nachfolgenden Kapitel ist. Nun ist es möglich, das Thema Zeichenkodierung noch einmal speziell in Bezug auf Devanagari zu beleuchten. Dabei wird sowohl der nationale indische Standard ISCII, der die Kodierung von indischen Schriften definiert, als auch das z. T. darauf basierende Unicode zurate gezogen. Die der Devanagari schrifteigene Syntax wird in Unicode durch so genannte Rendering Rules exakt beschrieben. Nachdem sprachliche Anforderungen formuliert und das Schriftformat sowie die -kodierung geklärt sind, werden die weiteren Bestandteile des Schriftverarbeitungsprozesses kurz erwähnt und im Zusammenspiel gezeigt. Die stufenweise Betrachtung des Prozesses folgt. Dieser unterscheidet sich bei komplexen Schriften von dem einfacher Schriften durch zusätzliche Eingriffe in den Datenstrom. Das von Microsoft entwickelte OpenType Layout Model wird anhand von Beispielen vorgestellt und erklärt. Nun wird, nachdem die nötigen Kenntnisse vermittelt sind, ein Leitfaden für die Erstellung eines Devanagari-Fonts vorgeschlagen. Dieser wird dabei mit Bei spielen und Erkenntnissen aus einer Untersuchung des Fonts Mangal von Microsoft angereichert. Abschließend folgen Erkenntnisse, die ich während der Arbeit mit dem Thema gewonnen habe, sowie ein Ausblick. Weiterführende und zusätzliche Informationen finden sich in den Anhängen. 9 Kapitel 1 Einleitung

1.4 begriffseinführung und -abgrenzung 1.4.1 buchstabe, schrift, alphabet Buchstabe, engl. letter Grafisches Zeichen zur Wiedergabe von Sprachlauten. Ein Buchstabe kann als Zeichen für einen einzelnen Laut [...] und für mehrere Laute stehen; mehrere Buchstaben können als Zeichen für einen einzigen Laut stehen. [Brockhaus02 a] Schrift, engl. script Schrift ist ein System von grafischen Zeichen, die zum Zweck menschlicher Kommunikation verwendet werden. [Brockhaus02 b] Es ist eine eindeutige Sammlung von Zeichen, die zum Wiedergeben einer oder mehrerer Sprachen geeignet ist. [ISCII91] Alphabet, engl. alphabet Gesamtheit der Schriftzeichen eines Schriftsystems in ihrer herkömmlichen Anordnung. In indischen Schriften sind die Schriftzeichen nach lautlichen Gesichtspunkten angeordnet. [Brockhaus02 b] Komplexe Schrift, engl. complex script Im Artikel Windows Glyph Processing von Microsoft Typography definiert John Hudson komplexe Schriften folgendermaßen:»alle Schreibsysteme, die [im Schreib- bzw. Darstellungsprozess] bis zu einem bestimmten Grad eine Um- bzw. Neuordnung der Zeichen erfordern. Anders ausgedrückt ändern die Zeichen einer komplexen Schrift ihr Aussehen in Abhängigkeit der sie umgebenden Zeichen.«[Microsoft00] Beispiele hierfür sind: die arabische Schrift und die indischen Schriftsysteme. 1.4.2 begriffe der digitalen typografie Zeichen, engl. character Ein Zeichen ist»jede wahrnehmbare Gegebenheit [...], die mit einem bestimmten, wahrnehmbaren Bedeutungs- bzw. Informationsgehalt [...] auftritt.«[brockhaus02] Das ist aber unzureichend, da ein Zeichen wie è wiederum aus den Zeichen e und ` zusammengesetzt sein kann. Deshalb definiert der Unicode-Standard präziser: abstrakte Zeichen als»eine Informationseinheit, die zur Organisation, Kontrolle oder Wiedergabe von Textdaten«genutzt wird. [Unicode05] Im Rahmen digitaler Schrift»umfassen Zeichen [sogar] Buchstaben, Ziffern, Interpunktionszeichen, Lautmodifikationszeichen und sie können zudem Steuerfunktionen 1 übernehmen.«[iscii91] Zuletzt nennt die ISO 2 Zeichen auch eine»klasse von Glyphen«, da ein Zeichen durch beliebig viele Glyphen dargestellt werden kann. Ein Beispiel hierfür ist der Buchstabe A, der zwar in unterschiedlichen Schriftstilen formatiert sein kann, doch immer für den Vokal (a) steht. 1 Ein Kontrollzeichen hat normalerweise keine grafische Repräsentation, beeinflusst aber die Aufnahme, Verarbeitung, Übertragung oder Interpretation von Daten. Ein Beispiel: Unter interner Verwendung des ASCII-Codes kann der Computer Byte 3 (EXT) nutzen, um einen laufenden Prozess abzubrechen. [Czyborra98 A] 2 International Standardization Organisation 10 Kapitel 1 Einleitung

Glyphe, engl. glyph Ursprünglich meint Glyphe ein»mit Meißel od. Stichel eingegrabenes Zeichen [<grch. glyphein eingraben, einschneiden ]«([Wahrig04], S. 343). Typografie und Schriftherstellung definieren Glyphen leicht verändert als»[...] presentation of a particular shape which a character may have when rendered or displayed.«[korpela01] Zeichensatz, engl. font Ein nummeriertes Repertoire von Glyphen und die dazugehörigen Code- Positionen (Bytewerte). [Czyborra98 D] Er ist ein»kompletter Satz druckbarer Zeichen einer bestimmten Schriftart und -größe.«[brockhaus02 a] Die Begriffe Zeichensatz und Font werden in dieser Arbeit synonym verwendet, da der englische Begriff sich in der Fachsprache der deutschen Schriftentwickler etabliert hat. 1.4.3 begriffe derinformationsverarbeitung Bit und Byte Ein Bit ist eine binäre Ziffer; sie kann nur 2 1, also zwei Zustände haben: 0 oder 1. Ein Byte ist eine Folge von acht Bits und kann 2 8 = 256 mögliche Zustände annehmen. Das Byte wird vom Rechner intern als Einheit betrachtet und verarbeitet. [ISCII91] Die Formulierung Oktett (lat. octo = acht) wird äquivalent verwendet. [Czyborra98 D] Hexadezimale Ziffern Im Gegensatz zu dezimalen Ziffern, die zehn Werte von 0 bis 9 annehmen können, können hexadezimale Ziffern 16 Werte haben. Die Werte über neun werden mit den Buchstaben A bis F versehen. Um eine solche Ziffer zu kodieren, werden vier Bits benötigt. [ISCII91] Datei, engl. file Laut dtv-lexikon:»edv: geordnete Mengen maschinenlesbarer Daten auf Datenträgern (zum Beispiel Magnetbänder und -platten) oder in internen Speichern, die über einen D.-Namen angesprochen werden können und i. A. vom Betriebssystem der Datenverarbeitungsanlage verwaltet werden; sie können sowohl Programme als auch nur die zu verarbeitenden Daten enthalten.«[dtv99] Dateiformat, engl. file format Das Dateiformat eines Rechners legt die Art fest, wie die im Hauptspeicher als Bitfolgen abgelegten Daten bei der Bearbeitung durch ein Programm interpretiert werden sollen. Demnach bestimmt ein Dateiformat»Art und Aufbau einer Datei.«[Brockhaus02 b] 11 Kapitel 1 Einleitung

2 schriftformate Das folgende Kapitel soll grundlegende Informationen zur Art und Weise der digitalen Beschreibung und Speicherung von Schriftzeichen liefern. Da die Darstellung digitaler Schrift mit der Entwicklung der EDV-Systeme gewachsen ist, sind dabei im Laufe der Zeit unterschiedliche Ansätze entstanden. Um ein Zeichen auf einem Ausgabegerät wiedergeben zu können, muss es zuerst in einer maschinenverständlichen Form beschrieben und kodiert sein. Das geschieht über eine Konturbeschreibung, definiert in einer bestimmten Reihenfolge dem Format. Da es unterschiedlichste Typen von Ausgabegeräten 3 gibt, soll das Format geräteunabhängig sein. Das bedeutet einfach: Die Zeichenbeschreibung ist so neutral formuliert, dass jedes Ausgabegerät mit kleinstmöglichem Aufwand daraus seine gerätespezifische Art der Wiedergabe ableiten kann. Es soll zuerst kurz umrissen werden, wie man ein Zeichen überhaupt beschreiben kann. Das Format Bitmap wird aufgrund seiner früheren Bedeutung als Format zur Bildschirmdarstellung von Schriften erwähnt. Es werden die unterschiedlichen Ansätze der Formate PostScript Type 1 und TrueType vorgestellt. Daraufhin wird auf Type 1 und TrueType näher eingegangen, da sich diese beiden Formate auf dem Markt durchgesetzt haben. Der Jargon der digitalen Typografie nennt den Zeitraum von 1985 bis 1995 die Font Wars (den Krieg der Schriften 4 ), da IKARUS, PostScript und TrueType einen harten Konkurrenzkampf ausgetragen haben. Unterschiedliche Datenformate, Betriebssysteme und Kodierungsstandards haben dem Endanwender das digitale Schreiben schwer gemacht. Mitte der neunziger Jahre jedoch entwickelten die Konkurrenten Adobe und Microsoft einen gemeinsamen Standard, um PostScript und TrueType miteinander zu vereinen: OpenType. Die neuartigen Eigenschaften dieses Formates werden betrachtet und im Verlauf der Arbeit weiter vertieft (vgl. Kapitel 6). Ein abschließender Exkurs beschreibt drei weitere Schriftformate. 3 Karow unterteilt in Sichtgeräte (Monitore), Setzmaschinen (Drucker, Belichter) und CRT-Maschinen (Plotter, Graviersysteme u.ä.) ([Karow92 B], S. 21 ff) 4 Für einen ausführlichen Ausflug in den»krieg der Schriften«mit einem Vergleich der Vor- und Nachteile der Formate Type1 und TrueType ist der Artikel»TrueType, PostScript Type1, & OpenType: What s the Difference?«[Phinney02] von Thomas Phinney empfehlenswert. 12 Kapitel 2 Schriftformate

2.1 beschreibung der zeichen 5 2.1.1 bitmap-fonts Bitmap-Fonts sind Repräsentationen einer Schrift, oder besser Bilder einer Schrift. Sie besitzen eine Sammlung von speziell für bestimmte Auflösungen (z. B. 72 dpi eines Monitors 6 ) zugerichtete Glyphen in fester Größe (z. B. 12 pt). Diese Fonts funktionieren somit nur in den vordefinierten Bereichen. Eine Än derung der Schriftgröße führt zu einem Qualitätsverlust. 5 Eine Anmerkung vornweg: Zur tiefer gehenden Lektüre der Thematik Zeichenbeschreibung seien hierzu die beiden Bücher»Digitale Schriften«[Karow92 B] und»schrifttechnologie«[karow92 A] von Peter Karow, dem Mitentwickler des IKARUS- Formates sowie eine Sammlung von Aufsätzen zur digitalen Typografie [Hersch93] empfohlen. Weitere Informationen dazu finden sich im Quellenverzeichnis. 6 Dots per inch, ein Monitor ist technologisch bedingt in der Lage, eine begrenzte Anzahl von Bildpunkten (Pixeln) pro Inch (2,54 cm) darzustellen. Diese Obergrenze ist dabei von der Art der Konstruktion des Monitors (CRT oder TFT) und des Computersystems (IBM PC, Macintosh, UNIX) abhängig. Abb. 2.1 Qualitätsunterschiede zwischen Bitmap- und Vektor-Fontdarstellung Das oben gezeigte Beispiel illustriert den Qualitätsverlust bei einer Vergrößerung von 12 auf 24 und auf 41 Punkt. In der digitalen Typografie nennt man die Möglichkeit, Schriften in beliebiger Größe ausgeben zu können, Skalierbarkeit. Um eine Schrift skalierbar zu machen, musste ein völlig anderer Ansatz der Beschreibung entwickelt werden. Man entschied sich, die Konturen der Schrift über mathematische Funktionen zu definieren. Bei der Umsetzung der Kurven in das Punkteraster des Ausgabegeräts entstehen zwar Ungenauigkeiten, die aber mit wachsender Auflösung (also Rasterpunkte pro Einheit) immer kleiner werden. Zusätzliche Informationen zur Rasteranpassung sind in der Software (intern im Font oder extern im Interpreter) vorhanden. [merz02] 2.1.2 konturbeschreibungen Die Kontur eines Zeichen kann als eine zusammenhängende Folge von Punkten, die durch Geraden und Kurven miteinander verbunden sind, betrachtet werden. Es gibt immer einen Startpunkt, der auch der Schlusspunkt einer Kontur ist. Ein Zeichen kann aus mehreren Konturen bestehen, die auch ineinander verschachtelt sein können. Für eine korrekte Speicherung der Konturen müssen diese am Start- und Endpunkt miteinander verbunden sein und dürfen sich nicht überlagern. [Rubinstein88] 13 Kapitel 2 Schriftformate

a b c d e f Abb. 2.2 Verschiedene Arten, Vektorkurven zu füllen. Einfache geschlossene Kurven ergeben keine Probleme (a). Ineinander verschachtelte Flächen sind nicht gefüllt (b) oder wechseln sich ab (c). Nicht geschlossene Kurven sind problematisch. Die offenen Punkte werden als mit einer Gerade geschlossen behandelt (d). Komplexere Kurven und ineinander verschachtelte Kurven können zu überraschenden Ergebnissen führen (e,f), nach ([Rubinstein88], Abb. 4.39) Die nachfolgend vorgestellten Fontformate (Abb. 2.3) verwenden den gleichen Ansatz, Konturen als wechselnde Folge von Koordinaten und verbindenden mathematischen Funktionen zu beschreiben. Dabei gehen sie von einem Start-/Endpunkt aus, definieren den Konturverlauf zum nächsten Punkt (Eckpunkt, Tangentenpunkt oder Kurvenpunkt) und so weiter bis der Ausgangsort wieder erreicht ist. Die angewandte Mathematik unterscheidet sich dabei geringfügig. IKARUS setzt auf Kreissegmente, TrueType verwendet quadratische Funktionen und PostScript kubische (Bézier curves 7 ). 7 Funktionen dritter Ordnung. Der Kurvenverlauf wird durch tangentiale Vektoren durch den Start- und den Endpunkt der Kurve beschrieben. Jedes Segment ist daher selbstbeschreibend. Siehe hierzu ([Hersch93], S. 80 f) Abb. 2.3 Vergleich der verschiedenen mathematischen Fkt. zur Kurvenbeschreibung ([Karow92 A], S. 21) Die Vorteile dieser Form der Konturbeschreibung sind deutlich: Auf eine Reihe von Zahlen und Funktionen reduziert, lassen sich die Zeichen mit geringem mathematischen Aufwand theoretisch beliebig skalieren. Tatsächlich bestimmen Auflösung der Ausgabegeräte und optische Eigenschaften der Schriften 14 Kapitel 2 Schriftformate

die sinnvollen Grenzen der Skalierbarkeit. Der Speicherbedarf ist im Vergleich zu Bitmaps wesentlich geringer. Was vor zwanzig Jahren ein entscheidendes Kriterium war, ist heute für die Verarbeitungsgeschwindigkeit noch immer wichtig. Das Vektorformat lässt sich über entsprechende Interpreter in jedes Ausgabeformat überführen (rastern). 2.2 postscript Die Bekanntheit von PostScript und damit von Schriften im Type 1-Format begann 1985, als von Apple der LaserWriter vorgestellt wurde. Dieser Laserdrucker war in der Lage, Seitenbeschreibungen im PostScript-Format entgegenzunehmen und in einem eingebauten Raster Image Processor (RIP) in Ausgabedaten umzuwandeln. Die verwendete Programmsprache PostScript wurde von Adobe Systems entwickelt. ([Merz02], S.129f) Ein Teil der PostScript-Programmiersprache, das Konstrukt font, beschreibt Konturen von Buchstaben mit Hilfe von Geraden und Bézier-Kurven und stellt zusätzliche Operatoren zur effizienten Textdarstellung bereit. Die Zeichen werden innerhalb eines Fonts verglichen und in gleiche, wiederkehrende charakteris tische Bestandteile (Stämme und Querbalken, Schrägen, Serifen, Rundungen und Bögen) zerlegt. PostScript rekonstruiert die Zeichen dann aus diesen Bestandteilen. Diese Art der Speicherung ist bei Zeichen, die sich in ihren Bestandteilen stark ähneln (z. B. bp vw nm etc.) sehr kompakt. Abb. 2.4 Charakteristische Teile der lateinischen Buchstaben ([Karow92 B], S. 108) PostScript kennt mehrere Arten, Schriften zu kodieren. Anfangs war nur Type 3 für die Öffentlichkeit zugänglich. Dieses macht eine Schriftherstellung möglich, die auf hochauflösenden Geräten gute Ergebnisse liefert. Auf Ausgabegeräten mit geringer Auflösung (frühe Monitore, Heimdrucker) jedoch gibt es unerwünschte Effekte beim Rastern. Um diese zu umgehen werden die Konturen während der Skalierung auf eine Ausgabegröße mit zusätzlichen Anwei- 15 Kapitel 2 Schriftformate

sungen modifiziert, um auf dem entsprechenden Raster (z. B. Bildschirmpixel) bestmöglich lesbar zu sein. Die zusätzlichen Informationen, so genannte Hints 8, enthält Type 1. Adobe hielt die Spezifikationen jahrelang geheim, veröffentlichte diese aber, als konkurrierende Firmen wie Microsoft und Apple drohten, eigene Formate auf den Markt zu bringen. Durch die Öffnung des Formates wurde PostScript Type 1 sehr populär und im Bereich des Desktop Publishing und der Druckindustrie schnell zum Standard. 8 Das komplexe Thema des Hinting (Type1), bzw. der Instructions (TrueType) wird in ([Karow92 A], S. 113ff) und [Microsoft98] detailliert und aufschlussreich behandelt. Diese Beschreibungen in einem Font dienen u.a. dazu, die charakteristische Form eines Zeichens auch bei geringer Pixelanzahl zu erhalten, indem Parameter (Balkenstärke, Serifen, Kurven) angeglichen werden. Abb. 2.5 Aufbau des Type1-Formates ([Karow92 B], S. 148) Ein Font in Type 1 besteht aus Verzeichnissen: dem Font dictionary und /FontInfo 9 und den verschlüsselten /CharStrings und /Private. Im Verzeichnis /CharStrings befindet sich eine Liste aller in der Schrift vorhandenen Konturbeschreibungen der Glyphen. Dabei werden die Glyphen mit Namen (vgl. 3.3.1) bezeichnet. Kommen innerhalb der Glyphe ähnliche Teile vor (z. B. Serifen), werden diese als Unterprogramme im /Private-Verzeichnis abgelegt und können so bei Bedarf platzsparend aufgerufen werden. /Private enthält Hints, die für alle Glyphen des Fonts gelten. ([Merz02] S. 145f) Der Adobe Type Manager (ATM) ist das Verwaltungsprogramm für Type 1- Schriften. Er ist in der Lage, die Hints des Fonts auszulesen und entsprechend auszuführen. Durch die Auslagerung der»hinting-intelligenz«auf den ATM wird mit einer Verbesserung des Interpreters gleichzeitig auch eine Verbesserung der Schriftdarstellung bewirkt. ([Phinney02] S. 3) Type 1-Schriften haben aufgrund ihres Alters einen entscheidenden Nachteil: die 8-Bit- Architektur begrenzt den gleichzeitig nutzbaren Zeichenvorrat auf 256 Zeichen (vgl. 3.3). 9 Namen werden in der PostScript- Programmsprache mit Schrägstrich / eingeleitet. 16 Kapitel 2 Schriftformate

Kürzel nötig Beschreibung sfnt ja Verzeichnis aller Tables im Font cmap ja eine oder mehrere Tabellen, die den Zeichen Zahlen zuordnen (encoding) glyf ja Zeichenkonturen und Anweisungen zur Rasteranpassung head ja Font-übergreifende Informationen hhea ja Schrifthöhe, Seitenräume der Zeichen hmtx ja Laufweite und linker Zeichenraum loca ja Index der Zeichenorte in glyf maxp ja maximale Größen bestimmter Einträge zur Bereitstellung des Speicherplatzes name ja ermöglicht zusätzliche Informationen für Tabellen (Name, Urheberrechtshinweise etc.) post ja PostScript Font-Informationen cvt nein enthält alle fontinternen Werte zur Anpassung der Schrift in verschiedenen Schriftgraden fpgm nein Font-Initialisierungs-Programm hdmx nein vordefinierte Laufweitenwerte für bestimmte Punktgrößen kern nein Unterschneidungstabelle prep nein Anweisungen, die vor dem Aufruf eines Zeichens ausgeführt werden Tab. 2.1 Übersicht Tabellen eines TrueType-Fonts ([Hersch93], S. 124) 2.3 truetype Die großen Betriebssystemhersteller realisierten Mitte der achtziger Jahre die Bedeutung einer eigenen skalierbaren Font-Technologie auf Systemebene. So entwickelte Apple sein eigenes Format Royal, das bei der Veröffentlichung TrueType getauft wurde. Apple tauschte die Technologie mit Microsoft gegen die Post- Script-Kopie TrueImage ein. 1991 wurden die Spezifikationen veröffentlicht und TrueType in die Betriebssysteme beider Hersteller integriert. ([Phinney02], S. 2) Adobe reagierte darauf mit der Veröffentlichung des ATM (s.o.) und den Spezifikationen von Type 1. Durch geschickte Vermarktung in großen Font-Paketen und die Implementierung des Interpreters in die Betriebssysteme hat sich TrueType zum Standard im Bürobereich entwickelt. ([Merz02] S. 133) Die Konturen werden mithilfe der quadratic b-splines 10 beschrieben. Diese sind im Vergleich zu PostScript einfacher, benötigen aber in der Praxis meist mehr Punkte, um eine Kontur ausreichend zu beschreiben. ([Phinney02], S. 2) Ein True Type Font ist aus abgeschlossenen Datenblöcken und Tabellen organisiert. Diese werden entsprechend ihrer Bedeutung mit einer Kennung aus vier Buchstaben identifiziert. ([Karow92 B], S. 164) Es gibt notwendige und optionale Tabellen. Hier eine kurze Übersicht über die Tabellen von TrueType mit Erläuterung: Das relativ einfache Programm Scan-Converter ist der zugehörige Interpreter der TrueType-Fonts. Er passt den Konturverlauf über die Anweisungen der instructions an die entsprechende Ausgabegröße an. Wesentlich dabei ist, dass TrueType dafür nur einen umfangreichen und flexiblen Satz von Regeln zur Verfügung stellt, in dessen Rahmen Schrifthersteller ihre Vorstellungen von intelligenter Schriftskalierung verwirklichen können. ([Karow92 B], S. 163) Hier wird ein entscheidender Unterschied zu Type 1 deutlich. Während in Type 1 10 Funktionen zweiter Ordnung. Sie sind progressiv. Die Funktion eines Punktes bestimmt die Funktion des folgenden Punktes. ([Merz02], S. 12) 17 Kapitel 2 Schriftformate

die Fonts selbst nur Beschreibungen zum Hinting enthalten und der Interpreter die Denkarbeit übernimmt, enthalten TrueType-Fonts die gesamten Anweisungen und der Interpreter führt diese einfach aus. Die Verantwortung der Entwickler, den Interpreter fehlerfrei in ihre Programme oder Ausgabegeräte zu implementieren, ist damit sehr hoch. Außerdem fallen aufgrund der umfangreichen instructions TrueType-Fonts in der Regel größer aus als vergleichbare im Type 1-Format. 2.4 opentype OpenType, ein junges Format für Fonts, ist in Zusammenarbeit von Microsoft, Apple und Adobe entstanden. Erstmals wurde es unter dem Namen True Type- Open in der arabischen Version von Windows 95 verwendet. Adobe betei ligte sich am Aufbau der Spezifikationen und 1996 wurde das Format unter dem neuen Namen OpenType aus der Taufe gehoben. Es dauerte noch fast fünf Jahre, bis die neue Technologie durch Implementierung in die Betriebssysteme von Microsoft und Apple Anwendung fand. Als eine Erweiterung des TrueType-Formates wird es durch folgende Neuerungen charakterisiert: einheitliches Format für die Plattformen Mac und Windows einheitliches Format für PostScript- und TrueType-Fonts Unicode-Funktionalität auch für PostScript-Fonts mächtige typografische Funktionen über neue Tabellen und features digitale Signierung der Fontdateien Das Format basiert auf der Dateistruktur von TrueType und besteht aus Konturbeschreibungen und dem SFNT-Wrapper (scalable font wrapper), der Laufweitenangaben und Kerning-Tabellen enthält. Die Konturbeschreibungen sind entweder PostScript- oder TrueType-Anweisungen. ([Merz02], S. 135 f) OpenType mit TrueType-Konturen Diese Variante trägt die bisherige Dateiendung.ttf. Die größte Neuerung liegt hier in der Implementierung der neuen typografischen Möglichkeiten (s.u.). Sie ist theoretisch mit allen Interpretern lesbar, die TrueType-Fonts verstehen, da die erweiterten Tabellen einfach ignoriert werden können. ([Merz02], S. 136) OpenType mit PostScript-Konturen Adobe modernisierte bei der Entwicklung von OpenType sein Format. Es ist mit der Endung.otf im System zu fin den. PostScript-Daten werden jetzt im platzsparenden Compact Font Format 11 gespeichert, wobei die Zeichenbeschreibungen im Type 2-Format kodiert sind. Es erlaubt die Speicherung mehrerer Fonts in einer Datei. Die alte 8-Bit-Beschränkung des Zeichensatzes (max. 256 Zeichen) wird aufgehoben und der Font bietet vollständige Unicode-Unterstützung. Damit der Interpreter die.otf- Dateien verarbeiten kann, benötigt er spezielle Unterstützung. ([Merz02], S. 136) Mit der Einführung des OpenType-Formates ergeben sich Vorteile für alle be- 11 weiterführend hierzu die Spezifikationen des CF-Formates im Anhang 18 Kapitel 2 Schriftformate

teiligten Parteien. Microsoft kann eine größere Akzeptanz seines Formates in der Druckindustrie erlangen. Adobe hat endlich PostScript-Support auf Systemebene und kann auf den ATM-Aufsatz verzichten; das Format ist nun Unicodefähig. Beide Firmen können mit dem Format durch Erstellung von komplexen Fonts die Internationalisierung ihrer Produkte vorantreiben, was auf dem globalen Softwaremarkt ein entscheidender Vorteil ist. Schriftherstellern ist ein mächtiges Format gegeben, das sich aufgrund der neuen Tabellen und der Baumstruktur (Schrift Sprache feature lookup) präzise und effizient nutzen und erweitern lässt. Für den Endanwender entsteht ein einziges Standardformat, das plattformübergreifend funktioniert und die lästige Umschalterei 12 zwischen mehreren Fonts einer Familie 13 erspart. ([Phinney02], S. 8) Die größere Zeichenmenge und die daraus resultierende Herstellung der erweiterten Tabellen erfordern einen erhöhten Planungs- und Konzeptionsaufwand bei der Herstellung eines OpenType-Fonts. Zudem ist die Unterstützung der zusätzlichen Möglichkeiten des Formates in aktueller Software noch nicht voll ausgeschöpft. Von Microsoft und Adobe vollständig in ihre Software integriert, folgt Apple Inc. zögerlich, da ihr Mac OS mit einem eigenen, vergleichbar mächtigen Format (vgl. 2.5.2) ausgestattet wurde. 2.5 exkurs: weitere formate 12 So mussten bspw. Kapitälchen manuell in einen Text eingefügt werden, indem man einen zusätzlichen Font (meist mit dem Zusatz Expert oder SmallCaps) verwendete. Die Unterstützung durch entsprechende Software (z. B. Adobe InDesign) vorausgesetzt, übernimmt das Programm automatisch die Ersetzung, indem es die entsprechenden Glyphen miteinander austauscht. 13 Eine Schriftfamilie umfasst mehrere Fonts mit der gleichen charakteristischen Darstellung der Glyphen, aber abweichenden Eigenschaften (wie normal, kursiv, fett, kapitälchen u.a.). Einen einzelnen Font nennt man in diesem Zusammenhang Schriftschnitt. 2.5.1 IKARUS IKARUS ist das erste Format, das Zeichen mathematisch beschreibt. Es nutzt Kreiskurven als Basiselement. Eine Kreiskurve besteht aus einer Folge von Punktarten Startpunkt, Eckpunkt, Kurvenpunkt und Tangentenpunkt. Ein Font im IKARUS-Format ist eine Datei aus einer Folge von 16-Bit-Nummern. Er hat einen Dateikopf, einen Zeichenindex, der alle vorhandenen Zeichen aufführt sowie einen Eintrag für jedes Zeichen. Jeder Zeicheneintrag enthält einen Datenkopf, einen Konturenindex für jede vorhandene Kontur des Zeichens und die Liste von Punktkoordinaten, die das Zeichen beschreiben. Die Art des Punktes ist durch die Vorzeichen der Koordinaten definiert. ([Hersch93] S. 111) Der Vorteil des Formates ist seine einfache Art, Zeichen zu beschreiben, indem man die entsprechenden Punkte auf die Kontur setzt. Alle komplexeren Formen mathematischer Beschreibungen (quadratische und kubische Funktionen) lassen sich aus ihm berechnen. In ausreichender Vergrößerung ist sein Nachteil sichtbar. Es gibt keine kontinuierlichen Kurvenbeschreibungen. Für weiche Kurven ist eine große Menge an Punkten notwendig. ([Hersch93] S. 112) 2.5.2 gx-/aat-fonts Ein mit OpenType vergleichbarer Ansatz sind die Advanced Apple Typography- Fonts (AAT-Fonts) von Apple. Ursprünglich 1991 als Teil des GX Layout Algorithm 19 Kapitel 2 Schriftformate

entwickelt, wurde die Schriftsektion der Software 1998 als Teil der ATSUI 14 - Schnittstelle für den Macintosh wiederbelebt. Ähnlich den OpenType-Fonts erlauben sie die Verwendung der TrueType-Konturbeschreibung und einen erweiterten Zeichenvorrat (vgl. Kapitel 3.1) über 256 Zeichen hinaus. AAT-Fonts nutzen ebenfalls Tabellen zur Referenzierung, die jedoch anders funktionieren. Der AAT Line Layout Manager als Softwaremodul im Mac interpretiert und kontrolliert diese zusätzlichen Informationen und ermöglicht somit vergleichbare typo grafische Finessen wie OpenType 15. Da diese Technologie nur für den Mac verfügbar ist, haben sich Softwareentwickler bis dato von einer Implementierung des Ansatzes abschrecken lassen. OpenType ist im Vergleich dazu plattformunabhängig. ([Phinney02], S. 9) 14 Apple Type Services for Unicode Imaging 15 Für weitere Informationen und einen Vergleich der Formate AAT und OT, siehe: [Opstad98] Abb. 2.6 Digitalisierung im IKARUS-Format ([Karow92 A], S. 87) 2.5.3 multiple master Desweiteren gibt es die Multiple-Master-Fonts (MM-Fonts), eine Weiterentwicklung des Type 1-Formates. Dabei können so genannte Design-Achsen definiert werden, auf denen minimale und maximale Werte von Eigenschaften des Fonts (z. B. Schriftschnitt, -größe oder Laufweite) angegeben werden. Alle Zwischenschritte der Eigenschaften können vom Font selbst interpoliert werden, solange die Bézierpunkte miteinander vergleichbar sind. ([Merz02], S. 142 f) Da MM-Fonts aufgrund des komplexen Konzeptes von vielen Anwendern nicht verstanden wurden und nur unzureichend in Anwendungen eingebaut wurden, habent sie sich nicht durchsetzen können. Viele Schrifthersteller nutzen die Möglichkeiten des Formates aber, um Zwischenstufen einer ganzen Schriftfamilie zu erstellen und die einzelnen Schnitte dann separat zu verkaufen. ([Phinney02], S. 6) 20 Kapitel 2 Schriftformate

3 zeichenkodierung Der grundsätzliche Unterschied im Aufbau von PostScript-Type 1- und True Type- Fonts ist nun bekannt. Es werden nachfolgend die Begriffe Zeichenvorrat, Zeichencode und Zeichenkodierung eingeführt und wichtige Standards zur Schriftkodierung beschrieben. Besonderes Augenmerk wird auf den Unicode- Standard gelegt, da dieser eine der Grundlagen zur Erstellung eines komplexen Fonts ist. Daraufhin werden die verschiedenen Konzepte der Zeichenkodierung der beiden Fontformate kurz erläutert und hinsichtlich ihrer Kompatibilität mit Unicode verglichen. Da im Verlauf der Zeit verschiedene Hersteller von Computersystemen die Aufgabe der Schriftkodierung mit verschiedenen Ansätzen zu lösen versucht haben, sie aber dennoch dieselbe Thematik behandeln, ähneln sich im folgenden Ka pitel viele Begriffe und Bezeichnungen. Ich habe mich durch eine weitere Begriffseinführung bemüht, die unterschiedlichen Konzepte und Namen so klar und deutlich wie möglich voneinander abzugrenzen wo es mir möglich war, einheitlich zu benennen. 21 Kapitel 3 Zeichenkodierung

3.1 begriffseinführung Eine Schrift enthält eine bestimmte Anzahl von Zeichen 16. Demzufolge enthält ein Font als digitales Abbild einer Schrift ebenfalls eine bestimmte Menge an Zeichen. Möglicherweise sind einem Zeichen auch mehrere Glyphen zugeordnet. Die Summe aus allen Glyphen des Fonts wird Zeichenvorrat (character repertoire) 17 genannt. Jede Glyphe hat eine Nummer, die glyph ID. Nun kann ein Rechner aufgrund seiner funktionalen Architektur nur Folgen von Binärzahlen verarbeiten 18. [Korpela01] Demzufolge muss der Glyphenvorrat eines Fonts definiert und jeder Glyphe eine eindeutige, nicht-negative natürliche Zahl zugeordnet werden. Man nennt diese Summe aus glyph IDs das coded character set (CCS). Dieses CCS wird über eine Tabelle, der character encoding form (CEF), eindeutig einer Binärzahl zugeordnet. Bei diesem Schritt wird auch die Bit-Tiefe der Binärzahl (7-Bit, 8-Bit etc., s.u.) festgelegt. Die Kombination aus CCS und CEF nennt sich Zeichencode (character code). [Korpela01] Zuletzt werden diese Binärzahlen mithilfe einer Zeichenkodierung, eines character encoding scheme (CES) für den Rechner verständlich in Byteblöcke mit variabler oder fester Länge aufgeteilt. 16 So umfasst z. B. die lateinische Schrift je nach Sprache mindestens die Buchstaben A-Z und a-z, die Ziffern 0-9 und Interpunktionszeichen, dazu können noch diakritische Zeichen (Zeichen zur Veränderung der Aussprache) kommen. 17 Vgl. [Korpela01] 18 Eine CPU (central processing unit), das Großhirn eines Rechners, ist aus einer Menge von Kondensatoren aufgebaut, die als Ladungszustand nur»kein Strom«(o) und»strom«(1) aufweisen können. Prozeß der Zeichenkodierung! = 21 A = 41 x = 78 glyphid 21 41 78 8-Bit Folge 0001 0101 0010 1001 0100 1110 0001 0101 0001 0101 0010 1001 0100 1110 0100 1110 Glyphen Konturbeschreibungen mit Namen CCS Zuordnung zu Integerziffern CEF Zuordnung glyphid zu Bitfolge CES Blöcke mit fixer/ variabler Länge Abb. 3.1 Schematischer Prozeß der Zeichenkodierung Zeichenkodierung ist demzufolge eine Methode (Algorithmus), Zeichen in digitaler Form abzubilden, indem der Zeichenvorrat eines Fonts durch eindeutige Zeichencodes (Zahlen) über Kodierungstabellen mit Bytefolgen verbunden wird. In der Praxis finden sich viele unterschiedliche Kodierungsverfahren. Hersteller von Betriebssystemen und Anwendungen benötigen diese jeweils für die länderspezifischen Versionen ihrer Produkte. Auf nationaler und internationaler Ebene gibt es mittlerweile viele Standards. ([Merz02], S. 183) Bekannte Namen sind ASCII, ISO-8859-1, UTF-8 oder Unicode. Im Folgenden wird auf diese Kodierungsverfahren näher eingegangen. Die Begriffe encoding, Kodierung und Kodierungsverfahren haben identische Bedeutung. 22 Kapitel 3 Zeichenkodierung

3.2 zeichenkodierungsstandards 3.2.1 ASCII und ISO 8859-x 19 Der US American Standard Code for Information Interchange (auch als ISO 646 bekannt), kurz US-ASCII genannt, ist ein festgelegtes 7-Bit-Encoding 20. Er wurde 1968 als ANSI 21 X3.4 eingeführt und 1972 als ISO 646 offiziell anerkannt. Die code numbers reichen von 0 bis 127 (0 bis 7F), wobei die Positionen 0 bis 1F für Steuerzeichen und der Rest für Buchstaben, Ziffern und weitere Zeichen definiert sind. Dieser Bereich ist auf fast jedem Betriebssystem identisch belegt. Der ASCII-Standard setzte sich gegenüber anderen (z. B. EBCDIC) durch und wurde in Unix-Systeme und Personal Computer integriert. ([Wantzen02], S. 42) Durch eine Aufstockung auf 8-Bit konnten neue Zeichen für die code numbers 128 bis 255 eingeführt werden. In diesem Bereich unterscheiden sich die verschiedenen ASCII-Erweiterungen in den kodierten Zeichen. Die 15 wichtigsten davon, die Roman Czyborra als»the ISO-8859 Alphabet Soup«22 bezeichnet hat, werden für die unterschiedlichen Sprachsysteme des Lateinischen Alphabets genutzt. 19 Die pub lizierten Industriestandards der ISO werden anhand ihrer Nummer(n) identifiziert. 20 Bis zur Einführung des Personal Computers Anfang der achtziger Jahre des 20. Jahrhunderts nutzten die meisten Rechnersysteme noch die 7-Bit-Architektur. Diese beschränkte die Bytegröße auf 128 Zeichen (0 127). 21 American Nation Standards Institute 22 Vgl. [Czyborra98 A] Abb. 3.2 Abbildung ISO 646 [Czyborra98 C] Diese ISO 8859 Zeichenkodierungen wurden Mitte der achtziger Jahre von der ECMA 23 entwickelt und durch die ISO eingeführt. ISO-8859-15 (eine um das Eurozeichen erweiterte Variante des ISO-8859-1) ist der Standard für westeuropäische Sprachen. [Czyborra98 A] 23 European Computer Manufacturer's Association 3.2.2 codepages Anfang der achtziger Jahre entwickelte IBM zusammen mit Microsoft ein eigenes Kodierungsverfahren für das Betriebssystem MS-DOS, die codepages. Die erste codepage war die CP 437, die das american character repertoire, einige griechische Buchstaben, mathematische Symbole und Sonderzeichen beinhaltete. Als der PC auch in Westeuropa Verbreitung fand, wurde sie zur CP 850 erweitert. Als Ende der achtziger das neue Betriebssystem Windows eingeführt 23 Kapitel 3 Zeichenkodierung

wurde, verabschiedete sich Microsoft von der CP 437 und führte die gänzlich neue CP 1252 (auch WinLatin-1 genannt) ein, eine abgewandelte Version der ISO 8859-1. Eine Anmerkung zur Kompatibilität: In der ISO 8859-1 sind die Positionen 128 bis 159 für Kontrollzeichen reserviert, enthalten also keine Glyphen. WinLatin-1 jedoch enthält dort Glyphen. Daraus folgt: beide Standards sind nur eingeschränkt kompatibel. Die verwendeten Glyphen der Positionen 128 bis 159 verschwinden bei einem Wechsel des Betriebssystems. Bei allen weiteren Windows codepages (windows 1250 bis -1258) ist es leider ebenso. [Korpela01] Auch die CCS anderer Betriebssysteme (UNIX, Macintosh u.a.) und programm-, bzw. herstellereigenen Kodierungen (z. B. Adobe-Standard-Encoding für Post- Script) differieren zum Teil stark untereinander. Die ersten 128 Positionen sind in der Regel konform zu US-ASCII. Sobald dieser Bereich verlassen wird, ist leider eine Inkompatibilität der verschiedenen Zeichenkodierungen der Standard. Standard Name des Alphabets Sprachgruppe ISO 8859-1 Latin-1 Westeuropäische Sprachen ISO 8859-2 Latin-2 Zentral- und osteuropäische Sprachen ISO 8859-3 Latin-3 Südeuropäische Sprachen ISO 8859-4 Latin-4 Nordeuropäische Sprachen ISO 8859-5 Latin / Cyrillic Slawische Sprachen ISO 8859-6 Latin / Arabic Arabisch ohne Punktuation ISO 8859-7 Latin / Greek Modernes Griechisch ISO 8859-8 Latin / Hebrew Hebräisch, Yiddisch ISO 8859-9 Latin-5 Türkisch ISO 8859-10 Latin-6 Nordische Sprachen (z. B. Isländisch) ISO 8859-11 Latin / Thai alphabet Thai ISO 8859-12 wurde nicht definiert ISO 8859-13 Latin-7 Baltic Rim ISO 8859-14 Latin-8 Gälisch / Keltisch ISO 8859-15 Latin-9 Latin 1 mit Eurozeichen ISO 8859-16 Latin-10 Südosteuropäische Sprachen Tab. 3.1 Übersicht Nationale Varianten des erweiterten ASCII-Standards, ISO 8859-x [Korpela01] 3.2.3 iso 10464 24 und unicode 24 ISO 646 + 10.000 Das Universal Character Set (UCS) sollte diesem Chaos von verschiedenen, größ tenteils inkompatiblen Kodierungsverfahren endlich ein Ende bereiten. Als ISO 10646 zur Standardisierung aller Zeichen der Welt eingeführt, kann es eine Übermenge aller o.g. Code-Systeme angesehen werden. [Korpela01] Der Unicode-Standard baut darauf auf. Er wird vom Unicode Consortium 25 entwickelt und veröffentlicht, um den Austausch, die Verarbeitung und Darstellung aller Schriftsysteme der Welt auf Rechnersystemen zu unterstützen. Er wurde anfang der neunziger Jahre entwickelt, um sämtliche Zeichen der Welt (histo- 25 Weitere Informationen: www.unicode.org 24 Kapitel 3 Zeichenkodierung

rische, aktuelle und zukünftige) in ein einheitliches Code-System zu integrieren. Seit seiner Veröffentlichung 1991 wurde der Unicode stetig erweitert und verbessert. Zum Zeitpunkt der Recherchen zu dieser Arbeit ist Unicode 4.1 die aktuellste Version. Im Unicode-Standard sind keine Glyphen, sondern ausschließlich Zeichen (hier als code points bezeichnet) kodiert. Jedes Zeichen wird eindeutig definiert. ([Merz02]S. 179) Das geschieht zum einen über die Vergabe einer Code-Nummer in der Form U+nnnn und eines Namens, wobei für die vier n Ziffern in hexadezimaler Schreibweise verwendet werden. Zudem werden über den Namen und seine properties 26 die Zeicheneigenschaften eindeutig festgelegt. Anwendungen und Betriebssysteme können darauf bei der Verarbeitung zugreifen. [Korpela01] Die Zeichenmenge des Standards ist immer größer als die Summe aller Zeichen der Welt. Denn er beinhaltet einige zusätzliche Zeichen, die das Verhalten verschiedener Schriftelemente in Abhängigkeit der zu schreibenden Sprache festlegen. 26 Name, Klasse, Schnitt u.a., eine nützliche deutschsprachige Quelle zu Unicode ist: www.decodeunicode.org g U+0067 LATIN SMALL LETTER G ~ U+007E TILDE क U+0915 DEVANAGARI LETTER KA Tab. 3.2 Beispiele für Zeichen in Unicode Der Standard enthält zusätzlich ein einheitliches Modell zur Darstellung und Bearbeitung von Text und vereinfacht die Behandlung von bidirektionalem Text 27 und von Zeichen, die sich abhängig von ihrer Position im Wort / Satz verändern. Für eine ausführliche Definition und erschöpfende Erklärung des character encoding models sei auf den Artikel»character encoding model«im Unicode Report #17 auf www.unicode.org verwiesen. Bei der Definition der Unicode-Encodings wurde auf Abwärtskombatibilität im ASCII-Bereich Wert gelegt. ([Wantzen02], S. 43) Dies zeigt Tabelle 3.3 beispielhaft für die Kodierung des Zeichens»A«: 27 Ein Text kann auch von rechts nach links (z. B. arabisch) oder von oben nach unten (z. B. japanisch) geschrieben und gelesen werden. Standard Bits Binär Hex Dec US-ASCII 7 100 0001 41 65 ISO 8859-1 8 0100 0001 41 65 UCS-2 16 0000 0000 0100 0001 41 65 UCS-4 32 0000 0000 0000 0000 41 65 0000 0000 0100 0001 UTF-8 variabel 0100 0001 41 65 Tab. 3.3 Vergleich der unterschiedlichen Kodierungen des Buchstabens»A«([Wantzen02], S. 43) Unicode wurde ursprünglich in UCS-2 kodiert. Dies ist das einfachste Verfahren die Zeichen zu kodieren, nämlich mit zwei Byte in 16-Bit. Der Nachteil: selbst für Zeichen des ASCII-Bereiches werden zwei Byte verwendet, obwohl nur eins nötig wäre. Das Kodierungsverfahren UCS-4 verwendet sogar vier Bytes. Somit wird im Vergleich zu ISO-8859 doppelt bzw. viermal soviel Speicherplatz benötigt. 25 Kapitel 3 Zeichenkodierung

[Korpela01] Weitere Formen der Kodierung sind UTF-8, UTF-16 und UTF-32. In unixbasierten Betriebssystemen wird UTF-32 verwendet. Diese einfachste Implementierung des Unicode-Encodings stellt dabei jedes Zeichen durch einen 32-Bit-Wert dar. UTF-16 war das ursprüngliche Unicode-Konzept, die Zeichenkodierung auf 16-Bit zu erweitern (im Gegensatz zu 8-Bit der ISO-8859-x Serie). Dieser Basis Multilingual Plane (BMP) genannte Bereich wurde aber aufgrund der beschränkten Zeichenanzahl ( 2 16 = 65 536 ) aufgegeben. 2001 hat der Standard mit der Version 3.1 mit 94 140 registrierten Zeichen die Grenzen der BMP überschritten. Es wurde durch Einführung der surrogates 28 versucht, diese Beschränkung aufzuheben. Dennoch war eine Umstellung der verwendeten Kodierungsmethode nötig. Seit der Erweiterung des Code-Bereiches über 16-Bit empfiehlt das Unicode Consortium daher das flexible UTF-8 als Standard-Encoding. In diesem Kodierungsverfahren entsprechen die Positionen 0 bis 127 exakt dem US- ASCII, belegen somit nur ein Byte pro Zeichen. Alle weiteren Zeichen werden durch eine komplexe Methode dargestellt, als eine Folge von zwei bis sechs Byte. Somit ist UTF-8 ein Code-System mit variabler Länge. Die genaue Kodierungsmethode sowie Vor- und Nachteile des Encodings 29 sprengen den Rahmen dieser Arbeit. Software lässt sich nur mit erheblichem Entwicklungsaufwand auf Unicode umstellen. Zudem muss das Betriebssystem ebenfalls Unicode unterstützen. Microsoft leistete Pionierarbeit und implementierte Unicode seit Windows NT (folgend Windows 2000 und XP) in seine Betriebssysteme. Ende der neunziger Jahre hatte das Unternehmen auch seine Schriften und Anwendungen wie bspw. die MS Office Suite umgestellt und hatte somit einen enormen Vorteil bei der Internationalisierung seiner Produkte. Die Unicode-Unterstützung bei Apple, seit Mac OS 9 in Form der Programmierschnittstelle ATSUI integriert, wird bis dato von Herstellern nur zögerlich genutzt. 28 Im Bereich U+D800 bis U+DFFF befinden sich 16-Bit Zeichen, die als surrogates die Zeichen des 20-Bit-Bereichs (U+0001000 bis U+0010FFF) umfassen. Dadurch sind 16 weitere 16-Bit-Ebenen (mit jeweils 65 535 Zeichen) entstanden. Diese «Mehrdimensionalität«erschwerte aber die Verwendung des Standards. 29 Weiterführend: [Unicode05], [Czyborra98 B] und [Korpela01] 3.3 kodierungsmechanismen im font Die Begriffe Zeichensatz, Zeichenvorrat und Kodierung sind eingeführt. Internationale Standards zur Zuordnung von Zeichen sind erläutert. Die wichtigsten Vertreter (ASCII, die ISO-8859-x Familie und der Unicode-Standard) wurden vorgestellt. Im folgenden wird nun die Kodierung der Zeichen innerhalb eines Fonts erläutert. Das umfasst sowohl die Art der Zeichenbezeichnung, der -kodierung und die Art des Zugriffs auf die Daten durch Anwendungen oder das Betriebssystem. 3.3.1 type 1-fonts Der PostScript-Standard-Zeichenvorrat Adobe Latin Character Set umfasst 228 Zeichen und das zusätzliche Zeichen.notdef 30 für nicht im Standard definierte Zeichen. Der Zeichenvorrat eines Type 1-Fonts kann beliebig groß sein. Es können aber davon immer nur 256 Zeichen gleichzeitig verwendet werden. Diese Einschränkung liegt an der 8-Bit-Architektur des Formates. 30 Adobe empfiehlt, als standardkonforme Glyphe ein Rechteck bzw. eine Rechteckkontur zu verwenden. 26 Kapitel 3 Zeichenkodierung