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:
fi
ist also eine Glyphe, aber zwei Zeichen.Meine Überzeugung ist also (bitte korrigieren Sie mich, wenn ich falsch liege), dass der praktische Unterschied wäre:
fi
Ligatur-Glyphe würde zu f
und werden i
) .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:
fi
aus Illustrator in dieses Eingabefeld: fügt fi
wie erwartet (zwei Zeichen) 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.fi
). 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 ?
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.
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+FB01
ist 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 f
und i
in 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 .fi
U+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 fi
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+0023
durch 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+FB01
Zeichen in Ihre Zwischenablage kopiert.
Wenn Sie das fi
U+FB01
Zeichen 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.
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):
f
und i
durch die Ligatur-Glyphe von fi
) und Positionierungen (wie Kerning) durch.file
der ersten Glyphe (der fi
Ligatur), dem 3. Zeichen der 2. Glyphe und dem 4. Zeichen der 3. Glyphe entsprechen.
Martin Schröder
user56reinstatemonica8