(Ich bin neu in Arabisch und mache Dinge im Zusammenhang mit Unicode, daher übersehe ich möglicherweise einige eklatante Details.)
Ich verwende also die SIL-Schriftart Lateef und möchte in HTML auf die Glyphe des BEH-Anfangsformulars zugreifen. (Da „with/through“ in MSA in das Präfix übersetzt wird ﺑِ
, möchte ich es in die ursprüngliche Form einfügen, um deutlich zu machen, dass es sich um ein Präfix und nicht um ein Wort für sich selbst handelt.)
Die BEH-Anfangsform-Glyphe hat den Unicode-Code U+FE91 . Lateef fügt die Glyphe jedoch nicht an dieser "Position" ein (nicht ganz sicher, wie man sie nennt), und fügt stattdessen die Glyphe bei U + 1016F ("Greek Acrophonic Carystian Five Hundred") ein und verwendet dann eine zu verwendende Substitutionstabelle Es. (Die Verwendung der Substitutionstabelle ist logisch, aber ich verstehe nicht, warum Lateef die Glyphe an dieser seltsamen Stelle platziert.)
Da meine App definitiv Lateef verwendet, das als Webfont enthalten ist, habe ich mich entschieden, es dann einfach als U+1016F in Javascript ( \u{1016F}
) oder HTML ( 𐅯
oder 𐅯
) zu referenzieren --- hässlich, ich weiß, weil nicht semantisch, aber ich konnte nicht entscheide dich für einen besseren Weg. Obwohl das fragliche Element tatsächlich Lateef als Schriftart verwendete, zeigte Chrome stattdessen die "griechischen akrophonischen Carystian Five Hundred" an:
Meine Fragen sind dann:
Der Grund, warum die Glyphe nicht zugänglich war
Obwohl die Glyphe der BEH-Anfangsform an Position 0x1016f „gespeichert“ wurde, wurde ihr offensichtlich nicht der Unicode-Wert U+1016f „zugewiesen“. Soweit ich weiß, wird die Glyphe dann nicht in der cmap
Tabelle angezeigt, die der Ausgangspunkt für den Auswahlprozess für Zeichen -> Glyphe der Rendering-Engine ist.
Ich habe das entdeckt, als ich in Fontforge herumgespielt habe. Um in FontForge die Zeichen mit dem Unicode-Wert anstelle des Glyphenbilds anzuzeigen, wählen Sie „Ansicht“ > „Glyphe beschriften nach“ > „Unicode“; und um den Unicode-Wert für die betreffende Glyphe festzulegen, wählen Sie die Glyphe aus, klicken Sie mit der rechten Maustaste, und stellen Sie dann „Glyph Info...“ > „Unicode“ > „Unicode Value“ entsprechend ein.
Ich stelle mir vor, dass dies ein Fehler im Namen der Schriftart Lateef ist; Der 'richtige' Weg wäre gewesen, die Glyphe in der cmap
Tabelle zugänglich zu machen, sie aber auch an erster Stelle bei 0xfe91 zu platzieren, anstatt bei 0x1016f (wo sie semantisch nicht hingehört).
Wie man trotzdem auf die Glyphe zugreift
EINFACH: Verwenden Sie einfach U+0640 : بـ
.
ALT / KOMPLIZIERT:
Abgesehen von der Änderung der Schriftart, wie in der obigen Lösung des Problems vorgeschlagen, habe ich mir eine andere, unkonventionelle Möglichkeit ausgedacht, auf die Glyphe zuzugreifen, ohne die Schriftart zu ändern.
<div style="direction: rtl;">ب‍<span style="color:#fff; width: 0px; display: inline-block;">ن</span></div>
Da auf die Glyphe implizit zugegriffen werden kann , wenn sie mit nachfolgenden Buchstaben kombiniert wird, kann man diese nachfolgenden Buchstaben einfach ausblenden und am Ende nur die BEH-Anfangsform-Glyphe erhalten. Es muss jedoch ein zusätzlicher Trick angewendet werden: Hinzufügen eines Joiners mit einer Breite von null ‍
, um die Zeichen durch das eingestreute <span>
Element verbinden zu lassen.
Janus Bahs Jacquet
Kelly van Evert
Janus Bahs Jacquet
Kelly van Evert
Janus Bahs Jacquet
Kelly van Evert
Janus Bahs Jacquet
Janus Bahs Jacquet
Kelly van Evert