Was ist der praktische Unterschied zwischen einer „Glyphe“ und einem „Zeichen“?

Ich habe diese Frage auf dem Typografie-Site-Vorschlag gesehen und es hat mich genervt, dass ich die Antwort nicht wusste. Ich habe „Glyphe“ und „Zeichen“ immer als austauschbar behandelt.


Nachdem ich eine Erklärung auf der Seite Unicode Character Encoding Model gelesen habe, verstehe ich ungefähr Folgendes:

  • Schriftzeichen werden durch ihre Bedeutung in der Sprache, Glyphen durch ihr Aussehen definiert . Die Ligatur zum ästhetischen Kombinieren fiist also eine Glyphe, aber zwei Zeichen.

Meine Überzeugung ist also (bitte korrigieren Sie mich, wenn ich falsch liege), dass der praktische Unterschied wäre:

  • Textparser, die nicht an der Ästhetik von Text interessiert sind, werden Glyphen als ihre jeweiligen Zeichen lesen. So:
    • Wenn Sie Text, der Glyphen enthält, kopieren und in einen einfachen Texteditor einfügen würden, würden die Glyphen in ihre jeweiligen Zeichen konvertiert (ein Ligatur-Glyphe würde zu fund werden i) .
    • Jedes gut gemachte automatisierte System, das auf Textparsing basiert (z. B. Suchmaschinen-Crawler, Screenreader, Rechtschreibprüfer), würde die Glyphen als ihre jeweiligen Zeichen interpretieren.
    • Ein Zeichen kann viele Glyphen oder Glyphensätze haben. Ich möchte sagen, dass eine Glyphe nur ein Zeichen haben kann, aber das ist eindeutig nicht richtig, da es im verlinkten Artikel ein Beispiel mit 3 Glyphen und Glyphensätzen gibt, die jeweils einem Zeichen und einem Satz von Zeichen zu entsprechen scheinen. Ich verstehe nicht ganz, wie das funktionieren könnte: Sicherlich bedeutet das, dass es Inkonsistenzen oder Mehrdeutigkeiten bei der Interpretation dieser Glyphen geben wird, die je nach Interpreter variieren? (oder variiert es je nach Sprache oder Schriftart?)
    • Während Glyphenbrowser (z. B. der in Illustrator) den vollständigen Glyphensatz einer Schriftart enthalten, enthalten Zeichentabellen (z. B. die Windows-Zeichentabelle) nur Zeichen, keine Glyphen, die aus mehreren Zeichen bestehen, wie Ligaturen (was mir vorher nicht aufgefallen war).

Ich habe das Gefühl, ich bin fast da, aber ich habe irgendwo auf der Linie eindeutig etwas missverstanden: nicht nur die Sache "Eine Glyphe, mehrere Zeichen", sondern auch das Kopieren und Einfügen von Ligaturen ist nicht ganz das, was ich erwartet hatte:

  • Kopieren Sie die Ligatur aus Illustrator in dieses Eingabefeld: fügt fiwie erwartet (zwei Zeichen) ein.
  • Fügen Sie den HTML-Code dafür ein ( fi) – wird als Ligatur angezeigt, wenn es sich nicht in einem Codeblock befindet (fi – was in dieser Schriftart nicht sehr wie eine Ligatur aussieht, aber Sie werden sehen, dass es eine ist, wenn Sie versuchen, nur die Hälfte auszuwählen davon) und den Code in einem Codeblock ( fi), wie erwartet.
  • Kopieren Sie die gerenderte Nicht-Codeblock-Ligatur und fügen Sie sie wieder in das Eingabefeld ein: wird als Ligaturzeichen eingefügt und als Ligatur gerendert, unabhängig davon, ob sie sich in einem Codeblock befindet oder nicht (fi und ). Ebenso Wörter, die es enthalten: fit misfits ( fit misfits) fügt as fit misfits ( fit misfits) ein. Vielleicht hängt es davon ab, ob der Ort, an dem es eingefügt wird, die verwendete Codierung versteht?

Wie weit ist mein Verständnis davon falsch? Kann mich jemand richtig stellen: eine klare Definition des Unterschieds zwischen Glyphen und Zeichen angeben (wenn meine falsch ist oder verbessert werden kann) und klarere/genauere Beispiele als meine geben, was das in der Praxis bedeutet ?

Es wird viel komplizierter, wenn Sie Skripte wie Arabisch haben, in denen Sie Zeichen kombinieren.
@MartinSchröder +1 Klingt wie der Eröffnungssatz einer hervorragenden Antwort ... :)

Antworten (4)

Ich glaube nicht, dass Ihr Verständnis falsch ist, Sie sehen nur Systeme, die versuchen, dem Benutzer zu helfen, indem sie einfügen, was sie seiner Meinung nach wollen. Da einige Ligaturen ('fi', 'fl') außerhalb von Satzsystemen ziemlich verbreitet sind, erkennt die Software, dass der Benutzer diese Glyphe wahrscheinlich nicht eingegeben hat, sondern eine andere App ihre eingegebenen Zeichen umgewandelt hat.

Kurz gesagt: Charakter bezieht sich auf eine sprachliche Einheit. Glyph bezieht sich auf eine entworfene Instanz dieser Einheit, unabhängig davon, ob es sich um Großbuchstaben, Kleinbuchstaben, Kapitälchen, historische oder stilistische Varianten handelt.

Beim Rechnen sind A und a unterschiedliche Zeichen. ASCII hat 128 Zeichen und der Begriff Zeichen enthält dort A und a als unterschiedliche Zeichen.
Ingenieure verwenden viele Wörter, die nicht mit Präzedenzfällen in anderen Branchen übereinstimmen. Deins ist ein gutes Beispiel.
Wer hat zuerst die Begriffe "Charakter" und "Glyphe" erfunden? Grafikdesigner oder Informatiker? Ich hätte gedacht, die Computer kamen vor dem Grafikdesign. Aber es könnte eine Druckindustrie geben, die dem Grafikdesign vorausging und wohl in gewisser Weise den Computern vorausging oder die modernen Computern vorausging. Ich denke, die Leute, die am besten antworten könnten, was jetzt Grafikdesign ist, ist die Druckindustrie, aber es gibt keinen Stapelaustausch für die Druckindustrie. Aber es wäre interessant zu wissen, wer von wem und auf welche Weise den Begriff Charakter übernommen hat.
Typografie kam lange vor Softwareentwicklung. Bitte posten Sie hier, wenn Sie die Nachforschungen anstellen und die Ursprünge finden. Ich vermute, dass es irgendwann im 17. Jahrhundert sein wird. Möglicherweise schon bei den ersten Typografen Mitte des 16.

Hier gibt es ein paar Antworten, die gute Informationen zu Glyphen im Vergleich zu Zeichen geben, aber die Quelle Ihrer Verwirrung in Bezug auf das Kopieren und Einfügen nicht wirklich ansprechen.

Zunächst einmal ist Ihr Verständnis grundsätzlich richtig:

Schriftzeichen werden durch ihre Bedeutung in der Sprache, Glyphen durch ihr Aussehen definiert . Die Ligatur zum ästhetischen Kombinieren von fi ist also eine Glyphe, aber zwei Zeichen.

Es ist hervorzuheben, dass die Liste der Zeichen durch den Unicode-Standard definiert ist, der vom Unicode-Konsortium veröffentlicht wird, da sie die Autorität für die Codierung von Text in einem maschinenlesbaren Format sind. Die obige Definition ist im Wesentlichen die primäre Richtlinie, die die Mitglieder des Unicode-Konsortiums verwenden, um zu bestimmen, ob eine vorgeschlagene Ergänzung zu Unicode ein Zeichen ist und daher der Aufnahme wert ist, oder eine Glyphe , die von Font-Renderern verarbeitet werden sollte.

Ich erwähne dies, weil die Verwirrung, die Sie oben erlebt haben, darauf zurückzuführen ist, dass es in Unicode mehrere Ligaturzeichen (keine Glyphen ) gibt. Beispielsweise U+FB01ist das Zeichen für die Ligatur: http://unicode.org/charts/PDF/UFB00.pdf

Ligaturzeichen in Unicode zu haben, ist nicht wirklich im Sinne der obigen Definition dafür, welche Dinge im Unicode-Standard als Zeichen enthalten sein sollten, da Ligaturen nicht wirklich eine Bedeutung haben, die unabhängig von der Zusammensetzung zweier anderer Zeichen ist. Die Unicode-Leute sind sich dessen natürlich bewusst, und die Unicode-FAQ zu Ligaturen gibt dies zu:

Die existierenden Ligaturen existieren grundsätzlich für Kompatibilität und Roundtripping mit Nicht-Unicode-Zeichensätzen. Von ihrer Verwendung wird abgeraten.

Die Existenz dieses Charakters ist letztendlich die Quelle Ihrer Verwirrung.

In korrekt implementierter Software sollten beim Kopieren von Text immer die angegebenen Zeichen kopiert werden, nicht die Glyphen , und genau das passiert in Ihren drei Beispielen.

1) Im ersten Beispiel haben Sie fund iin Illustrator eingegeben, wodurch eine einzelne Ligatur -Glyphe gerendert wurde . Als Sie diese gerenderte Glyphe ausgewählt und kopiert haben, hat Illustrator die Zeichen f( U+0066) und i( U+0069) korrekt in Ihre Zwischenablage kopiert.

2) Im zweiten Beispiel haben Sie den HTML-Code für das Ligaturzeichen ( ) in das Eingabefeld eingegeben und das Ligaturzeichen korrekt erhalten , das das Ligaturzeichen ( darstellt . Da das zugrunde liegende Zeichen tatsächlich das obskure und relativ sinnlose Ligaturzeichen ist, das ich erwähnt habe Oben wird bei Auswahl dieser Glyphe ein einzelnes Zeichen kopiert .&#64257U+FB01

3) Im dritten Beispiel kopieren Sie das gerenderte Ligaturzeichen , U+FB01 das in Teil 2 gerendert wurde, das immer als dieses Zeichen eingefügt wird. Ihre Hauptverwirrung scheint der Unterschied zwischen HTML-Entity-Codes und -Zeichen zu sein, insbesondere im Hinblick darauf, wie sie innerhalb und außerhalb von Codeblöcken gerendert werden.

Der HTML-Entitätscode &#64257;ist eine Zeichenfolge aus 8 verschiedenen Zeichen. Der HTML-Renderer Ihres Webbrowsers ersetzt diese 8 Zeichen U+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023durch das einzelne Unicode-Zeichen U+FB01, das er dann entsprechend rendert. Das <code>Tag in HTML deaktiviert dieses Verhalten jedoch und lässt diese 8 Zeichen unverändert.

Wenn Sie gerenderten HTML-Code kopieren, kopieren Sie die gerenderten Zeichen (die sich von den gerenderten Glyphen unterscheiden ). Wenn Sie also Ihre gerenderte HTML-Entität kopieren, wird das einzelne U+FB01Zeichen in Ihre Zwischenablage kopiert.

Wenn Sie das U+FB01Zeichen wieder in den HTML-Code einfügen, muss keine Ersetzung stattfinden, was bedeutet, dass das Zeichen als Ligatur gerendert wird, unabhängig davon, ob es in einen <code>Block fällt oder nicht.

Glyphen beziehen sich darauf, wie Text wiedergegeben wird, Zeichen darauf, wie er interpretiert wird. Beim Kopieren und Einfügen bietet die Quellanwendung normalerweise mehrere Formate zur Auswahl. Einfacher Text zerlegt die Ligatur in f und i, das HTML-Format kann sie in die von Ihnen zitierte char-Entität übersetzen oder sie auch in f und i zerlegen.

Im Allgemeinen ist die Beziehung zwischen Zeichen und Glyphen n:m. In indischen Sprachen teilen sich einige Zeichen in zwei Glyphen, die an verschiedenen Stellen des Wortes platziert werden. Im Lateinischen kommt dieser Situation am nächsten, é als zwei Glyphen (e und ´) darzustellen. Im Arabischen hat jedes Zeichen je nach seiner Position innerhalb eines Wortes unterschiedliche Glyphen: Anfang, Mitte, Ende oder isoliert.

Die Übersetzung von Zeichen in Glyphen ist für jede Anwendung und die unterstützten typografischen Funktionen spezifisch. Für lateinischen Text war diese Übersetzung früher einfach, aber OpenType-Schriftarten führten zusätzliche Funktionen wie Ligaturen, Zierbuchstaben, alternative Formen, Kapitälchen usw. ein.

Aus praktischen Gründen beschäftigen Sie sich nur mit Glyphen, wenn Sie implementieren, wie eine Anwendung Text rendert, oder wenn Sie eine Schriftart entwerfen oder wenn Sie eine OpenType-Funktion anwenden möchten, die einige Glyphen durch andere ersetzt (z. B. Ligaturen). Andernfalls sind Unicode-Codepunkte Ihr Freund.

Hallo user322483, willkommen bei GDSE und danke für deine Antwort. Wenn Sie Fragen haben, besuchen Sie bitte das Hilfezentrum oder pingen Sie einen von uns im Grafikdesign-Chat an , sobald Ihr Ruf ausreichend ist (20). Tragen Sie weiter bei und genießen Sie die Seite!
Sie schreiben "Im Arabischen hat jedes Zeichen unterschiedliche Glyphen, abhängig von seiner Position innerhalb eines Wortes: Anfang, Mitte, Ende oder isoliert." <--- Wären das nicht unterschiedliche Charaktere. Englisch hat A und a, aber in der Computersprache sind A und a unterschiedliche Zeichen. Jede Glyphe wird einem anderen Code zugeordnet. Hebräisch hat chaf und final chaf (der Buchstabe chaf am Ende eines Wortes sieht anders aus) und ich bin sicher, dass es in der Informatik als ein anderes Zeichen bezeichnet wird.

Zeichen werden in Textdateien gespeichert, von Anwendungen verarbeitet und verschoben, während Glyphen ihre visuelle Darstellung sind.

Um ein klares Bild zu erhalten, sehen wir uns an, was passiert, wenn eine Anwendung versucht, eine Textfolge auf dem Bildschirm darzustellen (etwas vereinfacht):

  • Die Anwendung liest zuerst die Textzeichenfolge, dh die Zeichenkette, die auf der Platte oder im Speicher gespeichert ist.
  • Es würde es dann neben einigen anderen Eigenschaften wie der gewünschten Schriftart, Textsprache usw. an eine Textlayout-Engine senden:
    • Die Textlayout-Engine öffnet im Grunde die Schriftartdatei, fragt sie nach den Glyphen, die jedem Zeichen entsprechen, und führt einige Glyphenersetzungen (wie das Ersetzen der Glyphe für fund idurch die Ligatur-Glyphe von fi) und Positionierungen (wie Kerning) durch.
    • Am Ende hat die Layout-Engine eine Folge von Glyphen, ihre Positionen relativ zueinander und eine Zuordnung zwischen Eingabezeichen und den Ausgabeglyphen. Die Zuordnung von Zeichen zu Glyphen ist so, dass sie weiß, dass die ersten beiden Zeichen im Wort fileder ersten Glyphe (der fiLigatur), dem 3. Zeichen der 2. Glyphe und dem 4. Zeichen der 3. Glyphe entsprechen.
  • Eine Grafik-Rendering-Bibliothek wird dann verwendet, um diese Glyphen unter Verwendung von Formen aus der Schriftart auf dem Bildschirm zu „zeichnen“.
  • Wenn der Benutzer „Glyphen“ auf dem Bildschirm auswählt, konsultiert die Anwendung dann die von der Layout-Engine bereitgestellte Zuordnung von Glyphe zu Text, um herauszufinden, welcher Teil des Eingabetextes dem entspricht, was der Benutzer auswählt, und sendet diesen Text an die Zwischenablage, wenn dies der Fall ist Benutzer kopiert es.
  • Dasselbe passiert, wenn der Benutzer den Cursor in die Mitte des Textes einfügt und mit der Eingabe beginnt, die Zuordnung bestimmt, wo im Eingabetext die neuen Zeichen eingefügt werden sollen, und der aktualisierte Text an die Layout-Engine gesendet wird, um ihn zu verarbeiten und neu zu zeichnen usw.