DE69807483T2 - Verfahren zum darstellen von glyphen unter verwendung einer bibliothek von gestaltungsdiensten - Google Patents

Verfahren zum darstellen von glyphen unter verwendung einer bibliothek von gestaltungsdiensten

Info

Publication number
DE69807483T2
DE69807483T2 DE69807483T DE69807483T DE69807483T2 DE 69807483 T2 DE69807483 T2 DE 69807483T2 DE 69807483 T DE69807483 T DE 69807483T DE 69807483 T DE69807483 T DE 69807483T DE 69807483 T2 DE69807483 T2 DE 69807483T2
Authority
DE
Germany
Prior art keywords
glyph
text
layout
services library
layout services
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69807483T
Other languages
English (en)
Other versions
DE69807483D1 (de
Inventor
D. Ballard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Application granted granted Critical
Publication of DE69807483D1 publication Critical patent/DE69807483D1/de
Publication of DE69807483T2 publication Critical patent/DE69807483T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Document Processing Apparatus (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Record Information Processing For Printing (AREA)

Description

  • Die Erfindung betrifft im allgemeinen die Darstellung von Glyphen in einem Textverlauf und insbesondere die Substitution von Glyph-Alternativen und die Positionierung von Glyphen mittels einer Layout-Services-Bibliothek.
  • Hintergrund der Erfindung
  • Elektronische Dokumente haben sich vermehrt, seitdem Computer gebräuchliches Inventar in Büros, Schulen und Haushalten geworden sind. In vielen Fällen haben elektronische Dokumente Papierdokumente ersetzt. Um die Anwendung eines elektronischen Dokumentes als Ersatz für ein Papierdokument zu ermöglichen, muss der Text eines elektronischen Dokuments lesbar und linguistisch genau sein. Der Text eines elektronischen Dokuments ist üblicherweise mittels eines oder mehreren Schriftsätzen dargestellt. Beispiele für Schriftsätze umfassen Arial, Times New Roman und Courier. Ein Schriftsatz ist ein bestimmter Stil einer Schriftart. Ein für ein elektronisches Dokument bestimmter Schriftsatz ist so gestaltet, dass die Lesbarkeit des Dokuments bei einer Darstellung auf einem Pixel-darstellenden Gerät, wie z. B. einem Monitor oder einem Drucker, erhöht wird. Um den Text in einem elektronischen Dokument in einem bestimmten Schriftsatz darzustellen, wird der Text auf dem Anzeigegerät mittels Glyphen abgebildet. Ein Glyph ist eine Darstellung von einem oder mehreren Schriftzeichen. Ein einzelner Glyph kann ein einzelnes Schriftzeichen darstellen, wie z. B. den Kleinbuchstaben "f", oder ein einzelner Glyph kann eine Folge von Schriftzeichen darstellen, wie z. B. der Doppelbuchstabe "fi". Um ein Dokument auf einer Anzeigevorrichtung wiederzugeben, werden die Schriftzeichen des Dokuments in Glyphen konvertiert, und die Glyphen werden auf dem Anzeigegerät angezeigt, um einen Textverlauf zu erzeugen.
  • Üblicherweise wird Schriftzeicheninformation, inklusive Glyphinformation, in Datenspeichern als eine Reihe von Schriftsatztabellen gespeichert. Zum Beispiel umfasst der, von der Microsoft Corporation, Rechtsnachfolger der vorliegenden Erfindung, verbreitete OpenTypeLayout- Standardschriftsatz fünf Schriftsatztabellen für jeden OpenTypeLayout-Schriftsatz: (1) eine Glyphensubstitutionstabelle, (2) eine Glyphenpositionstabelle, (3) eine Ausrichtungstabelle, (4) eine Grundlinientabelle, und (5) eine Glyphendefinitionstabelle. Die OpenTypeLayout- Schriftsatztabellen unterstützen textabhängige Abbildungen zwischen Schriftzeichen und Glyphen, einschließlich Doppelbuchstaben, positionsabhängige Formen, Alternativen und anderen Substitutionen. Ein Schriftsatz, der den OpenTypeLayout-Standard ausführt, kann auch Schriftsatztabellen einschließen, welche zusätzliche Arten von Informationen, wie z. B. Glyphkonturen, Maße, Bitmaps, Abbildungsinformationen und zusätzliche Tabellen, die Informationen zur fortgeschrittenen Typographie enthalten, einschließen.
  • Ein Textverarbeitungsprogramm oder anderes Programm (das Client-Programm oder Client) kann die Information in den Schriftsatztabellen zum Layout und Darstellen des Texts (Glyphen) eines elektronischen Dokuments auf einem Anzeigegerät nutzen. Zum Beispiel beschreibt das US-Patent Nr. 5,416,898 ein Verfahren und eine Vorrichtung zur Darstellung von Text mittels einer Reihe von Schriftsatztabellen. Die Schriftsatztabellen beinhalten Grundlinien-, Doppelbuchstaben-, Einschaltungszeichen-, optische Größen-, Glypheigenschafts-, Glyph-Umwandlungs-, Track Kerning-, Ausrichtungs-, Merkmalsnamen-, und Kerning- Tabellen. In diesem Dokument findet sich keine Beschreibung der Bereitstellung einer Layout- Services-Bibliothek, welche in der Lage ist, alternative Glyph-Formen in einem Textverlauf zu identifizieren und den Text in Übereinstimmung mit einer Reihe von verschiedenen, vom Anwender selektierten, Formen zu verarbeiten.
  • In fortgeschrittener Typographie muss keine 1 : 1-Korrelation zwischen einem Textschriftzeichen und dem Glyph, der dieses Schriftzeichen auf dem Anzeigegerät abbildet, bestehen. In einigen Schriftsätzen kann das Schriftzeichen "&" z. B. eine Reihe von verschiedenen oder anderen Erscheinungsbildern haben, wenn es als ein Glyph auf einer Anzeigevorrichtung wiedergegeben wird. Bei Abwesenheit eines Mechanismus um das angemessene alternative Glyph für ein bestimmtes Schriftzeichen zu selektieren, ist das Client-Programm nicht in der Lage, die ganze Reihe der von den Schriftsatztabellen angebotenen Alternativen und Möglichkeiten auszunutzen.
  • Ein weiterer Aspekt von fortgeschrittener Typographie betrifft die Positionierung von Glyphen bei der Wiedergabe eines Textverlaufs. Komplexe Glyph-Positionierungen werden in Schreibsystemen, wie z. B. dem vietnamesischen, zu einem Problem, welche diakritische und andere Zeichen nutzen, um den Klang oder die Bedeutung von Schriftzeichen zu verändern. Diese Schreibsysteme benötigen eine überwachte Platzierung von allen Zeichen im Verhältnis Schreibsysteme benötigen eine überwachte Platzierung von allen Zeichen im Verhältnis zueinander um Lesbarkeit und linguistische Genauigkeit zu erreichen. Solche Schreibsysteme benötigen hochentwickelte Glyphpositionierungen für korrekte typographische Zusammensetzungen. Urdu-Glyphen z. B. sind kalligraphisch und miteinander entlang einer abfallenden, diagonalen Textlinie, welche von rechts nach links läuft, verbunden. Um Urdu richtig wiederzugeben, muss ein Textverarbeitungsclient die horizontalen (X) und die vertikalen (Y) Positionen eines jeden Glyphs ändern.
  • Das aktuelle Glyph-Positionierungsmodel für TrueType-Schriftsätze nutzt nur einen Wert, Advance, um eine Glyph-Position für Textlayout anzugeben. Wenn Glyphen mittels einer virtuellen "Stiftspitze", welche sich entlang einer Grundlinie des Textes bewegt, positioniert werden, beschreibt Advance, wo die virtuelle Stiftspitze zur Positionierung des nächsten Glyphen hinbewegt wird. In horizontalem Text korrespondiert Advance mit der Fortschrittsweite in der X- Richtung. TrueType-Schriftsätze bestimmen Advance nur in der X-Richtung für horizontales Layout und nur in der Y-Richtung für vertikales Layout. Für einfaches Textlayout in lateinischen Schriftzeichen mag dieser Wert (Advance) ausreichend sein, um die Glyphen korrekt zu positionieren. Aber für Texte, die ein anspruchsvolleres Layout benötigen, muss die Glyph- Positionierung eine größere Variationsbreite abdecken. Zusätzlich ist die einzige Positionsanpassung, die in TrueType-Positionierungsmodellen definiert ist, Pair Kerning, welches den horizontalen Abstand zwischen zwei Glyphen ändert. Eine typische Kerning-Tabelle listet Paare von Glyphen auf und bestimmt, wieviel Platz ein Textverarbeitungsclient zwischen den Glyphen hinzufügen oder wegnehmen soll, um jedes Paar richtig anzuzeigen. Es stellt keine speziellen Informationen darüber zur Verfügung, wie die Glyphen in jedem Paar angeordnet werden, und sie kann keine Zusammenhänge von mehr als zwei Glyphen anpassen.
  • Um die durch verschiedene Formen und komplexe Positionierung gebotenen Glyph- Wiedergabemöglichkeiten zu nutzen, muss das Client-Programm in der Lage sein, die Schriftsatztabellen und die in diesen Tabellen enthaltenen Informationen abzurufen und zu handhaben. Eine solche Handhabung und Nutzung durch das Client-Programm benötigt einen Grad von Komplexität, welcher in vielen Client-Programmen nicht vorliegt. Momentan existieren keine üblichen Interfaces die komplizierte Glyph-Positionierung handhaben, da es nur wenige Schriftsätze gibt, die die fortgeschrittene Layout-Information beinhalten. Manche Client- Programme, wie z. B. das WINDOWS 95 ME und das WINDOWS 95 FE Betriebssystem, nutzen die in einigen System-Schriftsätzen enthaltenen fortgeschrittenen Layout-Informationen, aber diese Programme tun dies, indem sie die Syntax-Analyse und die Interpretation der Schriftsatzinformation selbst machen. Daher werden viele Merkmale der fortgeschrittenen Typographie, wie z. B. alternative Formen und komplexe Glyphpositionierung, von den Client- Programmen die einen solchen Grad an Komplexität nicht handhaben können nicht genutzt, obwohl diese in den Schriftsatztabellen verfügbar sind.
  • Demgemäß gibt es in der Technik einen Bedarf für ein effizienteres Verfahren zur Wiedergabe von alternativen Glyph-Formen und zur Positionierung von Glyphen in einem Textverlauf.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung deckt den oben beschriebenen Bedarf, indem sie eine Methode zur Identifizierung von alternativen Glyph-Formen für den Anwender des Client-Programms zur Verfügung stellt, so dass der Anwender die passende Glyph-Form für seinen oder ihren Bedarf aussuchen kann. Die vorliegende Erfindung stellt auch ein Verfahren zur Positionierung der Glyphen, unter Berücksichtigung einer Grundlinie, in einem Textverlauf zur Verfügung.
  • Um die fortgeschrittenen Fähigkeiten der Selektion von alternativen Glyph-Formen und komplexer Glyph-Positionierung zur Verfügung zu stellen, verwendet das Verfahren gemäß der Erfindung eine Layout-Services-Bibliothek (Server Prozess oder Server), welche eine Reihe von Textverarbeitungsfunktionen zur Nutzung durch ein Textverarbeitungsprogramm oder andere Client-Programme zur Verfügung stellt. Die Layout-Services-Bibliothek beinhaltet Schriftsatzinformationsfunktionen, Textlayout-Funktionen und Textinformationsfunktionen. Die Schriftsatzinformationsfunktionen stellen Informationen über den Schriftsatz zur Verfügung. Die Textlayout-Funktionen stellen grundlegende Layout-Leistungen zur Verfügung, einschließlich Glyph-Substitution, Glyph-Positionierung und -Ausrichtung. Die Layout-Services- Bibliothek ist funktionsgemäß zwischen dem Client-Programm und dem Betriebssystem angeordnet und kommuniziert mit den Schriftsatztabellen. Die Layout-Services-Bibliothek dient dem Client-Programm durch Zugreifen auf Schriftsatzinformationen und durch Führen des Betriebssystemes bei der Wiedergabe von Text (Glyphen). Die Layout-Services-Bibliothek vereinfacht die Arbeit der Textverarbeitung, indem sie den Client von den Details der Schriftsatzformatierung und von den Details der Operationen des Betriebssystems isoliert. Insbesondere erlaubt die Layout-Services-Bibliothek den Clients auf der Ebene von Schriftzeichen und Merkmalen (z. B. ein Super-Script-Merkmal) zu arbeiten, mit denen die Clients schon vertraut sind.
  • Um eine alternative Glyph-Form auszusuchen, definiert das Client-Programm einen Textverlauf und ordnet der Layout-Services-Bibliothek (Server) an, den Textverlauf zu scannen und Schriftzeichen die alternative Glyph-Formen haben zu identifizieren. Als Antwort liefert die Layout-Services-Bibliothek eine Liste von Merkmalsparameterstrukturen, von denen jede eine Zählung der Anzahl von Glyph-Alternativen, welche auf jedes identifizierte Schriftzeichen zutreffen, beinhaltet. Das Client-Programm nutzt diese Information, um eine Liste von identischen Schriftzeichen, eine jede mit einem unterschiedlichen Parameter, zusammenzustellen. Das Client-Programm ruft dann die Layout-Services-Bibliothek an, um eine Liste von allen Glyph-Alternativen (Varianten) zu erhalten. Das Client-Programm nimmt die Liste von Glyph- Alternativen und legt die Liste dem Anwender des Client-Programms vor. Nachdem der Anwender ein alternatives Glyph gewählt hat, markiert das Client-Programm das Schriftzeichen im Textverlauf mit einer Merkmalsbeschreibung und versieht es mit einem Parameter, welcher die vom Anwender gewählte Glyph-Alternative identifiziert.
  • Zur Positionierung eines Glyphs ruft das Client-Programm die Layout-Services-Bibliothek (Server) auf, um Glyph-Positions-Informationen für jedes Schriftzeichen in einem Textverlauf zu erhalten. Die Layout-Services-Bibliothek gibt Informationen zur Positionierung der Glyphen entlang einer Grundlinie für den Textverlauf zurück. Insbesondere liefert die Layout-Services- Bibliothek einen Advance-Wert einer virtuellen Stiftspitze entlang der Grundlinie, einen X- Plazierungswert des Glyphs von der virtuellen Stiftspitze und einen Y-Plazierungswert des Glyphs von der virtuellen Stiftspitze. Von den Advance-, X- und Y-Informationen kann das Betriebssystem den Glyph in der korrekten Position in dem wiedergegebenen Textverlauf darstellen.
  • Der Client verfolgt auch die Zahlenglyphen, welche mittels Positionierungsinformationen von der Layout-Services-Bibliothek positioniert werden. Aus dem Ergebnis dieser Zählung kann das Client-Programm entscheiden, ob die Nutzung der Layout-Services-Bibliothek zur Glyph- Positionierung fortgesetzt, oder ob die Layout-Services-Bibliothek umgangen werden soll und die Glyphen basierend auf den Standardpositionsinformationen in dem Anzeigegerät wiedergegeben werden. Insbesondere erzeugt der Client eine Liste, welche einen Merker für geben werden. Insbesondere erzeugt der Client eine Liste, welche einen Merker für jeden Glyph in einem Textverlauf enthält, welcher anzeigt, ob das Glyph durch die Layout-Services- Bibliothek positioniert wurde. Wenn eine vorgegebene Anzahl von aufeinander folgenden Glyphen nicht mittels der Layout-Services-Bibliothek positioniert wurde, und wenn diese Glyphen in den Druckvorrichtungen mit schon definierten Standard- Positionierungsinformationen existieren, kann sich ein Druck-Client dazu entscheiden, Glyphen ohne Positionierungsinformationen von der Layout-Services-Bibliothek zu der Druckvorrichtung zu laden. Ein solches Verfahren kann beim Runterladen eines Textverlaufs zu einer Druckvorrichtung Zeit sparen.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 ist ein Blockdiagramm eines Personalcomputers und stellt die Betriebsumgebung für eine Ausführungsform der vorliegenden Erfindung dar.
  • Fig. 2 ist ein Blockdiagramm und stellt die Architektur eines Computersystems für eine Ausführungsform der vorliegenden Erfindung dar.
  • Fig. 3 ist ein Fließdiagramm und stellt die üblicherweise genutzten Schritte zum Layout eines Textverlaufs in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung dar.
  • Fig. 4 ist ein Fließdiagramm und stellt die Schritte zur Identifizierung alternativer Glyph-Formen für einen Anwender und Wiedergabe einer ausgewählten Glyph- Form dar, wenn ein Textverlauf in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung wiedergegeben wird.
  • Fig. 5 ist ein Fließdiagramm und stellt die Schritte zur Positionierung von Glyphen dar, wenn ein Textverlauf in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung wiedergegeben wird.
  • Ausführliche Beschreibung
  • Die vorliegende Erfindung betrifft ein Verfahren zur Wiedergabe von Glyphen in einem Textverlauf mittels einer Layout-Services-Bibliothek, um die Glyph-Variationen zu identifizieren und um die Glyphen entlang einer Grundlinie für den Textverlauf zu positionieren. Insbesondere betrifft die vorliegende Erfindung ein Verfahren zur Identifikation alternativer Glyph- Formen für einen Anwender und Wiedergabe einer ausgewählten Glyph-Form, wenn ein Textverlauf unter Nutzung einer Layout-Services-Bibliothek wiedergegeben wird. Die vorliegende Erfindung betrifft auch ein Verfahren zur Positionierung von Glyphen, wenn ein Textverlauf unter Nutzung einer Layout-Services-Bibliothek wiedergegeben wird. In einer Ausführungsform kann die Erfindung in ein Betriebssystem wie, z. B. das WINDOWS-Betriebssystem, welches von Microsoft Corporation of Redmond, Washington vertrieben wird, integriert werden. In anderen Ausführungsformen kann die Erfindung in einen Internet-Browser, wie z. B. der INTERNET-EXPLORER Browser oder ein Publishing-Programm, wie z. B. das Publisher- Programm, welche beide von der Microsoft Corporation vertrieben werden, integriert werden.
  • Kurz beschrieben, beinhaltet das Verfahren zur Identifizierung alternativer Glyph-Formen für einen Anwender, dass das Client-Programm einen darzustellenden Textverlauf identifiziert. Für den identifizierten Textverlauf instruiert das Client-Programm die Layout-Services-Bibliothek den Textverlauf zu scannen, um die Stellen der Schriftzeichen, für die es alternative Glyph- Formen gibt, zu identifizieren. Die Layout-Services-Bibliothek gibt eine Liste von Merkmalsparameterstrukturen zurück, welche die Schriftzeichenpositionen für die alternative Glyphen zur Verfügung stehen identifiziert. Von dieser Information stellt der Client eine Liste von identischen Schriftzeichen zusammen, welche verschiedene Parameter haben. Der Client ruft dann über die Layout-Services-Bibliothek eine Liste von allen Glyph-Alternativen oder Varianten auf. Dann bietet das Client-Programm diese Liste von Alternativen dem Anwender an, der eine der Alternativen auswählt. Danach markiert das Client-Programm das Schriftzeichen in dem Textverlauf mit einer Merkmalsbeschreibung und kennzeichnet es mit einem Parameter, welcher die vom Anwender gewählte Glyph-Form identifiziert.
  • Unter Berücksichtigung von Glyph-Positionierung identifiziert das Client-Programm einen Textverlauf zur Wiedergabe. Das Client-Programm ruft danach die Layout-Services- Bibliothek, welche in Erwiderung Daten, die den Fortschritt einer virtuellen Stiftspitze von Glyph zu Glyph entlang der Grundlinie beschreiben, ein X-Plazierungswert und ein Y- Plazierungswert, zurückgibt. Der X-Plazierungswert und der Y-Plazierungswert werden zur Positionierung des Glyphs mit Bezug auf die virtuelle Stiftspitze auf der Grundlinie genutzt.
  • Durch Nutzung der Layout-Service-Bibliothek ist das Client-Programm von den Details der Schriftsatz-Files und der Darstellungsmöglichkeiten des Betriebssystems isoliert.
  • Beispielhafte Betriebsumgebung
  • Fig. 1 und die folgende Erörterung sind dazu gedacht, eine kurze, allgemeine Beschreibung einer geeigneten EDV-Umgebung, in welcher die Erfindung ausgeführt werden kann, zu geben. Obwohl die Erfindung im allgemeinen Kontext eines Anwenderprogramms (Client- Programms), welches auf einem Betriebssystem in Verbindung mit einem Personalcomputer läuft, beschrieben wird, werden Fachleute erkennen, dass die Erfindung auch in Kombination mit anderen Programm-Modulen ausgeführt werden kann. Im Allgemeinen beinhalten Programm-Module Routinen, Programme, Bausteine, Datenstrukturen etc., welche bestimmte Aufgaben erfüllen oder bestimmte abstrakte Datentypen ausführen. Darüber hinaus werden Fachleute abschätzen können, dass die Erfindung mit anderen Computersystem- Konfigurationen ausgeführt werden kann, einschließlich tragbaren Geräten, Multiprozessor- Systemen, Microprozessor-basierter oder programmierbarer Unterhaltungselektronik, Minicomputern, Mainfraim-Computern und ähnlichem. Die Erfindung kann auch in verteilten EDV- Umgebungen ausgeführt werden, in denen Aufgaben durch entfernte Verarbeitungsvorrichtungen, welche mittels Kommunikationsnetzwerken verbunden sind, ausgeführt werden. In einer verteilten EDV-Umgebung können Programm-Module sowohl in lokalen als auch in entfernten Speichervorrichtungen liegen.
  • Bezugnehmend auf Fig. 1, beinhaltet ein Beispielsystem für die Ausführung der Erfindung einen konventionellen Personalcomputer 20, welcher eine Verarbeitungseinheit 21 beinhaltet, einen Systemspeicher 22 und einen Systembus 23, der den Systemspeicher mit der Verarbeitungseinheit 21 verbindet. Der Systemspeicher 22 beinhaltet einen read only memory (ROM) 24 und einen random access memory (RAM) 25. Ein basic input/output system 26 (BIOS), welches die Basisroutinen enthält, die den Informationstransfer zwischen Elementen in dem Personalcomputer 20, wie z. B. während des Hochfahrens, unterstützt, ist im ROM 24 gespeichert. Der Personalcomputer 20 beinhaltet weiter eine Hard Disk 27, ein Magnet Laufwerk 28, z. B. zum Lesen oder Beschreiben einer Diskette 29 und ein optisches Laufwerk 30, z. B. zum Lesen einer CD-ROM 31 oder zum Lesen oder Beschreiben eines anderen optischen Mediums. Die Hard Disk 27, Magnet Laufwerk 28 und optisches Laufwerk 30 sind an dem Systembus 23 jeweils mittels eines Hard Disk Interfaces 32, einem Magnet Laufwerk Interface 23 und einem optischen Laufwerk Interface 24 verbunden. Die Laufwerke und ihre zugehörigen computerlesbaren Medien stellen dauerhaften Speicherplatz für den Personalcomputer 20. Obwohl sich die oben genannte Beschreibung eines computerlesbaren Mediums auf einer Hard Disk bezieht, eine Diskette und eine CD-ROM-Scheibe, sollte es für einen Fachmann verständlich sein, dass andere Arten von Medien, welche computerlesbar sind, wie z. B. Magnetkassetten, Flash Memory Cards, digitale Videoscheiben, Bernoulli Cartridges und ähnliches, in der beispielhaften Betriebsumgebung genutzt werden können.
  • Eine Reihe von Programm-Modulen kann in den Laufwerken und RAM 25 gespeichert werden, einschließlich einem Betriebssystem 35, ein oder mehrere Anwendungsprogramme 36, andere Programm-Module 37, Programmdaten 38 und eine Layout-Services-Bibliothek 39. Ein Anwender kann Befehle und Informationen über ein Keyboard 40 und ein Zeigegerät, wie z. B. eine Maus 42, in den Personalcomputer 20 eingeben. Andere Eingabegeräte (nicht abgebildet) können ein Mikrofon, Joy Stick, Game Pad, Satellitenschüssel, Scanner oder ähnliches beinhalten. Diese und andere Eingabegeräte sind oft an die Eingabeeinheit 21 mittels eines Serial Port Interface 46 angeschlossen, welches an dem Systembus angekoppelt ist, aber sie können auch mittels anderer Interfaces, z. B. einem Game Port oder einem Universal Serial Bus (USB), angeschlossen sein. Ein Monitor 47, oder eine andere Art von Anzeigevorrichtung, ist ebenfalls an dem Systembus 23 über ein Interface, wie z. B. ein Video-Adapter 48, angeschlossen. Zusätzlich zu dem Monitor verfügen Personalcomputer üblicherweise über andere periphere Ausgabevorrichtungen (nicht abgebildet), wie z. B. Lautsprecher oder Drucker.
  • Der Personalcomputer 20 kann in einer vernetzten Umgebung mittels logischen Verknüpfungen zu einem oder mehreren dezentralen Computern, wie der dezentrale Computer 49, arbeiten. Der dezentrale Computer 49 kann ein Server, ein Router, eine Peer-Vorrichtung oder ein anderer üblicher Netzwerkknoten sein und beeinhaltet üblicherweise viele oder alle der Elemente, welche im Zusammenhang mit dem Personalcomputer 20 beschrieben wurden, obwohl in Fig. 1 nur eine Speichervorrichtung 50 abgebildet ist. Die in Fig. 1 dargestellte logische Verknüpfung beinhaltet ein Local Area Network (LAN) 51 und ein Wide Area Network (WAN) 52.
  • Solche Netzwerkumgebungen sind Allgemeingut in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet.
  • Wenn der Personalcomputer 20 in einer LAN-Netzwerkumgebung genutzt wird, ist er an dem LAN 51 durch ein Netzwerk-Interface 53 verbunden. Wenn der Personalcomputer 20 in einer WAN-Netzwerkumgebung genutzt wird, beinhaltet er üblicherweise ein Modem 54 oder andere Mittel, um eine Kommunikation über das WAN 52 herzustellen, wie z. B. das Internet. Das Modem 54, welches intern oder extern sein kann, ist an dem Systembus 23 über das Serial Port Interface 46 angeschlossen. In einer vernetzten Umgebung können die im Zusammenhang mit dem Personalcomputer 20 beschriebenen Programm-Module, oder Teile davon in dem Remote Memory Speicher gespeichert werden. Es ist verständlich, dass die abgebildeten Netzwerkverbindungen beispielhaft sind und andere Mittel zur Herstellung einer Kommunikationsverbindung zwischen den Computern genutzt werden können.
  • Ausführungsform einer Layout-Services-Bibliothek
  • Eine Ausführungsform der vorliegenden Erfindung kann durch ein Textverarbeitungsprogramm zur Darstellung eines Textverlaufs auf einem Anzeigegerät unter Nutzung einer Layout- Services-Bibliothek genutzt werden und wird im folgenden als Ausführungsform einer Layout- Services-Bibliothek bezeichnet. Andere Ausführungsform der vorliegenden Erfindung können in anderen Textverarbeitungsprogrammen, wie z. B. ein Publishing Programm oder ein Browser, genutzt werden.
  • Die Ausführungsform einer Layout-Services-Bibliothek kann mit einer Reihe von Schriftsätzen, welche dem OpenTypeLayout-Standardschriftsatz entsprechen, genutzt werden. Schriftsatz-Files entsprechend dem OpenTypeLayout-Standardschriftsatz definieren Glyphen, Schriften, Sprachsysteme und Merkmale. Ein Glyph ist eine Darstellung von einem oder mehreren Schriftzeichen. Ein einzelner Glyph kann z. B. ein einzelnes Schriftzeichen, wie z. B. den Kleinbuchstaben "f", darstellen oder ein einzelnes Glyph kann eine Reihe von Schriftzeichen, wie z. B. die Kleinbuchstaben "fi" darstellen. Eine Schrift ist eine Gruppe von verwandten Schriftzeichen, welche in einer oder mehreren Sprachen genutzt werden können. Lateinisch, arabisch und thailändisch sind Beispiele von Schriften. Eine Schrift kann in Sprachsysteme aufgeteilt werden. Die lateinische Schrift wird z. B. im englischen, französischen und deutschen Sprachsystem genutzt. Jedes Sprachsystem kann verschiedene Anforderungen zur Textverarbeitung haben. Ein Sprachsystem kann auch eine Reihe von Merkmalen unterstützen. Ein Merkmal ist eine von dem Schriftsatz angebotene Funktion. Der OpenTypeLayout- Standardschriftsatz unterstützt eine Reihe von Merkmalen, einschließlich einem Swash- Merkmal und einem Doppelbuchstabenmerkmal. Das Swash-Merkmal ersetzt ein Standard- Glyph mit einem alternativen Glyph und das Doppelbuchstabenmerkmal ersetzt eine Reihe von Glyphen mit einem Doppelbuchstabenglyph.
  • Der OpenTypeLayout-Standardschriftsatz definiert fünf Schriftsatztabellen. (1) Eine Glyphensubstitutionstabelle, (2) eine Glyphen-Positionstabelle, (3) eine Ausrichtungstabelle, (4) eine Grundlinientabelle und (5) eine Glyphendefinitionstabelle. Die Schriftsatztabellen enthalten Informationen zur Unterstützung der Merkmale des Schriftsatzes. Die Glyph- Substitutionstabelle enthält z. B. Informationen für Glyph-Substitutionen zur Unterstützung von Einzel-Glyph-Substitutionen, one-to-many-Substitutionen (Doppelbuchstabenzerlegung), ästhetische Alternativ-Substitutionen, multiple Glyph-Substitutionen (Doppelbuchstaben) und textabhängige Glyph-Substitutionen. Die Glyph-Positionstabelle enthält Informationen zur Positionierung von Glyphen durch Bereitstellung eines Advance-Wertes, eines X- Plazierungswertes und eines Y-Plazierungswertes. Die Glyph-Positionierungsinformation unterstützt eine Einzelanpassung (z. B. um ein Superscript oder Subscript zu unterstützen), eine Paar-Anpassung (z. B. um Kerning zu unterstützen), ein kursiver Anhang (z. B. um kursive Schriften zu unterstützen), ein MarkToBase-Anhang (z. B. zur Unterstützung der Positionierung von Vokalen, diakritischen Zeichen oder Klangzeichen in Arabisch, Hebräisch und Vietnamesisch), ein MarkToLigature-Anhang (z. B. um die Positionierung von Vokalen um Doppelbuchstaben zu unterstützen), ein MarkToMark-Anhang (z. B. um die Positionierung von Klangzeichen unter Berücksichtigung der vokaldiakritischen Zeichen im Vietnamesischen zu unterstützen) und textabhängige Positionierung (z. B. um die Positionierung von einem oder mehreren Glyphen im Kontext zu unterstützen). Die Grundlinientabelle stellt Informationen zum Ausrichten von Textlinien zur Verfügung. Die Ausrichtungstabelle stellt Informationen zur Textausrichtung zur Verfügung. Die Glyph-Definitionstabelle stellt Informationen zu Typklassen, Anhangspunkten und Doppelbuchstaben-Einschaltungszeichen zur Verfügung.
  • Ein Textverarbeitungsprogramm benutzt die von der Layout-Services-Bibliothek bereitgestellten Funktionen, um Text zu layouten. Die Layout-Services-Bibliothek greift auf die Schriftsatztabellen zu und stellt dem Textverarbeitungsprogramm Textlayout-Vorschläge zur Verfügung. Das Textverarbeitungsprogramm kann einige, alle oder keine der von der Layout-Services- Bibliothek empfangenen Vorschläge umsetzen. Das Textverarbeitungsprogramm greift auf die Layout-Services-Bibliothek zu, indem es Funktionsanfragen an die Bibliothek ausgibt. Üblicherweise definiert das Textverarbeitungsprogramm einen Textverlauf, welcher mit einem Funktionsaufruf verbunden ist. Ein Textverlauf ist ein Stück eines Textes mit einem bestimmten Schriftsatz, in einer bestimmten Größe, in einer bestimmten Schrift und einem bestimmten Sprachsystem. Das Textverarbeitungsprogramm kann außerdem zusätzliche Parameter für eine Funktion definieren. Um zum Beispiel die Glyph-Positionierungsfunktion aufzurufen, definiert der Textverarbeitungs-Client einen Text-Run. Als Antwort auf den Funktionsaufruf zur Glyph- Positionierung gibt die Layout-Services-Bibliothek den Advance-Wert, den X-Plazierungswert und den Y-Plazierungswert für jedes Glyph in dem Textverlauf zurück. Die Daten sind üblicherweise in einer von der Layout-Services-Bibliothek definierten Datenstruktur gespeichert. Das Textverarbeitungsprogramm kann die zurückgegebenen Werte zur horizontalen und vertikalen Glyph-Positionierung nutzen. Die Funktionsaufrufe und die Datenstrukturen, welche zur Unterstützung des Alternativ-Glyph-Verfahrens und des Glyph-Positionierungsverfahrens genutzt werden, werden ausführlich in dem Abschnitt mit dem Namen "Layout-Services- Bibliothek-Interface" beschrieben.
  • Layout-Services-Bibliotheks-System-Architektur
  • Die Architektur für ein System, welches die Ausführungsform der Layout-Services-Bibliothek gemäß der vorliegenden Erfindung ausführt, ist in Fig. 2 dargestellt. Ein Textverarbeitungsprogramm (Client-Programm) 202 verarbeitet Text von einem Textdokumentenfile 210 zur Anzeige auf einem Anzeigegerät, wie zum Beispiel einem Monitor 200, einem Drucker oder anderen Pixel-Displays. Der Dokumententext wird mittels der Textverarbeitungsfunktionen, welche von der Layout-Services-Bibliothek 208 bereitgestellt werden, auf dem Anzeigegerät 200 dargestellt. Das Textverarbeitungsprogramm 202 ist ein Client der von der Layout- Services-Bibliothek 208 bereitgestellten Dienste. Obwohl die Layout-Services-Bibliothek 208 in Fig. 2 als Teil des Betriebssystems 204 dargestellt ist, kann die Layout-Services-Bibliothek 208 auch eine dynamisch verknüpfte Bibliothek sein, welche zwischen dem Textverarbeitungsprogramm 202 und dem Betriebssystem 204 angeordnet ist. Die Layout-Services-Bibliothek 208 verfügt über Schnittstellen mit einer oder mehreren Reihen von Schriftsatztabellen 212a, 212b ... 212n. Die Layout-Services-Bibliothek 208 nutzt die in den Schriftsatztabellen 212a, 212b ... 212n gespeicherten Informationen, um das Textverarbeitungsprogramm 202 mit Layout-Informationen und Layout-Vorschlägen zu versorgen. Das Textverarbeitungsprogramm 202 kommuniziert mit der Layout-Services-Bibliothek 208 über eine Reihe von Application- Programm-Inferfaces (API's).
  • Die in der Layout-Services-Bibliothek enthaltenen API's unterstützen das Glyph- Darstellungsverfahren gemäß der vorliegenden Erfindung, einschließlich des Alternativ-Glyph- Identifikationsverfahrens und des Glyph-Positionierungsverfahrens. Die Layout-Services- Bibliothek greift auf die Schriftsatztabellen zu und führt das Textverarbeitungsprogramm bei Identifikation und Selektion der alternativen Glyph-Formen und Positionierung der Glyphen in einem Textverlauf.
  • Um das Textfile auf dem Anzeigegerät 200 darzustellen, benutzt das Textverarbeitungsprogramm 202 einen Rastorizer 206. Der Rastorizer 206 ist üblicherweise innerhalb des Betriebssystems 204 angeordnet. Der Rastorizer 206 erhält Informationen von den Schriftsatztabellen 212, um den Text auf dem Ausgabegerät 200 darzustellen.
  • Textwiedergabeverfahren
  • Die Schritte zur Wiedergabe eines Textverlaufs mittels einer Layout-Services-Bibliothek sind in Fig. 3 abgebildet. In Schritt 300 definiert das Textverarbeitungsprogramm einen Textverlauf zur Wiedergabe. Der Textverlauf wird danach in den Schritten 302 bis 310 wiedergegeben. Im Schritt 302 gibt der Textverarbeitungsclient einen Funktionsaufruf zur Glyph- Substituierung an die Layout-Services-Bibliothek. In Erwiderung greift die Layout-Services- Bibliothek auf die Schriftsatztabellen zu, um zu entscheiden, welche Glyphen für welche Schriftzeichen substituiert werden sollen. Die Layout-Services-Bibliothek gibt eine Liste von durch den Glyph-Substitutionsfunktionsaufruf modifizierten Glyphen zurück. Der Glyph- Substitutionsfunktionsaufruf ist zur Bereitstellung von Glyph-Substitutionsformen in einer Vielzahl von Umständen vorgesehen, in denen keine Eins-zu-eins-Abbildung zwischen einem Schriftzeichen und dem wiedergegebenen Glyph existiert. Eine Glyph-Substitution kann benötigt werden, wenn sich die Glyph-Form von einem Schriftzeichen aufgrund des Kontextes verändert. Zum Beispiel hat das Schriftzeichen "g" im Arabischen vier Glyph-Formen, je nachdem, ob es alleine auftritt, am Anfang eines Wortes, in der Mitte eines Wortes oder an dem Ende eines Wortes. Der Glyph-Substitutionsschritt 302 ist auch als Substitution für einen Doppelbuchstaben-Glyph, für zwei oder mehr Glyphen in einem Textverlauf vorgesehen. Zusätzlich ist der Glyph-Substitutionsschritt 302 zur Identifikation und Wiedergabe von alternativen Formen eines Glyph vorgesehen, basierend auf der Anwenderselektion gemäß der vorliegenden Erfindung, wie es ausführlich in der Sektion mit dem Titel "Identifikation von Glyph- Varianten" beschrieben wird.
  • Nachdem die Glyphen, einschließlich der Substitution von selektierten Glyph-Varianten, substituiert wurden, gibt das Textverarbeitungsprogramm einen Glyph-Positionierungs- Funktionsaufruf in Schritt 304 ab. Die Layout-Services-Bibliothek greift auf die Glyph- Positionierungstabelle zu, um die Glyph-Positionsinformation für den Textverlauf festzulegen. Die Layout-Services-Bibliothek gibt für jeden Glyph in dem Textverlauf eine Glyph- Positionierungsinformation zurück, einschließlich dem Advance-Wert einer virtuellen Stiftspitze entlang einer Grundlinie, dem X-Plazierungswert und dem Y-Plazierungswert. Der Glyph- Positionierungsschritt 304 der vorliegenden Erfindung wird ausführlich in der Sektion mit dem Titel "Positionierung von Glyphen" beschrieben.
  • Nachdem die Glyphen entlang der Grundlinie positioniert wurden, fährt der Wiedergabeprozess mit dem Paragraphen-Layout im Schritt 306 fort. Paragraphen-Layout wird durch Vergleichen der Länge des Textverlaufs mit einer vordefinierten Zeilenlänge erreicht. Um die Länge des Textverlaufs festzulegen, gibt das Textverarbeitungsprogramm einen Funktionsaufruf zur Längenberechnung an die Layout-Services-Bibliothek ab. Als Antwort konvertiert die Layout- Services-Bibliothek die Glyph-Positionen des Textverlaufs zu Schriftzeichenpositionen und berechnet die Länge des Textverlaufs. Die Layout-Services-Bibliothek gibt eine Startposition und eine Endposition an das Textverarbeitungsprogramm zurück. Die Startposition beschreibt das linke oder obere Ende des ersten Schriftzeichens und die Endposition beschreibt das rechte oder untere Ende des letzten Schriftzeichens, für eine rechts nach links Layout-Richtung. Das Textverarbeitungsprogramm vergleicht die Start- und Endpositionen mit der Linienlänge, um zu bestimmen, ob der Textverlauf die Linienlänge überschreitet. Wenn die Länge des Textverlaufs kleiner oder gleich der Linienlänge ist, dann ist das Paragraphen-Layout vollständig.
  • Wenn der Textablauf größer ist als die Linienlänge, gibt das Textverarbeitungsprogramm einen Schriftzeichenidentifikations-Funktionsaufruf an die Layout-Services-Bibliothek ab, um die Identifikation des Schriftzeichens, welches am Ende der Linie angeordnet ist, abzufragen. Die Layout-Services-Bibliothek bestimmt die Identität des Schriftzeichens am Ende der Linie. Wenn das Schriftzeichen am Ende der Linie ein Leerzeichen ist, wird der Textverlauf geteilt. Der Textverlauf wird in einen Parent Textverlauf und einen Child Textverlauf aufgeteilt. Der Textverlauf wird am Leerzeichen aufgeteilt, so dass der Parent Textverlauf den Text beinhaltet, welcher nicht die Linienlänge überschreitet und der Child Textverlauf beinhaltet den Rest des Textverlaufs.
  • Falls das Schriftzeichen am Linienende kein Leerzeichen ist, dann geht das Textverarbeitungsprogramm im dem Textverlauf zurück und erfragt die Identifikation des Schriftzeichens an der vorhergehenden Schriftzeichenstelle. Das Textverarbeitungsprogramm setzt die Rückverfolgung des Textverlaufs fort, bis ein Leerzeichen gefunden ist. Nachdem ein Leerzeichen gefunden ist, wird der Textverlauf aufgeteilt und der Prozess läuft weiter, bis das Layout des kompletten Textverlaufs fertig ist.
  • Sobald das Paragraphenlayout komplett ist, wechselt der Wiedergabeprozess zu dem Ausrichtungsschritt 308, falls Ausrichtung ermöglicht wurde. Um die Ausrichtung auszuführen, richtet das Textverarbeitungsprogramm den Textverlauf Linie für Linie aus. Sobald der Textverlauf in einen Parent Textverlauf und einen Child Textverlauf in dem Paragraphenlayoutschritt 306 aufgeteilt ist, wird der Parent Textverlauf ausgerichtet, indem der Parent Textverlauf als Ausrichtungslinie genutzt wird. Sobald die Linie definiert ist, wird festgestellt, ob die Länge der Linie gleich der Linienlänge ist. Falls die Länge der Linie gleich der Linienlänge ist, ist die Ausrichtung komplett. Falls die Länge der Linie nicht gleich der Linienlänge ist, wählt das Textverarbeitungsprogramm ein Ausrichtungsprioritätsschema. Das Ausrichtungsprioritätsschema gibt die Schärfe der zur Ausrichtung der Linie erlaubten Modifizierungen an. Eine erste Ausrichtungspriorität kann zum Beispiel die einfachste Art von Anpassung, um die Ausrichtungspriorität zu erfüllen, beinhalten, wie zum Beispiel Zeichenabstandsanpassungen. Nachfolgende Ausrichtungsprioritäten würden weitreichendere Techniken um eine Ausrichtung zu erreichen erlauben, wie zum Beispiel Austauschen oder Umpositionieren von Glyphen.
  • Sobald das Textverarbeitungsprogramm die Ausrichtungspriorität gewählt hat, gibt das Textverarbeitungsprogramm einen Ausrichtungsinformationsfunktionsaufruf an die Layout- Services-Bibliothek ab. Der Ausrichtungsinformationsfunktionsaufruf verlangt eine Bestätigung, dass die angefragte Ausrichtungspriorität durch den Schriftsatz unterstützt wird. Die Layout-Services-Bibliothek greift auf die Schriftsatztabellen zu, um zu bestimmen, ob die Ausrichtungspriorität unterstützt wird und wenn die Ausrichtungspriorität unterstützt wird, ob Glyph-Substitution und/oder Glyph-Positionierung benötigt wird. Das Textverarbeitungsprogramm empfängt die Antwort der Layout-Services-Bibliothek auf den Ausrichtungsinformationsfunktionsaufruf. Wenn die Antwort anzeigt, dass die angefragte Ausrichtungspriorität unterstützt wird, dann fährt das Verfahren von Schritt 308 fort, die Textlinien auszurichten. Falls die Antwort zeigt, dass die angefragte Ausrichtungspriorität nicht unterstützt wird, tritt ein Ausrichtungsfehler auf. Paragraphenlayout und Ausrichtung wird ausführlich in der gleichzeitig eingereichten und vom gleichen Anmelder veröffentlichten internationalen Patentanmeldung WO 99/00 748, für ein Verfahren zum Layout eines Paragraphen mittels einer Layout-Services- Bibliothek, beschrieben.
  • Im Schritt 310 weist das Textverarbeitungsprogramm 202 unter Nutzung der von der Layout- Services-Bibliothek 208 bereitgestellten Informationen das Betriebssystem 204 dazu an, die Glyphen auf dem Anzeigegerät 200 wiederzugeben.
  • Identifikation von Glyph-Varianten
  • In Fig. 4 ist der Alternativ-Glyph-Selektionsprozess des Glyph-Substitutionsschrittes 302 aus Fig. 3 ausführlich dargestellt. Der Alternativ-Glyph-Selektionsprozess des Glyph- Substitutionsschrittes 302 folgt, nachdem das Textverarbeitungssystem 202 einen Textverlauf in Schritt 300 (Fig. 3) definiert hat. Das Textverarbeitungssystem ruft die GetOtlFeatureParams-Funktion auf. Als Antwort auf den GetOtlFeatureParams-Aufruf sucht die Layout- Services-Bibliothek in Schritt 400 den Textverlauf ab, und identifiziert die Standorte von Schriftzeichen, für die es alternative Glyphen gibt. Im Schritt 402 gibt der Server eine Otl-Liste von Merkmalsparameterstrukturen zurück, von denen jede eine Zählung der Anzahl von Glyph- Alternativen enthält, die auf diese Schriftzeichenposition anwendbar sind. Eine Otl-Liste ist eine von der Layout-Services-Bibliothek definierte Datenstruktur, welche dazu dient, eine Reihe von verschiedenen Datenlisten darzustellen, wie zum Beispiel Schriftzeichen, Glyphen, Attributen und Koordinaten. Im Schritt 404 nutzt der Client die von der Layout-Services- Bibliothek zurückgegebenen Informationen, um eine Liste von identischen Schriftzeichen zusammenzustellen, wobei jede eine verschiedene Kennziffer erhält.
  • Im Schritt 406 ruft das Textverarbeitungssystem die SubstituteOtlGlyph-Funktion auf, um eine Liste von Glyph-Varianten zu erhalten. Im Schritt 408 bietet das Textverarbeitungssystem dem Anwender des Textverarbeitungsprogramm eine Liste von Glyph-Varianten dar, der im Schritt 410 eine Glyph-Variante zur Wiedergabe wählt. Im Schritt 412 kennzeichnet das Textverarbeitungssystem die Schriftzeichen in dem Textverlauf mit einer Merkmalsbeschreibung und markiert die Schriftzeichen mit einem Parameter, welcher bestimmt, welche Glyph-Variante der Anwender gewählt hat, so dass jedesmal, wenn dieses Schriftzeichen im folgenden auftaucht, das Schriftzeichen mit derselben Glyphvariante wiedergegeben wird.
  • Im Schritt 414 bestimmt das Textverarbeitungssystem, ob das gekennzeichnete Schriftzeichen (Schritt 412) das letzte Schriftzeichen in der im Schritt 404 erstellten Liste war. Wenn das gerade verarbeitete Schriftzeichen nicht das letzte Schriftzeichen ist, folgt das Verfahren dem "No"-Zweig zurück zum Schritt 406 zur Identifikation und Selektion der Variante, aus der in Schritt 404 erstellten Liste, für das nächste Schriftzeichen. Wenn das Schriftzeichen das letzte von den identischen Schriftzeichen von Schritt 404 ist, folgt das Verfahren dem "Yes"-Zweig zu dem Glyph-Positionierungsschritt 304 (Fig. 3).
  • Positionierung von Glyphen
  • In Fig. 3 geht der Glyph-Substitutionsprozess in Schritt 302 zu dem Glyph- Positionierungsschritt in 304 weiter. Der Glyph-Positionierungsschritt in 304 wird ausführlich in Verbindung mit Fig. 5 beschrieben.
  • Am Beginn von Schritt 304 bestimmt das Textverarbeitungssystem zuerst im Schritt S12 die Anzahl von aufeinanderfolgenden Glyphen, welche vorher ohne Nutzung der Informationen aus der Layout-Services-Bibliothek positioniert wurden. Wenn die Anzahl der aufeinanderfolgenden Glyphen, welche ohne Nutzung der Layout-Services-Bibliothek positioniert wurde, größer als eine vorgegebene Nummer N ist, folgt das Verfahren dem "Yes"-Zweig zum Schritt 514. Im Schritt S14 bestimmt das Textverarbeitungssystem, ob in der Anzeigevorrichtung eine standardmäßige Positionsinformation zur Verfügung steht. Wenn eine standardmäßige Positionsinformation in dem Anzeigegerät verfügbar ist, folgt das Verfahren dem "Yes"-Zweig von Schritt 514 und das Glyph-Positionierungsverfahren von Schritt 304 endet.
  • Falls das Textverarbeitungssystem in einem der Schritte 512 oder 514 bestimmt, dass die Anzahl von aufeinanderfolgenden Glyphen, welche ohne Nutzung der Information von der Layout-Services-Bibliothek positioniert wurden, nicht eine vorbestimmte Anzahl N übersteigt, oder wenn keine Standardpositionierungsinformation existiert, folgt das Verfahren dem "No"- Zweig von einem der beiden Schritte 512 oder 514 zum Schritt 516.
  • Im Schritt S16 gibt der Client einen Aufruf an die Layout-Services-Bibliothek für Positionierungsinformationen ab. Im Schritt S18 gibt die Layout-Services-Bibliothek den Advance-Wert für eine virtuelle Stiftspitze entlang einer, vom Textverarbeitungssystem angeordneten, Grundlinie zurück. Zusätzlich gibt die Layout-Services-Bibliothek den X-Plazierungswert für den Glyph zurück und gibt den Y-Plazierungswert für den Glyph zurück. Hat das Textverarbeitungssystem den Advance-Wert, X-Plazierungswert und Y-Plazierungswert für den Glyph erhalten, ist es in der Lage, den Glyph in der richtigen Position entlang der vorher festgesetzten Grundlinie mittels der Ressourcen des Betriebssystems 204 (Fig. 2) wiederzugeben.
  • Layout-Services-Bibliothek-Interface
  • Die Layout-Services-Bibliothek stellt eine Reihe von Textverarbeitungsfunktionen zur Nutzung durch einen Textverarbeitungs-Client zur Verfügung. Die Textverarbeitungsfunktionen greifen auf Schriftsatzinformationen, welche in Schriftsatztabellen gespeichert sind, zurück und isolieren den Textverarbeitungsclient von Details der Schriftsatztabellenformate. Die Layout- Services-Bibliothek enthält üblicherweise Schriftsatzinformationsfunktionen, Textlayoutfunktionen und Textinformationsfunktionen. Die Schriftsatzinformationsfunktionen geben Informationen über den Schriftsatz zurück, wie zum Beispiel die unterstützten Schriften, Sprachsysteme und von dem Schriftsatz unterstützte Merkmale. Die Textlayoutfunktionen bieten fundamentale Layout-Dienste, einschließlich Glyph-Substitution, Glyph-Positionierung und Ausrichtung. Die Textinformationsfunktionen geben Informationen über den Text in einem gegebenen Textverlauf wieder. Ein Textverarbeitungsprogramm ruft die, von der Layout-Services- Bibliothek angebotenen, Textverarbeitungsfunktionen über einen Funktionsaufruf auf. Die Lay- Layout-Services-Bibliothek gibt Informationen an das Textverarbeitungsprogramm über eine Datenstruktur zurück, wie zum Beispiel einer OtlList-Datenstruktur.
  • Die Layout-Services-Bibliothek unterstützt im Besonderen die Glyph-Wiedergabe-Methode, welche in Verbindung mit den Fig. 3, 4 und 5 beschrieben ist. Die Textinformationsfunktion, GetOtlFeatureParams, unterstützt das Glyph-Varianten- Identifikationsverfahren. Die GetOtlFeatureParams-Funktion findet Glyph-Varianten oder Merkmalsparameter innerhalb eines Textverlaufs und gibt ein Ergebnis, ptlParams zurück, welches eine Liste von Merkmalsparameters auf der Schriftzeichenebene ist. Das Client- Programm kann aus dieser Liste eine Liste von Glyph-Varianten für jedes Schriftzeichen im Textverlauf, welches Varianten hat, erzeugen oder abfragen.
  • Die Textlayout-Funktion, PositionOtlGlyphs, unterstützt das Glyph-Positionierungsverfahren. Die PositionOtlGlyphs-Funktion gibt die Ergebnisse ptlDADv, ptlDX und ptlDY für den Advance-Wert der virtuellen Stiftspitze, den X-Plazierungswert und den Y-Plazierungswert für den wiederzugebenden Glyph zurück. Die Verwendung von X-Plazierungs- und Y- Plazierungswerten als auch Advance-Werten erlaubt dem Textverarbeitungssystem Texte zu unterstützen, welche ein hochentwickeltes Layout benötigen. Das Glyph- Positionierungsverfahren benutzt auch Daten, welche von der PositionalOtlGlyphs-Funktion zurückgegeben wurde, um zu bestimmen, wieviele aufeinanderfolgende Glyphen unter Nutzung der Layout-Services-Bibliothek für den Textverlauf positioniert wurden.
  • Zusammengefasst betrifft die vorliegende Erfindung ein Verfahren zur Wiedergabe von Glyphen in einem Textverlauf mittels einer Layout-Services-Bibliothek zur Identifikation von Glyph-Varianten und zur Positionierung von Glyphen entlang einer Grundlinie für einen Textverlauf. Die Layout-Services-Bibliothek stellt eine Reihe von Textverarbeitungsfunktionen zur Unterstützung des Glyph-Wiedergabe-Verfahrens zur Verfügung. In einer Ausführungsform enthält die Layout-Services-Bibliothek Schriftsatzinformationsfunktionen, Textlayout- Funktionen und Textinformationsfunktionen. Es ist für den Fachmann ersichtlich, dass zusätzliche Funktionen zur Verfügung gestellt werden können. Obwohl die Erfindung mittels dem Open Type Layout-Standardschriftsatz gleichwertigen Schriftsätzen beschrieben wurde, kann die Erfindung auf andere Standardschriftsätze und Schriftsätze angewendet werden.
  • Übersetzung der Zeichnungsbeschriftungen Fig. 1
  • 20 Personalcomputer
  • 21 Verarbeitungseinheit
  • 22 Systemspeicher
  • 23 Systembus
  • 24 Read Only Memory (ROM)
  • 25 Random Access memory (RAM)
  • 26 Basic input/output System
  • 27 Hard Disk
  • 28 Magnet Laufwerk
  • 29 Diskette
  • 30 Optisches Laufwerk
  • 31 CD-ROM
  • 32 Hard Disk Interface
  • 33 Magnet Laufwerk Interface
  • 34 Optisches Laufwerk Interface
  • 35 Betriebssystem
  • 36 Anwendungsprogramme
  • 37 Programm-Module
  • 38 Programmdaten
  • 39 Layout-Services-Bibliothek
  • 40 Keyboard
  • 42 Maus
  • 46 Serial Port Interface
  • 47 Monitor
  • 48 Video-Adapter
  • 49 Dezentraler Computer
  • 50 Speichervorrichtung
  • 51 Local Area Network (LAN)
  • 52 Wide Area Network (WAN)
  • 53 Netzwerk-Interface
  • 54 Modem
  • Fig. 2
  • 200 Anzeigegerät
  • 202 Textverarbeitungsprogramm
  • 204 Betriebssytem
  • 206 Rastorizer
  • 208 Layout-Services-Bibliothek
  • 210 Textdokumentenfile
  • 212a ... 212n Schriftsatztabellen
  • Fig. 3
  • 300 Definiere Textverlauf
  • 302 Substituiere Glyphen
  • 304 Positioniere Glyphen
  • 306 Paragraphen-Layout
  • 308 Ausrichtung
  • 310 Textwiedergabe
  • Fig. 4
  • Kommend vom "Definiere Textverlauf"-Schritt 300, Fig. 3
  • 400 Server sucht Text nach Varianten ab
  • 402 Server gibt Liste von Merkmalsparametern zurück
  • 404 Client erstellt Liste von identischen Schriftzeichen
  • 406 Client ruft eine Liste von Varianten auf
  • 408 Client präsentiert eine Liste von Varianten
  • 410 Anwender wählt Varianten aus
  • 412 Client kennzeichnet Schriftzeichen
  • 414 Letztes Schriftzeichen in der Liste?
  • Zum "Positioniere Glyph"-Schritt 304, Fig. 4
  • Fig. 5
  • Vom "Substituiere Glyph"-Schritt 302, Fig. 3
  • 512 Anzahl der nicht vom Server positionierten Glyphen > N?
  • 514 Hat Anzeigevorrichtung standardmäßige Positionsinformationen?
  • 516 Clienz-Aufruf für Glyph-Positionierung
  • 518 Server gibt Werte für Advance-Wert der virtuellen Stiftspitze, X-Platzierungswert des Glyph und Y-Platzierungswert des Glyph zrück
  • Zum "Paragraphen-Layout"-Schritt 306, Fig. 3

Claims (4)

1. Verfahren zur Identifikation alternativer Glyph-Formen in einem Textverlauf für einen Anwender und zur Wiedergabe einer ausgewählten Glyph-Form, gekennzeichnet durch die Bereitstellung einer Layout-Services-Bibliothek (208) zur Ausführung folgender Schritte:
a. Scannen des Textverlaufs nach Schriftzeichen, welche alternative Glyph-Formen haben;
b. Erstellung einer Liste von Schriftzeichen, die alternative Glyph-Formen haben, durch Ausgabe einer Anfrage an die Layout-Services-Bibliothek durch den Client-Prozess, zur Identifikation von Schriftzeichen mit alternativen Glyph- Formen;
c. Bereitstellung einer Liste von alternativen Glyph-Formen für jedes identifizierte Schriftzeichen in dem Textverlauf für den Anwender, durch Ausgabe einer Anfrage an die Layout-Services-Bibliothek durch den Client-Prozess, um alternative Glyph-Formen für jedes identifizierte Schriftzeichen zu erhalten.
d. Markierung eines jeden identifizierten Schriftzeichens mit der Identität der vom Anwender selektierten alternativen Glyph-Form als Antwort auf eine Selektion durch den Anwender;
e. Substitution der ausgewählten alternativen Glyph-Form in dem Textverlauf.
2. Verfahren nach Anspruch 1, worin der Schritt zur Erstellung einer Liste von Schriftzeichen mit alternativen Glyph-Formen die Nutzung der Layout-Services-Bibliothek umfasst, um auf eine Glyph-Substitutions-Schriftsatz-Tabelle zuzugreifen, um die Schriftzeichen mit alternativen Glyph-Formen zu identifizieren.
3. Verfahren nach Anspruch 1, worin der Schritt, dem Anwender eine Liste von alternativen Glyph-Formen bereitzustellen, die Nutzung der Layout-Services-Bibliothek umfasst, um auf eine Glyph-Substitutions-Schriftsatz-Tabelle zuzugreifen, um alternative Glyph-Formen für jedes identifizierte Schriftzeichen zu erhalten.
4. Ein Computerlesbares Medium mit Computer-ausführbaren Befehlen, gekennzeichnet durch eine Layout-Services-Bibliothek (208), welche zur Ausführung der in Anspruch 1 genannten Schritte ausgebildet ist.
DE69807483T 1997-06-27 1998-06-26 Verfahren zum darstellen von glyphen unter verwendung einer bibliothek von gestaltungsdiensten Expired - Lifetime DE69807483T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/884,115 US6288726B1 (en) 1997-06-27 1997-06-27 Method for rendering glyphs using a layout services library
PCT/US1998/013130 WO1999000747A1 (en) 1997-06-27 1998-06-26 A method for rendering glyphs using a layout services library

Publications (2)

Publication Number Publication Date
DE69807483D1 DE69807483D1 (de) 2002-10-02
DE69807483T2 true DE69807483T2 (de) 2003-01-02

Family

ID=25383985

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69807483T Expired - Lifetime DE69807483T2 (de) 1997-06-27 1998-06-26 Verfahren zum darstellen von glyphen unter verwendung einer bibliothek von gestaltungsdiensten

Country Status (7)

Country Link
US (1) US6288726B1 (de)
EP (1) EP0992006B1 (de)
JP (1) JP4497432B2 (de)
AU (2) AU8171698A (de)
CA (1) CA2293675A1 (de)
DE (1) DE69807483T2 (de)
WO (2) WO1999000760A2 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926189A (en) * 1996-03-29 1999-07-20 Apple Computer, Inc. Method and apparatus for typographic glyph construction including a glyph server
US6754875B1 (en) * 1998-11-17 2004-06-22 Adobe Systems Incorporated Applying a computer-implemented test to determine whether to replace adjacent characters in a word with a ligature glyph
US6493735B1 (en) * 1998-12-15 2002-12-10 International Business Machines Corporation Method system and computer program product for storing bi-directional language data in a text string object for display on non-bidirectional operating systems
US7075665B1 (en) * 1999-05-04 2006-07-11 Hewlett-Packard Development Company, L.P. Creating operating system fonts from printer font metrics
US7064757B1 (en) 1999-05-07 2006-06-20 Apple Computer, Inc. Automatic synthesis of font tables for character layout
US6563502B1 (en) * 1999-08-19 2003-05-13 Adobe Systems Incorporated Device dependent rendering
US6762770B1 (en) * 1999-10-29 2004-07-13 Apple Computer, Inc. Method and system for the representation of color and other attributes in bitmap fonts
US7099027B1 (en) 1999-11-12 2006-08-29 Electronics For Imaging, Inc. Method and apparatus for distributing print jobs
WO2002001395A1 (en) * 2000-06-27 2002-01-03 Ubs Ag Method and system for providing distributed functionality and data analysis system utilizing same
US6948119B1 (en) * 2000-09-27 2005-09-20 Adobe Systems Incorporated Automated paragraph layout
US7251365B2 (en) * 2002-07-03 2007-07-31 Vadim Fux Scalable stroke font system and method
WO2005001675A2 (en) * 2003-06-30 2005-01-06 Hyder Syed S Algorithmic generation of afu calligraphy
US7484213B2 (en) * 2003-07-11 2009-01-27 Boban Mathew Agent architecture employed within an integrated message, document and communication system
US7580039B2 (en) 2004-03-31 2009-08-25 Adobe Systems Incorporated Glyph outline adjustment while rendering
US7639258B1 (en) 2004-03-31 2009-12-29 Adobe Systems Incorporated Winding order test for digital fonts
US7719536B2 (en) * 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering
US7348982B2 (en) 2004-09-30 2008-03-25 Microsoft Corporation Method, system, and computer-readable medium for creating and laying out a graphic within an application program
US8134575B2 (en) 2004-09-30 2012-03-13 Microsoft Corporation Maintaining graphical presentations based on user customizations
US8510657B2 (en) 2004-09-30 2013-08-13 Microsoft Corporation Editing the text of an arbitrary graphic via a hierarchical list
JP4919245B2 (ja) * 2005-01-14 2012-04-18 アドビ システムズ, インコーポレイテッド 行組版装置、行組版プログラム及びそれを記録した記録媒体
US7743325B2 (en) 2005-03-15 2010-06-22 Microsoft Corporation Method and computer-readable medium for fitting text to shapes within a graphic
JP4501864B2 (ja) * 2006-02-08 2010-07-14 村田機械株式会社 通信端末装置
US8438486B2 (en) 2006-02-09 2013-05-07 Microsoft Corporation Automatically converting text to business graphics
US20070262991A1 (en) * 2006-05-15 2007-11-15 Abulhab Saad D Arabic input output method and font model
US8201088B2 (en) * 2006-07-25 2012-06-12 Monotype Imaging Inc. Method and apparatus for associating with an electronic document a font subset containing select character forms which are different depending on location
US20080068383A1 (en) * 2006-09-20 2008-03-20 Adobe Systems Incorporated Rendering and encoding glyphs
US9319444B2 (en) 2009-06-22 2016-04-19 Monotype Imaging Inc. Font data streaming
US8799325B2 (en) 2010-03-12 2014-08-05 Microsoft Corporation Reordering nodes in a hierarchical structure
US20110258535A1 (en) * 2010-04-20 2011-10-20 Scribd, Inc. Integrated document viewer with automatic sharing of reading-related activities across external social networks
US8615709B2 (en) 2010-04-29 2013-12-24 Monotype Imaging Inc. Initiating font subsets
US20110289407A1 (en) * 2010-05-18 2011-11-24 Naik Devang K Font recommendation engine
JP5542017B2 (ja) 2010-09-15 2014-07-09 アルパイン株式会社 名称検索装置
US8494276B2 (en) 2011-09-23 2013-07-23 International Business Machines Corporation Tactile input recognition using best fit match
US9311896B2 (en) 2012-02-27 2016-04-12 Microsoft Technology Licensing, Llc Glyph rendering
US9817615B2 (en) 2012-12-03 2017-11-14 Monotype Imaging Inc. Network based font management for imaging devices
WO2014100582A2 (en) 2012-12-21 2014-06-26 Monotype Imaging Inc. Supporting color fonts
US9626337B2 (en) 2013-01-09 2017-04-18 Monotype Imaging Inc. Advanced text editor
US9317777B2 (en) 2013-10-04 2016-04-19 Monotype Imaging Inc. Analyzing font similarity for presentation
US9465776B2 (en) * 2013-11-26 2016-10-11 Adobe Systems Incorporated Filtering fonts based on a selection of glyphs
US9691169B2 (en) 2014-05-29 2017-06-27 Monotype Imaging Inc. Compact font hinting
US9940744B2 (en) 2014-09-15 2018-04-10 Microsoft Technology Licensing, Llc Remote font management
US10115215B2 (en) 2015-04-17 2018-10-30 Monotype Imaging Inc. Pairing fonts for presentation
US11537262B1 (en) 2015-07-21 2022-12-27 Monotype Imaging Inc. Using attributes for font recommendations
US10275426B1 (en) * 2015-09-22 2019-04-30 Amazon Technologies, Inc. Dynamic kerning pair reduction for digital font rendering
US11334750B2 (en) 2017-09-07 2022-05-17 Monotype Imaging Inc. Using attributes for predicting imagery performance
US10909429B2 (en) 2017-09-27 2021-02-02 Monotype Imaging Inc. Using attributes for identifying imagery for selection
US11657602B2 (en) 2017-10-30 2023-05-23 Monotype Imaging Inc. Font identification from imagery
US10657312B2 (en) 2017-11-17 2020-05-19 Adobe Inc. Deploying new font technologies to legacy operating systems
US11030388B2 (en) * 2018-09-25 2021-06-08 Adobe Inc. Live text glyph modifications

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0820862B2 (ja) * 1987-02-27 1996-03-04 キヤノン株式会社 文字処理装置
JP2703907B2 (ja) 1987-10-23 1998-01-26 キヤノン株式会社 文書処理方法
US5289169A (en) 1991-01-31 1994-02-22 Frame Technology Corporation Composite underlining functions for text processors
JP3164617B2 (ja) * 1991-11-07 2001-05-08 株式会社日立製作所 文字図形変形処理装置および方法
US5416898A (en) 1992-05-12 1995-05-16 Apple Computer, Inc. Apparatus and method for generating textual lines layouts
JPH061000A (ja) 1992-06-17 1994-01-11 Brother Ind Ltd 印字装置
JP3145509B2 (ja) * 1992-11-09 2001-03-12 富士通株式会社 文字生成方法及びその装置
US5440745A (en) 1993-04-29 1995-08-08 International Business Machines Corporation Batch format processing of record data
JP3014247B2 (ja) * 1993-05-24 2000-02-28 富士通株式会社 文字生成方法及びその装置
JP3021278B2 (ja) * 1993-08-30 2000-03-15 シャープ株式会社 均一幅線の生成装置及び均一幅線の生成方法
JP3238580B2 (ja) * 1994-09-14 2001-12-17 シャープ株式会社 太め細め文字生成装置
JPH096316A (ja) * 1995-06-26 1997-01-10 Canon Inc フォントファイル作成方法およびその装置
JP3474037B2 (ja) * 1995-10-12 2003-12-08 シャープ株式会社 文字パターン生成装置
JPH09134157A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd ヒント付け方法及びフォントファイル構成方法

Also Published As

Publication number Publication date
US6288726B1 (en) 2001-09-11
WO1999000760A2 (en) 1999-01-07
AU8171698A (en) 1999-01-19
JP2002507289A (ja) 2002-03-05
WO1999000747A1 (en) 1999-01-07
AU7987098A (en) 1999-01-19
EP0992006A1 (de) 2000-04-12
EP0992006B1 (de) 2002-08-28
CA2293675A1 (en) 1999-01-07
DE69807483D1 (de) 2002-10-02
JP4497432B2 (ja) 2010-07-07

Similar Documents

Publication Publication Date Title
DE69807483T2 (de) Verfahren zum darstellen von glyphen unter verwendung einer bibliothek von gestaltungsdiensten
DE3586273T2 (de) Implizite erzeugung einer superblockstruktur in einem vieldaten-edierungsgeraet.
DE3688107T2 (de) Verfahren zur Behaltung der Anpassungsfähigkeit von mit verschiedenen Eingabe-/Ausgabearten.
DE69130788T2 (de) Dokumentverarbeitungsapparat
DE3586272T2 (de) Integriertes vieldaten-edierungsgeraet.
DE68929461T2 (de) Verfahren zur Verarbeitung von digitalen Textdaten
DE69400869T2 (de) System zum transkribieren von texteingaben
DE3586274T2 (de) Vieldaten-edierungsgeraet mit gebrauch von attributstroemen fuer textobjekte.
DE69734400T2 (de) Verfahren und system zur prüfung der richtigkeit der rechtschreibung und grammatik eines dokuments
DE69225760T2 (de) Methode und System zur Unterstützung von mehrfacher Textselektion und "swipe and type" Operationen auf einer Rechneranzeige
DE69131901T2 (de) Ein verfahren um dokumente zu formatieren mit flexibelen entwurfsmodellen die kontrollierte kalibrierung und schrifttypenauswahl ermöglichen
DE69227889T2 (de) Druckersystem für Strichcode
DE69600794T2 (de) Graphische entwicklungs- und verwaltungsumgebung für anwendungsprogramme
DE68922116T2 (de) Dokumentverarbeitungssystem und Verfahren zur Verwendung darin.
DE60314977T2 (de) Tintensegmentierer und zugehöriges Programm
DE3853788T2 (de) Dokumentbildungssystem mit benannten Formaten und Schriftarten.
DE3486142T2 (de) Datenstruktur in einem Dokumentenverarbeitungssystem.
DE69422076T2 (de) Druckersystem mit Datenanalyse-Bestimmungsfähigkeit
DE602005002473T2 (de) Verfahren zum Erkennen von semantischen Einheiten in einem elektronischen Dokument
DE68923569T2 (de) Verfahren und Apparat zum Formatieren eines Dokumentes.
DE3686982T2 (de) Testverarbeitungsrandausgleichsverfahren.
DE3786427T2 (de) Vorrichtung zur Eingabesteuerung.
DE69328279T2 (de) Apparat zum Ersetzen von Variablen
DE10223750A1 (de) Aufteilen einer Druckaufgabe zum Verbessern der Durckgeschwindigkeit
DE69028645T2 (de) Desk-Top-Publishing-System

Legal Events

Date Code Title Description
8364 No opposition during term of opposition