Unicodefonts unter Linux
maxi priest
- html
Hi
mit xlsfonts -fn *10646* bekomme ich allerlei Unicodefonts gelistet z.B.
...
-b&h-lucida-medium-r-normal-sans-25-180-100-100-p-142-iso10646-1
-b&h-lucida-medium-r-normal-sans-25-180-100-100-p-142-iso10646-1
-b&h-lucida-medium-r-normal-sans-25-180-100-100-p-142-iso10646-1
-b&h-lucida-medium-r-normal-sans-25-180-100-100-p-142-iso10646-1
-b&h-lucida-medium-r-normal-sans-26-190-100-100-p-147-iso10646-1
-b&h-lucida-medium-r-normal-sans-26-190-100-100-p-147-iso10646-1
...
wie bekomme ich diese Fonts (im Gegensatz zu den iso8859 fonts) in HTML angesprochen? Viele Symbole lassen sich nämlich nicht ansprechen.
ich vermute mit
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
sollte es gehen.
allerdings bekomme ich die gesuchten Symbole nicht dargestellt
Wie kann ich unter Linux checken welche Symbole ein Font enthält? Habs mit Gimp versucht der hatte aber mit Unicode seine Probleme.
Gruß
Maxi
hi,
mit xlsfonts -fn *10646* bekomme ich allerlei Unicodefonts gelistet
konsultiere dazu mal bitte "man xlsfonts"
wie bekomme ich diese Fonts (im Gegensatz zu den iso8859 fonts) in HTML angesprochen?
Gar nicht.
Das heißt: _du_ kannst zwar deinen Linux-Browser anweisen, font-Tags aus HTML-Seiten grundsätzlich so zu "übersetzen". Aber du kannst _keinem anderen_ Besucher deiner Seite oktroyieren, daß er dasselbe Erlebnis haben muß.
Grüße aus Berlin
Christoph S.
Hi,
Das heißt: _du_ kannst zwar deinen Linux-Browser anweisen, font-Tags aus HTML-Seiten grundsätzlich so zu "übersetzen". Aber du kannst _keinem anderen_ Besucher deiner Seite oktroyieren, daß er dasselbe Erlebnis haben muß.
ist Frage 2, oder?
http://www.uni-bayreuth.de/students/der_tip/WS_00_01/Ausgabe_184/knobel.html
Harry
Moin!
wie bekomme ich diese Fonts (im Gegensatz zu den iso8859 fonts) in HTML angesprochen? Viele Symbole lassen sich nämlich nicht ansprechen.
Hier landest du mitten in dem Konglomerat aus Zeichensatz, Zeichencodierung, Schriftarten etc.
ich vermute mit
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
sollte es gehen.
Deine Vermutung ist nicht so ganz falsch, aber auch nicht so ganz richtig.
Mit der Angabe "charset" definierst du - im Gegensatz zu der tatsächlichen Bedeutung dieses Wortes - nicht den Zeichensatz, sondern das verwendete Zeichencodierungsverfahren. Der Zeichensatz (also die Menge aller möglichen verwendbaren Zeichen) ist in HTML nämlich immer Unicode. Nur kann man unter Umständen nicht alle Unicodezeichen gleichzeitig mit nur einem einzigen Byte-Zeichen erreichen.
Aus diesem Grunde hat man sich diverse Zeichencodierungen einfallen lassen, die jeweils auf die Erfordernisse einer bestimmten Sprache oder einer Sprachgruppe abgestimmt sind. ISO-8859-1 beispielsweise ist für Westeuropa vorgesehen, weil man damit eigentlich alle Schriftzeichen inklusiver aller möglichen Zeichen mit diakritischen Zeichen (Akzente, Umlaute etc.) direkt mit einem Byte-Zeichen adressieren kann, die in Westeuropa so verwendet werden.
UTF-8 ist ein Verfahren, welches sämtliche definierten Unicode-Zeichen adressierbar macht. Da Unicode aber aus mehr als 256 verschiedenen Zeichen besteht, braucht man auch mehr als 256 Codierungen für die Zeichen. Deshalb verwendet UTF-8 1 bis 6 Byte lange Gruppen von 8-Bit-Zeichen, die speziell codiert sind, damit man daraus den Unicode-Wert zurückermitteln kann.
Wie das konkret abläuft, mußt du dir eigentlich aber garnicht genau angucken. Verwende einfach einen Unicode-fähigen Texteditor, und schon hast du das Problem gelöst. Wenn du keinen Unicode-fähigen Texteditor hast und dir eine UTF-8-codierte HTML-Datei ansiehst, wird dir vielleicht zuerst gar nichts auffallen. Denn alle Zeichen mit Unicode-Werten kleiner 128 sind absolut identisch. Lediglich die deutschen Umlaute sehen etwas komisch aus: Statt eines Zeichens stehen dort zwei Zeichen, das erste ist dabei immer ein großes A mit Tilde.
Alternativ zu dieser UTF-8-Codierung kannst du natürlich auch alle Zeichen, die du gerne darstellen willst, als Zahlen-Entity eingeben: 〹 beispielsweise gibt das Unicode-Zeichen 12345 (dezimale Zahl) aus (was auch immer das für eines ist). So eine Vorgehensweise funktioniert vollkommen unabhängig von irgendeiner charset-Angabe immer (denn HTML hat als Zeichensatz Unicode, also muß der Browser alle Unicode-Zeichen verstehen - von "ausgeben" ist hierbei aber noch nicht die Rede, das kommt gleich).
Egal, wie du deine HTML-Datei nun schreibst, ob mit echter UTF-8-Codierung oder mit Entities: Wichtig ist natürlich die Ausgabe.
Und hier kommen jetzt die Schriftarten (oder Fonts) ins Spiel. Es ist ziemlich aufwendig, eine Schriftart nicht nur für unsere 256 (grob gerundet) deutschen bzw. europäischen Schriftzeichen zusammenzubasteln, sondern zusätzlich noch sämtliche anderen Alphabete dieser Welt hineinzunehmen. So eine Schriftart wäre sicherlich mehrere Megabyte groß, denn Unicode selbst erlaubt Zeichen bis zum Code 0x1FFFFF, also gut zwei Millionen Zeichen - wobei längst nicht alle Codes auch ein definiertes Zeichen enthalten, aber auch hunderttausend Zeichen wäre schon ziemlich viel.
Deshalb haben übliche Schriftarten wahrscheinlich niemals für alle existierenden Unicode-Zeichen eine Zeichendefinition - aber nur mit so einer Definition kann der Computer aus dem Zeichencode ein sichtbares Zeichen machen.
Wenn du jetzt für dein Linux Unicode-Schriftarten hast, die für die relevanten Unicode-Zeichen Definitionen besitzen - toll. Dann kannst du wenigstens sehen, was du geschrieben hast. Alle anderen Benutzer müssen auf ihren Rechnern aber zwingend auch so eine Schriftart installieren, ansonsten sehen sie nur quadratische Kästchen oder Fragezeichen. Dies kannst du auch nicht durch geeignete Font-Auswahl, egal ob per <font> oder CSS, beeinflussen. Das simpelste wäre, auf deiner Seite einen Texthinweis zu platzieren, der den Besucher informiert, welches Alphabet du auf deiner Seite benutzt, falls er einige Zeichen nicht lesen kann. Dann kann er versuchen, für sein System einen geeigneten Font zu besorgen.
allerdings bekomme ich die gesuchten Symbole nicht dargestellt
Wie oben erwähnt: Wenn du als charset UTF-8 angibst, muß deine Datei auch so codiert sein. Als Alternative solltest du zum Testen erst mal die Entity-Version verwenden, damit kannst du unabhängig von der Codierung testen, ob dein Browser das Zeichen überhaupt anzeigen kann.
- Sven Rautenberg
Hallo,
Winziger Nachtrag am Rande:
Alternativ zu dieser UTF-8-Codierung kannst du natürlich auch alle Zeichen, die du gerne darstellen willst, als Zahlen-Entity eingeben
Der Begriff dafür ist »(numerische) Zeichenreferenz«. Entity-Referenzen sind eine ganz andere Geschichte, die man zum Verständnis von Zeichenreferenzen nicht einmal verstanden haben muss. Obwohl es natürlich sinnvoll sein kann, die in HTML vordefinierten Entities, die ihrerseits Zeichenreferenzen enthalten, auch zu verwenden.
Mathias
Hallo Sven,
für mich stellt sich die Frage ob alle Fonts die mit z.B. *-Lucida-* aufgelistet werden im Grunde die identischen Zeichen resp. Zeichnungen enthalten oder ob es da Unterschiede zwischen iso8859 und iso10646 gibt (da letzteres ja auch viel mehr adressieren kann, spricht einiges dafür). Falls ja _wann_ wird letzterer vom Browser gewählt, sobald irgendwelche hohen Zeichencodes vorkommen (unabhängig von charset) oder nur wenn charset entsprechend gewählt wird?
Kannst du mir einen guten Viewer zum checken der Fonts empfehlen?
Die Frage ob der letztendlich gewählte Font auf allen Systemen vorhanden ist, versuche ich dadurch zu lösen, dass ich erstmal einen möglichst verbreiteten Font suche, der möglichst nahe an einem verbreiteten Win-Font (wie z.B. Lucida Sans Unicode) ist. Die möglichst kleine Restgruppe soll es dann nachinstallieren.
Der im Archiv http://forum.de.selfhtml.org/archiv/2004/7/t84613/#m498357]
empfohlene Font "Caslon" ist z.B. nicht in meiner Debian Distribution enthalten und müßte wahrscheinlich von den meisten nachinstalliert werden :(
Grüße
Maxi
PS: "man xlsfonts" habe ich natürlich bereits gemacht ohne weiterzukommen.
Moin!
für mich stellt sich die Frage ob alle Fonts die mit z.B. *-Lucida-* aufgelistet werden im Grunde die identischen Zeichen resp. Zeichnungen enthalten oder ob es da Unterschiede zwischen iso8859 und iso10646 gibt (da letzteres ja auch viel mehr adressieren kann, spricht einiges dafür). Falls ja _wann_ wird letzterer vom Browser gewählt, sobald irgendwelche hohen Zeichencodes vorkommen (unabhängig von charset) oder nur wenn charset entsprechend gewählt wird?
Ich habe keine Ahnung, wie die Betriebssysteme (die sind letztendlich für die Font-Darstellung zuständig, nicht der Browser) Unicodezeichen und verfügbare Fonts behandeln.
Ich weiß nur, dass ich Christians chinesische Zeichen (https://forum.selfhtml.org/?t=94490&m=572457) nicht angezeigt bekomme in meinem Opera 7.5 (unzweifelhaft ein unicode-fähiger Browser) auf Win2K.
Wahrscheinlich fehlt es mir tatsächlich an einem entsprechenden Unicode-Zeichensatz, denn sowohl russische als auch Christians Lautschriftzeichen (letztere kommen dort später im Thread) werden bei mir angezeigt.
Da ich aber kein Chinesisch verstehe, fehlt mir nicht sonderlich viel. :)
Kannst du mir einen guten Viewer zum checken der Fonts empfehlen?
Nicht für Linux. Für Windows gibts eine Extension, die es erlaubt, in den Eigenschaften von TTF-Fontdateien erheblich mehr Informationen anzuzeigen, insbesondere der mit Zeichendefinitionen versehene Bereich.
- Sven Rautenberg
Hi Sven,
Ich weiß nur, dass ich Christians chinesische Zeichen
(https://forum.selfhtml.org/?t=94490&m=572457)
nicht angezeigt bekomme in meinem Opera 7.5 (unzweifelhaft ein
unicode-fähiger Browser) auf Win2K.Wahrscheinlich fehlt es mir tatsächlich an einem entsprechenden
Unicode-Zeichensatz, denn sowohl russische als auch Christians
Lautschriftzeichen (letztere kommen dort später im Thread) werden
bei mir angezeigt.
Ich hatte ja die beiden Schriften, die du dafuer brauchen wuerdest,
verlinkt. Wenn du die installierst, sollte es gehen :)
Gruesse,
CK