SVG/ Fonts

Aus Wikibooks
< SVG



Zeichensätze und Schriften in SVG[Bearbeiten]

Wie bereits im Kapitel 'Graphik formatieren' erläutert, kann in SVG angegeben werden, welcher Zeichensatz für einen Text verwendet werden soll. Dazu wurden Eigenschaften von CSS übernommen. Diese erlauben es, Schriften namentlich zu notieren. Ist für das Darstellungsprogramm der namentlich genannte Zeichensatz verfügbar, so wird dieser dann verwendet. Allerdings sind nicht alle namentlich bekannten Zeichensätze auch auf jedem Darstellungsprogramm verfügbar.

Schriften werden nach Familien eingeordnet. Der Autor kann auch angeben, dass ein Zeichensatz aus einer bestimmten generischen Schriftfamilie angegeben werden soll. Ein Darstellungsprogramm muss für jede in CSS angegebene Schriftfamilie wenigstens eine Schrift verfügbar haben, die dann verwendet wird. Somit dient die (alternative) Angabe einer generischen Schriftfamilie auch immer dazu, zu gewährleisten, dass der Text überhaupt angezeigt wird, wenn ein namentlich genannter Zeichensatz nicht verfügbar ist.

Da bei SVG aber auch die präzise graphische Präsentation von Text wichtig sein kann und ein Autor hohe Anforderungen an die Präsentation haben mag, kann per CSS auch ein Zeichensatz direkt als Dokument oder Dokumentfragment referenziert werden, der verwendet werden soll.

Nun gibt es wiederum diverse Formate, in denen Zeichensätze vorliegen können und von einem Darstellungsprogramm kann nicht erwartet werden, dass dieses alle Formate interpretieren kann.

Ein Autor, der die Präsentation von Text in einem SVG-Dokument exakt festlegen will, hätte so also nur die Möglichkeit, den Text in Pfade zu konvertieren. Dabei ginge allerdings die komplette Textinformation verloren, weswegen dies eine schlechte, nicht barrierefreie und daher nicht zu empfehlende Strategie ist. Dies sollte daher vom Autor vermieden werden, schon auch weil die Nachbearbeitung des Textes dadurch enorm erschwert wird, selbst wenn das Zugänglichkeitsproblem damit gelöst wird, dass der Text im Element desc des Pfades notiert wird.

Damit ein Autor mit solch hohen Anforderungen sowohl den Pfad speichern kann, als auch den Text als Text im Dokument stehenlassen kann, gibt es in SVG 1.1 und SVG tiny 1.2 die Möglichkeit, für die relevanten Zeichensätze, für jede einzelne Glyphe den Pfad abzulegen. Dies geschieht im selben Dokument oder ein externes Dokument mit den Glyphen des Zeichensatzes wird referenziert.

Ein solcher SVG-Zeichensatz kann dann per CSS referenziert werden - nicht zwangsläufig nur in SVG-Dokumenten. Wie und was von einem Zeichensatz als SVG-Zeichensatz gespeichert werden kann, ist auf die graphische Präsentation in SVG-Dokumenten optimiert, nicht unbedingt für Fließtexte in (X)HTML, die wohlmöglich mit kleiner Auflösung gelesen werden sollen. Die mit SVG notierbaren Eigenschaften des Zeichensatzen entsprechen dann auch dem, was in CSS angegeben werden kann.

Prinzipiell kann für die Definition von Glyphen in SVG-Zeichensätzen der komplette Vorrat an Kommandos verwendet werden, also auch kubische Kurven und in SVG 1.1 auch elliptische Bögen. Viele andere Formate für Zeichensätze haben nicht so eine reichhaltige Auswahl an Kurvenformen. Üblich sind oft nur quadratische Kurven. Somit ist es technisch also problemlos möglich, die Glyphen von einem anderen Format nach SVG zu konvertieren, nicht aber unbedingt umgekehrt. Andererseits haben andere Formate oft Eigenschaften verfügbar, die die Glyphen vereinfachen und besser lesbar machen, wenn sie sehr klein dargestellt werden sollen. Solche Informationen können bei der Konversion zu SVG nicht gerettet werden.

Aufgrund der eingeschränkten Kommandovielfalt kann andersherum ein SVG-Zeichensatz nicht exakt in ein Format konvertiert werden, in dem bestimmte Kurvenformen nicht darstellbar sind. Bei einer Konversion muss dann eine Näherung auf die einfachen Formen erfolgen, was dann eine Reduzierung der Qualität und eine Vergrößerung der Datenmenge zur Folge hat.

Bei einer Formatkonversion ist zudem zu bedenken, dass Zeichensätze dem Urheberrecht unterliegen und die Autoren der Zeichensätze die Nutzung unter bestimmte Lizenzen setzen können, die den Zeichensatz zum Beispiel an ein bestimmtes Format koppeln, an ein bestimmtes Betriebssystem oder Darstellungsprogramm. Neben den Fragen der technischen Machbarkeit sind also bei der Konversion von Zeichensätzen anderer Autoren auch noch rechtliche Fragen zu klären, bevor Dokumente veröffentlicht werden, die solche konvertierten Zeichensätze enthalten.

Das Festlegen, welche Schrift, welcher Zeichensatz definiert wird, kann über das definierende Element font erfolgen und bei Verwendung von CSS2 in SVG1.1 auch mit der CSS2-Regel @font-face.


Koordinatensystem für SVG-Zeichensätze[Bearbeiten]

Anders als bei sonstigem Inhalt in SVG liegt für Glyphen von Zeichensätzen ein anderes Koordinatensystem vor. Für die Glyphen wird ein Rechtssystem verwendet, bei dem also die positive y-Achse nach oben zeigt, nicht wie sonst in SVG nach unten. Dies wurde vor allem so festgelegt, um die Kompatibilität mit anderen gängigen Formaten für Zeichensätze zu gewährleisten, die zumeist das gleiche System verwenden.

Autoren von SVG-Zeichensätzen müssen bei der Erstellung der Pfade also umdenken. Es kann sich als praktisch erweisen, einfach bei der optischen Kontrolle der Pfade als Pfade, nicht als Glyphen, eine Achsenspiegelung des Kontrolldokumentes an der x-Achse vorzunehmen, um die Glyphen richtig herum und lesbar zu sehen.

Einfache Beispiele der Einbindung[Bearbeiten]

Im Element font wird ein Zeichensatz einer Schriftfamilie definiert.

Der Aufbau, um einen Zeichensatz zu definieren, ist etwas komplizierter, daher wird erst einmal die prinzipielle Struktur diskutiert.

Mit dem Element font-face in font wird angegeben, welche speziellen Eigenschaften der Zeichensatz repräsentiert. Mittels missing-glyph wird ein Zeichen angegeben, das für eine fehlende Glyphe steht, oft wie hier ein Quadrat, am besten jedenfalls ein Objekt, das nicht mit einer normalen Glyphe verwechselt wird, damit der Leser erkennen kann, dass ein Problem vorliegt. Mit glyph wird dann jeweils der Pfad für eine Glyphe angegeben. In SVG tiny 1.2 ist das exakt ein Pfad im Attribut d, das dem von path entspricht. In SVG 1.1 kann es sich alternativ um anderen graphischen Inhalt handeln, der als Inhalt des Dokumentes notiert wird.

Identifiziert wird der Zeichensatz dann anhand des Namens, der mittels font-family im Element font-face notiert ist und der weiteren dort notierten Eigenschaften, die denen entsprechen, mit denen der jeweilige Zeichensatz dann verwendet wird.

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg viewBox="0 0 300 80"
  version="1.1"
  xmlns='http://www.w3.org/2000/svg'>
  <title>Beispiel SVG-Zeichensatz</title>
  <defs>
    <font id="F" horiz-adv-x="1000">
      <font-face font-family="MeinSatz" font-weight="bold" font-style="normal"
          units-per-em="1000" cap-height="600" x-height="400"
          ascent="700" descent="300"
          alphabetic="0" mathematical="350" ideographic="400" hanging="500" />
      <missing-glyph><path d="M0,0h200v200h-200z"/></missing-glyph>
      <glyph unicode="A"><!-- Elemente für Glyphe 'A' --></glyph>
      <glyph unicode="v"><!-- Elemente für Glyphe 'v' --></glyph>
      <!-- etc, mehr Glyphen -->
      <hkern u1="A" u2="v" k="10"/>
      <!-- etc, mehr Überschneidungsregeln -->
    </font>
  </defs>
  <text x="10" y="50" font-size="20"
        font-family="'MeinSatz', fantasy"
        font-weight="bold"
        font-style="normal">Textbeispiel</text>
</svg>

Das Referenzieren eines externen Zeichensatzes kann zum Beispiel wie folgt aussehen:

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg viewBox="0 0 300 80"
  version="1.1"
  xmlns='http://www.w3.org/2000/svg'>
  <title>Beispiel: Zeichensatz referenzieren</title>
  <defs>
    <font-face
      font-family="BeispielSchrift"
      unicode-range="U+0-7F">
      <font-face-src>
        <font-face-name name="BeispielSchrift"/>
        <font-face-uri xlink:href="MeinSatz.svg#F">
          <font-face-format string="svg"/>
      </font-face-src>
    </font-face>
  </defs>
  <text x="10" y="50" font-size="20"
        font-family="'BeispielSchrift', fantasy">Textbeispiel</text>
</svg>

Entsprechend das gleiche Beispiel mit CSS:

<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg viewBox="0 0 300 80"
  version="1.1"
  xmlns='http://www.w3.org/2000/svg'>
  <title>Beispiel: Zeichensatz referenzieren</title>
  <defs>
   <style type="text/css">
      <![CDATA[
        @font-face {
          font-family: 'BeispielSchrift';
          src: url("MeinSatz.svg#F") format(svg)
        }

        text.meiner {font:family:'BeispielSchrift', fantasy}
      ]]>
   </style>
  </defs>
  <text class="meiner" x="10" y="50"
        font-size="20">Textbeispiel</text>
</svg>
Elemente font und font-face

Elemente font und font-face
Verschiedene Methoden, eine eigene Schrift zu verwenden, werden ausprobiert. Ganz oben ist der Testtext mit einer Serifenschrift angegeben, ganz unten der gleiche Text rein aus Pfaden zusammengesetzt, was dann eigentlich kein Text ist.
'MeinSatz' ist eine Schrift, bei der die betreffenden Glyphen direkt im Element font notiert sind.
'Ref' referenziert diese Schrift mit dem Element font-face-uri.
'CSS' referenziert diese Schrift mit der @font-face-Regel von CSS.

Element font[Bearbeiten]

SVG Squiggle (Batik) Opera (Presto) Firefox (Gecko; auch SeaMonkey, Iceape, Iceweasel etc) Konqueror (KSVG) Safari (Webkit) Chrome (Webkit) Microsoft Internet Explorer (Trident) librsvg
1.1 1.7 9 - - - ? ? ?

Das Element font definiert einen Zeichensatz. Das Element muss als direktes Kindelement ein Element font-face haben. Weitere mögliche Kindelemente sind neben title, desc, metadata und switch die für dies Element speziellen Elemente glyph, hkern, missing-glyph und vkern in SVG 1.1.

Der Inhalt des Elementes wird nicht direkt dargestellt, daher empfiehlt es sich, dieses im Element defs zu notieren.

Attribute horiz-origin-x und horiz-origin-y[Bearbeiten]

Das Attribut horiz-origin-x gibt die x-Koordinate des Ursprungs im Koordinatensystem des Zeichensatzes an, der für horizontal ausgerichteten Text verwendet wird. Das gilt für alle Glyphen eines Zeichensatzes.

Das Attribut horiz-origin-y gibt entsprechend die y-Koordinate an. horiz-origin-y ist in SVG tiny 1.2 nicht verfügbar.

Der Wert ist jeweils eine Zahl. Ist ein Attribut nicht angegeben, wird für dieses 0 angenommen.

Die Attribute sind nicht animierbar.

Attribute horiz-adv-x und vert-adv-y[Bearbeiten]

Das Attribut horiz-adv-x gibt die Voreinstellung an für den Fortschritt in horizontaler Richtung nach der Darstellung der Glyphe, also praktisch die Breite des für eine Glyphe reservierten Platzes. vert-adv-y entsprechend in vertikaler Richtung. Die Breite einer Glyphe darf nicht negativ sein, auch wenn die Schreibrichtung von rechts nach links erfolgt, wie bei hebräisch oder arabisch.

vert-adv-y ist in SVG tiny 1.2 nicht verfügbar.

Der Wert ist jeweils eine Zahl. Ist ein Attribut nicht angegeben, wird für dieses 0 angenommen.

Die Attribute sind nicht animierbar.

Attribute vert-origin-x und vert-origin-y[Bearbeiten]

Das Attribut vert-origin-x gibt die x-Koordinate des Ursprungs im Koordinatensystem des Zeichensatzes an, der für vertikal ausgerichteten Text verwendet wird. Das gilt für alle Glyphen eines Zeichensatzes.

Das Attribut vert-origin-y gibt entsprechend die y-Koordinate an. Die Attribute sind in SVG tiny 1.2 nicht verfügbar.

Der Wert ist jeweils eine Zahl. Ist das Attribut vert-origin-x nicht angegeben, wird für dieses die Hälfte des Effektivwertes von horiz-adv-x angenommen. Ist das Attribut vert-origin-y nicht angegeben, wird für diese die Postion angenommen, die sich aus dem Attribut ascent ergibt.

Die Attribute sind nicht animierbar.

Element font-face[Bearbeiten]

SVG Squiggle (Batik) Opera (Presto) Firefox (Gecko; auch SeaMonkey, Iceape, Iceweasel etc) Konqueror (KSVG) Safari (Webkit) Chrome (Webkit) Microsoft Internet Explorer (Trident) librsvg
1.1 1.7 (SVG, nicht die CSS-Variante) 9 (teilweise, eingebettete Glyphen) - - - ? ? ?

Wird ein Zeichensatz direkt im Element font definiert und nicht nur referenziert, so wird empfohlen, das Element font-face als direktes Kindelement von font zu notieren.

Mögliche Kindelemente von font-face sind neben title, desc, metadata und switch die für dies Element spezifische Elemente font-face-src und definition-src.

Die Funktion des Elementes entspricht genau der CSS2-Regel @font-face. Es beschreibt die Eigenschaften eines Zeichensatzes.

Sofern der Zeichensatz innerhalb desselben Elternelementes font im selben Dokument definiert wird, sollte font-face auch diesen und keinen anderen Zeichensatz beschreiben. In dem Falle werden auch sämtliche Elemente font-face-src innerhalb von font-face ignoriert, weil angenommen wird, dass font-face die Eigenschaften des lokal definierten Zeichensatzes definiert.

Attribute entsprechend der CSS2-Regel @font-face[Bearbeiten]

Die Attribute von font-face entsprechen den in CSS2 definierten Eigenschaften der CSS2-Regel @font-face.

Die Attribute sind: font-family, font-style, font-weight, unicode-range, units-per-em, panose-1, stemv, stemh, slope, cap-height, x-height, accent-height, ascent, descent, widths, bbox, ideographic, alphabetic, mathematical, hanging, underline-position, underline-thickness, strikethrough-position, strikethrough-thickness, overline-position und overline-thickness.

In SVG 1.1 gibt es zusätzlich zu den obigen, die in SVG tiny 1.2 verfügbar sind, noch die Attribute: font-variant, font-stretch, font-size, v-alphabetic, v-mathematical und v-hanging.

Die Attribute sind allesamt nicht animierbar.

Die Bedeutungen sind die gleichen wie bei den entsprechenden Eigenschaften, mit denen ein Zeichensatz ausgewählt wird. Nur dass bei diesem Element nicht ausgewählt wird, sondern eine im Element definierte Glyphe einem bestimmten Zeichensatz mit entsprechenden Eigenschaften zugeordnet wird und dann wiederum als solche für Textelemente ausgewählt werden kann.

font-family[Bearbeiten]

Angabe der Schriftfamilie.
Wert entsprechend der gleichnamigen Eigenschaft. Sind mehrere Schriftfamilien angegeben, treffen alle auf die Glyphen zu.

font-style[Bearbeiten]

Angabe des Stiles.
Mögliche Werte sind entweder 'all' als Voreinstellung für alle oder eine Liste mit den möglichen Werten 'normal', 'italic', 'oblique'. Was angegeben ist, trifft jeweils auf den definierten Zeichensatz zu.

font-variant[Bearbeiten]

Angabe der Variante.
Möglicher Wert ist eine Liste mit den möglichen Werten 'normal', der Voreinstellung und 'small-caps'.

font-weight[Bearbeiten]

Angabe des Gewichtes.
Möglicher Wert ist entweder 'all', die Voreinstellung für alle Gewichte, oder eine Liste von Gewichten mit den möglichen Werten 'normal', 'bold', '100', '200', '300', '400', '500', '600', '700', '800', '900'.

font-stretch[Bearbeiten]

Angabe der Dehnung.
Möglicher Wert ist entweder 'all' oder eine Liste von Dehnungen mit den möglichen Werten 'normal', 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'. Voreinstellung ist 'normal'.

font-size[Bearbeiten]

Angabe der Schriftgröße.
Möglicher Wert ist entweder 'all' oder eine Liste von absoluten Längen.

unicode-range[Bearbeiten]

Angabe des abgedeckten Unicode-Bereiches. Damit wird vermeiden, dass der Zeichensatz überhaupt geladen wird, wenn nur Zeichen außerhalb des angegebenen Bereiches benötigt werden. Der Wert ist eine Liste von Unicode-Bereichen. Voreinstellung ist 'U+0-7FFFFFFF' (Typisch wird der selbst definierte Zeichensatz nicht all diese Zeichen enthalten, daher ist zu empfehlen, den zutreffenden Bereich korrekt anzugeben).

Ein Bereich wird in der hexadezimalen Schreibweise notiert, für ein Zeichen etwa U+215A Dabei gibt es wiederum verschiedene Möglichkeiten. Zum einen kann ein '?' als Platzhalter für die letzte Ziffer verwendet werden, also zum Beispiel U+215?, das deckt dann alle Zeichen von U+2150 bis U+215F ab. Auch zwei Fragezeichen sind erlaubt, also zum Beispiel U+00?? geht dann von U+0000 bis U+00FF (Latin-1). Größere Bereiche können mit zwei Nummern verbunden mit einem Bindestrich notiert werden, Beispiel: U+15C00-15FFF entspricht dem Bereich U+15C00 bis U+15FFF (aztekisch).

units-per-em[Bearbeiten]

Angabe, wievielen Einheiten in lokalen Koordinaten die Einheit em entspricht.
Der Wert ist eine Zahl. Die Angabe ist bei Verwendung vieler anderer Attribute erforderlich, damit diese einen Sinn ergeben.

panose-1[Bearbeiten]

Angabe der PANOSE-Nummern.
Dabei handelt es sich um Klassifikationsnummern für 'TrueType', insgesamt zehn Zahlen, die die Schlüsseleigenschaften einer lateinischen Schrift festlegt. Der Wert besteht aus zehn ganzen Zahlen, jeweils durch Leerzeichen getrennt. Die Voreinstellung sind zehn Nullen, was bedeutet, dass jeder Zeichensatz zu der Nummernkombination passt.

stemv[Bearbeiten]

Angabe der vertikalen Stengelbreite (englisch: stem).
Gemeint ist damit eine Typische Breite einer vertikalen Struktur bei den Glyphen, zum Beispiel die Breite des vertikalen Stiches von 'L', 'I', 'd', 'p' etc.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

Der Wert ist eine Zahl. Voreinstellung ist undefiniert. Ist der Wert undefiniert, wird das Attribut ignoriert.

stemh[Bearbeiten]

Angabe der horizontale Stengelbreite (englisch: stem).
Gemeint ist damit eine Typische Breite einer horizontalen Struktur bei den Glyphen, zum Beispiel die Breite von Serifen oder des horizontalen Stiches von 'H', 'L', '-', 'z', 't' etc.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

Der Wert ist eine Zahl. Voreinstellung ist undefiniert. Ist der Wert undefiniert, wird das Attribut ignoriert.

slope[Bearbeiten]

Angabe des Winkels von vertikalen Strukturen.
Sind vertikale Strukturen in einem Zeichensatz nicht exakt vertikal, sondern gekippt, etwa beim Typ 'italic' oder 'oblique'. Es handelt sich um einen Winkel entgegen dem Uhrzeigersinn von der Vertikalen aus zur vertikalen Struktur

Der Wert ist eine Zahl. Die Voreinstellung ist 0.

cap-height[Bearbeiten]

Angabe der typischen Höhe von großen Buchstaben, von der Basislinie aus gemessen.
Sofern vorhanden ist das zum Beispiel die Höhe von 'M' oder 'H'.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

Der Wert ist eine Zahl. Voreinstellung ist undefiniert. Ist der Wert undefiniert, wird das Attribut ignoriert.

x-height[Bearbeiten]

Angabe der typischen Höhe von kleinen Buchstaben, von der Basislinie aus gemessen.
Sofern vorhanden ist das zum Beispiel die Höhe von 'x' oder 'a'. Die Größe ist insbesondere wichtig für die Eigenschaft font-size-adjust, weil die Berechnung des Anpassungsfaktors auf dieser Größe basiert. Daher sollte der Wert angegeben werden.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

Der Wert ist eine Zahl. Voreinstellung ist undefiniert. Ist der Wert undefiniert, wird das Attribut ignoriert.

ascent[Bearbeiten]

Angabe der maximalen Höhe von Buchstaben, von der Basislinie aus gemessen, aber ohne Akzentzeichen.
Sofern vorhanden ist das zum Beispiel die Höhe von 'l', 'b' oder 'h'.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

Der Wert ist eine Zahl. Voreinstellung ist undefiniert. Ist der Wert undefiniert, wird das Attribut ignoriert.

descent[Bearbeiten]

Angabe der maximalen Tiefe von Buchstaben, von der Basislinie aus gemessen, aber ohne Akzentzeichen.
Sofern vorhanden ist das zum Beispiel der Teil unter der Grundlinie von 'j', 'g' oder 'y'.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

Der Wert ist eine Zahl. Voreinstellung ist undefiniert. Ist der Wert undefiniert, wird das Attribut ignoriert.

accent-height[Bearbeiten]

Angabe der Höhe von Zeichen mit Akzent, im Koordinatensystem des Zeichensatzes angegeben.

Der Wert ist eine Zahl. Ist das Attribut nicht angegeben, wird der Wert von accent angenommen. Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

widths[Bearbeiten]

Angabe der Breite von Glyphen.
Der Wert ist eine Liste von Kombinationen von optionalen Unicode-Bereichen und einer Zahl oder mehreren Zahlen. Der Listenseparator ist ein Komma.

Die Notation des Unicode-Bereiches ist bereits für das Attribut unicode-range beschrieben. Ist kein Bereich für eine Zahl angegeben, wird U+0-7FFFFFFF angenommen.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden. Wenn nicht genug Glyphenbreiten angegeben sind, gilt für die restlichen Glyphen der letzte Wert. Sind zuviele angegeben, werden die überschüssigen Breiten ignoriert.

Beispiel:

widths="U+4E00-4E1F 1736 1874 1692"

oder

widths="U+1A?? 1490, U+215? 1473 1838 1927 1684 1356 1792
    1815 1848 1870 1492 1715 1745 1584 1992 1978 1770"

bbox[Bearbeiten]

Angabe des maximalen begrenzenden Rechtecks.
Das begrenzende Rechteck ist das kleinste (horizontal und vertikal) ausgerichtete Rechteck, das jeweils eine jede Glyphe des Zeichensatzes komplett umschließt.

Der Wert besteht aus einer Liste von vier Zahlen, jeweils mit einem Komma als Separator. Die erste Zahl gibt den x-Wert unten links an, die zweiten den y-Wert unten links, die dritte den x-Wert oben rechts, die vierte den y-Wert oben rechts.

ideographic[Bearbeiten]

Angabe zur ideographischen Ausrichtung bezüglich der Grundlinie.
Der Wert ist eine Zahl, die einen Versatz im Koordinatensystem des Zeichensatzes angibt.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

alphabetic[Bearbeiten]

Angabe alphabetischen Ausrichtung bezüglich der Grundlinie.
Der Wert ist eine Zahl, die einen Versatz im Koordinatensystem des Zeichensatzes angibt.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

mathematical[Bearbeiten]

Angabe mathematischen Ausrichtung bezüglich der Grundlinie.
Der Wert ist eine Zahl, die einen Versatz im Koordinatensystem des Zeichensatzes angibt.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

hanging[Bearbeiten]

Angabe hängende Ausrichtung bezüglich der Grundlinie.
Der Wert ist eine Zahl, die einen Versatz im Koordinatensystem des Zeichensatzes angibt.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

v-ideographic[Bearbeiten]

Angabe zur ideographischen Ausrichtung bezüglich der Grundlinie für vertikal angeordnete Glyphen.
Der Wert ist eine Zahl, die einen Versatz relativ zu vert-origin-x im Koordinatensystem des Zeichensatzes angibt.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

v-alphabetic[Bearbeiten]

Angabe alphabetischen Ausrichtung bezüglich der Grundlinie für vertikal angeordnete Glyphen.
Der Wert ist eine Zahl, die einen Versatz relativ zu vert-origin-x im Koordinatensystem des Zeichensatzes angibt.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

v-mathematical[Bearbeiten]

Angabe mathematischen Ausrichtung bezüglich der Grundlinie für vertikal angeordnete Glyphen.
Der Wert ist eine Zahl, die einen Versatz relativ zu vert-origin-x im Koordinatensystem des Zeichensatzes angibt.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

v-hanging[Bearbeiten]

Angabe hängende Ausrichtung bezüglich der Grundlinie für vertikal angeordnete Glyphen.
Der Wert ist eine Zahl, die einen Versatz relativ zu vert-origin-x im Koordinatensystem des Zeichensatzes angibt.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

underline-position[Bearbeiten]

Angabe der y-Position von Unterstreichungen im Koordinatensystem des Zeichensatzes.
Der Wert ist eine Zahl.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

underline-thickness[Bearbeiten]

Angabe der Dicke von Unterstreichungen im Koordinatensystem des Zeichensatzes.
Der Wert ist eine Zahl, eine Länge repräsentierend.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

strikethrough-position[Bearbeiten]

Angabe der y-Position von Durchstreichungen im Koordinatensystem des Zeichensatzes.
Der Wert ist eine Zahl.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

strikethrough-thickness[Bearbeiten]

Angabe der Dicke von Durchstreichungen im Koordinatensystem des Zeichensatzes.
Der Wert ist eine Zahl, eine Länge repräsentierend.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

overline-position[Bearbeiten]

Angabe der y-Position von Überstreichungen im Koordinatensystem des Zeichensatzes.
Der Wert ist eine Zahl.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

overline-thickness[Bearbeiten]

Angabe der Dicke von Überstreichungen im Koordinatensystem des Zeichensatzes.
Der Wert ist eine Zahl, eine Länge repräsentierend.

Wenn dies Attribut verwendet wird, muss auch units-per-em verwendet werden.

Element font-face-src[Bearbeiten]

Das Element entsprecht dem CSS2-Deskriptor 'src' der CSS2-Regel @font-face.

font-face-src ist, sofern angegeben, direktes Kindelement von font-face. font-face-uri und font-face-name sind wiederum direkte Kindelemente von font-face-src.

font-face-src wird verwendet, wenn der Zeichensatz nicht selbst im Element font definiert wird, sondern außerhalb davon in einem anderen Dokument oder einem anderen Dokumentfragment.

Element font-face-uri[Bearbeiten]

font-face-uri referenziert die Ressource für den Zeichensatz.

Sofern ein SVG-Zeichensatz referenziert wird, wird der Fragmentidentifizierer des entsprechenden Elementes font mit angegeben.

Attribut href von XLink[Bearbeiten]

Zur Referenzierung der Ressource wird in font-face-uri das Attribut href von XLink verwendet. Der Wert ist eine IRI samt Fragmentidentifizierer für ein Element font.

Das Attribut ist für dieses Element nicht animierbar.

Mit href sind auch die anderen Attribute von XLink verfügbar.

Element font-face-format[Bearbeiten]

Direktes Kindelelement von font-face-uri ist das Element font-face-format mit dem Attribut string, der Wert ist eine Liste von Zeichenfolge, mit dem Komma als Separator. Diese Zeichenfolgen sind beispielhaft für einige Formate in CSS2.0 festgelegt (oder in einem CSS3-Modul). Für bekannte Formate ergibt sich folgende Zuordnung einer Zeichenfolge zu einem Format:

svg
SVG-Zeichensatz, typische Dateiendungen: .svg, .svgz
type-1
PostScript Type 1, typische Dateiendungen: .pfb, .pfa
truetype
TrueType, typische Dateiendung: .ttf
truetype-gx
TrueType mit GX-Erweiterungen, typische Dateiendung: .ttf
truetype-aat
TrueType mit vorgeschrittenen Erweiterungen, typische Dateiendung: .ttf
opentype
OpenType, typische Dateiendungen: .ttf, .otf
embedded-opentype
Embedded OpenType, typische Dateiendung: .eot
truedoc-pfr
TrueDoc Portable Font Resource, typische Dateiendung: pfr
speedo
Speedo
intellifont
Intellifont

Element font-face-name[Bearbeiten]

Mit dem als Kindelement von font-face-src notierbaren Element font-face-name kann dem Zeichensatz ein Name gegeben werden. Der Name wird im Attribut name notiert. Dieser Name kann dazu dienen, in der Eigenschaft oder im Präsentationsattribut font-family notiert zu werden, um diese Schrift zu verwenden. font-face selbst kann natürlich ebenfalls ein Attribut font-family mit der Angabe des Namens haben.

Das Element font-face-name ist in SVG tiny 1.2 nicht verfügbar.

Element definition-src[Bearbeiten]

Das Element definition-src entspricht dem CSS2-Descriptor 'definition-src'. Es ist, sofern angegeben, direktes Kindelement von font-face.

Das Element kann Attribute von XLink enthalten, insbesondere href ist relevant, um die Ressource zu referenzieren. Diese Ressource ist enthält Angaben zu: panose-1, stemv, stemh, slope, cap-height, x-height, ascent und descent.
Offenbar ist das entweder ein CSS-Dokument, wenn diese Syntax verwendet wird oder der Identifizierer für ein font-face mit den Angaben in den entsprechenden Attributen.

Das Element definition-src ist in SVG tiny 1.2 nicht verfügbar.

Element glyph[Bearbeiten]

SVG Squiggle (Batik) Opera (Presto) Firefox (Gecko; auch SeaMonkey, Iceape, Iceweasel etc) Konqueror (KSVG) Safari (Webkit) Chrome (Webkit) Microsoft Internet Explorer (Trident) librsvg
1.1 1.7 9 (teilweise: Attributvariante) - - - ? ? ?

Das Element glyph ist ein direktes Kindelement des Elementes font. Mit dem Element wird jeweils eine Glyphe eines Zeichensatzes definiert.

Das Koordinatensystem von glyph wird von den Attributen des Elternelementes font definiert.

In SVG tiny 1.2 wird exakt ein Pfad im Attribut d notiert, das dem von path entspricht. In SVG 1.1 kann alternativ anderer graphischer Inhalt als Inhalt des Dokumentes notiert werden.

Enthält das Element in SVG 1.1 Kindelemente, entspricht das Verhalten dem vom use, das ein Symbol referenziert.

Eigenschaften werden nicht vom Elternelement geerbt, sondern von jenem Element, in dem der Text notiert ist, der mit den Glyphen dargestellt werden soll.

Ist ferner sowohl das Attribut d notiert als auch Kindelemente im glyph, so wird zunächst der Pfad entsprechend d dargestellt, dann die Kindelemente.

Attribut unicode[Bearbeiten]

Mit dem Attribut unicode wird eine Kombination von Unicode-Zeichen angegeben, die die Glyphe repräsentieren soll.

Ist ein Unicode-Zeichen angegeben, so repräsentiert die Glyphe dieses Zeichen. Sind mehrere Zeichen angegeben, so repräsentiert die Glyphe diese Kombination. Dies ist eine Möglichkeit, eine Ligatur zu notieren. Zum Beispiel ergibt unicode="ffl" eine Glyphe, die durch die drei aufeinanderfolgenden Zeichen 'f', 'f' und 'l' notiert wird. Das heißt, wenn im Text 'ffl' notiert wird, so gilt dies als eine einzige Glyphe.

Eine hexadezimale oder dezimale Notation ist ebenfalls möglich also "ffl" ist das gleiche wie "&#x66;&#x66;&#x6c;" oder "&#102;&#102;&#108;".

Das Attribut ist nicht animierbar.

Attribut glyph-name[Bearbeiten]

Mit dem Attribut kann der Glyphe ein Name gegeben werden. Namen von Glyphen sollten eindeutig innerhalb eines Zeichensatzes sein. Dies kann helfen, wenn die Unicode-Angabe nicht ausreichend ist, um die korrekte Glyphe zu bezeichnen. Das kann passieren, wenn es mehrere Glyphen für eine Unicode-Angabe gibt. Insbesondere kann dieser Name im Zusammenhang mit Angaben zur Proportionalschrift sein (englisch: kerning), weil es da sinnvoll sein kann, bei verschiedenen Kombinationen von Glyphen leichte Modifikationen vorzunehmen.

Der Wert ist eine Liste von Zeichenketten.

Das Attribut ist nicht animierbar.

Attribut d[Bearbeiten]

Im Attribut d kann der Pfad für die Glyphe notiert werden. In SVG tiny 1.2 ist dies die einzige Möglichkeit, die Darstellung der Glyphe festzulegen.

Der Wert ist derselbe wie für das gleichnamige Attribut des Elementes path.

Das Attribut ist nicht animierbar.

Attribut arabic-form[Bearbeiten]

Bei arabischen Glyphen gibt es vier verschiedene Formen, in denen eine Glyphe repräsentiert werden kann. Mit diesem Attribut kann angegeben werden, welche davon gemeint ist.

Die möglichen Werte sind 'initial', 'medial', 'terminal' und 'isolated'. Sofern für eine arabische Glyphe nicht angegeben, für welche diese Information benötigt wird, wird 'isolated' angenommen. Das hat zur Folge, dass sofern nicht separat angegeben keine Glyphen für die anderen Formen verfügbar sind (und also Glyphe verwendet wird, die für fehlende Glyphen angegeben ist).

Ist die Angabe nicht erforderlich, hat sie keinen Effekt.

Das Attribut ist nicht animierbar.

Attribut lang[Bearbeiten]

Es kann vorkommen, dass Glyphen nur für bestimmte Sprachen anwendbar sind. Mit dem Attribut wird angegeben, welche Sprachen anwendbar sind. Dies erfolgt mit einer Liste von Sprachmarkierungen als Wert des Attributes. Der Wert entspricht also dem von xml:lang. Die Glyphe wird verwendet, wenn beim Zieltext das Attribut xml:lang exakt mit einer der Sprachmarkierungen übereinstimmt. Die Glyphe findet auch Anwendung, wenn das Attribut lang nur ein Präfix angibt (also zum Beispiel 'de' und nicht 'de-at') und xml:lang dasselbe Präfix enthält.

Kurzum ist beim Text per xml:lang 'de' angegeben und in lang 'de-de en-gb', so ist die Glyphe nicht anwendbar. Umgekehrt ist per xml:lang 'de-at' angegeben und in lang 'de-de', so ist die Glyphe nicht anwendbar. Ist in lang 'de' angegeben, so ist die Glyphe auf alle deutschsprachigen Texte anwendbar, also zum Beispiel sowohl auf 'de-de' als auch 'de-at' etc.

Das Attribut ist nicht animierbar.

Attribute horiz-adv-x und vert-adv-y[Bearbeiten]

Das Attribut horiz-adv-x gibt den Fortschritt in horizontaler Richtung nach der Darstellung der Glyphe an, also praktisch die Breite des für eine Glyphe reservierten Platzes. vert-adv-y entsprechend in vertikaler Richtung. Die Breite einer Glyphe darf nicht negativ sein, auch wenn die Schreibrichtung von rechts nach links erfolgt, wie bei hebräisch oder arabisch.

vert-adv-y ist in SVG tiny 1.2 nicht verfügbar.

Der Wert ist jeweils eine Zahl. Ist ein Attribut nicht angegeben, wird der Wert verwendet, der beim gleichnamigen Attribut von font notiert ist.

Die Attribute sind nicht animierbar.

Attribut orientation[Bearbeiten]

Das Attribut wird nur verwendet für eine bestimmte Richtung, in der der Text fortschreitet. Mögliche Werte sind 'h' für horizontal und 'v' für vertikal. Die Glyphe wird dann nur verwendet, wenn der Text in der angegebenen Richtung fortschreitet. Ist das Attribut nicht angegeben, ist es für beide Richtungen verwendbar.

Das Attribut ist in SVG tiny 1.2 nicht verfügbar.

Das Attribut ist nicht animierbar.

Attribute vert-origin-x und vert-origin-y[Bearbeiten]

Das Attribut vert-origin-x gibt die x-Koordinate des Ursprungs im Koordinatensystem der Glyphe an, der für vertikal ausgerichteten Text verwendet wird.

Das Attribut vert-origin-y gibt entsprechend die y-Koordinate an. Die Attribute sind in SVG tiny 1.2 nicht verfügbar.

Der Wert ist jeweils eine Zahl. Ist das Attribut nicht angegeben, wird der Wert des gleichnamigen Attributes vom Elternelement verwendet.

Die Attribute sind nicht animierbar.

Element missing-glyph[Bearbeiten]

SVG Squiggle (Batik) Opera (Presto) Firefox (Gecko; auch SeaMonkey, Iceape, Iceweasel etc) Konqueror (KSVG) Safari (Webkit) Chrome (Webkit) Microsoft Internet Explorer (Trident) librsvg
1.1 1.7 9 (teilweise: Attributvariante) - - - ? ? ?

Mit dem Element wird die Präsentation der Glyphe definiert, die angezeigt wird, wenn keine passende Glyphe verfügbar ist.

Die Attribute sind dieselben wie für das Element glyph.

Das Element missing-glyph ist ein direktes Kindelement des Elementes font.

Das Koordinatensystem von missing-glyph wird von den Attributen des Elternelementes font definiert.

In SVG tiny 1.2 wird exakt ein Pfad im Attribut d notiert, das dem von path entspricht. In SVG 1.1 kann alternativ anderer graphischer Inhalt als Inhalt des Dokumentes notiert werden.

Enthält das Element in SVG 1.1 Kindelemente, entspricht das Verhalten dem vom use, das ein Symbol referenziert.

Eigenschaften werden nicht vom Elternelement geerbt, sondern von jenem Element, in dem der Text notiert ist, der mit den Glyphen dargestellt werden soll.

Auswahl der richtigen Glyphe[Bearbeiten]

Die Reihenfolge der Angabe der Glyphen ist entscheidend für die Auswahl. Die erste passende Glyphe wird verwendet.

Gibt es zum Beispiel eine Ligatur für 'ff', so ist diese vor der Glyphe von 'f' zu notieren, sonst wird 'f' verwendet und nicht 'ff'.

Entsprechendes gilt für die Sprachauswahl.

Es ist also immer der speziellere Fall vor dem allgemeinen zu notieren, damit die speziellere Glyphe überhaupt verwendet wird.

Elemente hkern und vkern[Bearbeiten]

SVG Squiggle (Batik) Opera (Presto) Firefox (Gecko; auch SeaMonkey, Iceape, Iceweasel etc) Konqueror (KSVG) Safari (Webkit) Chrome (Webkit) Microsoft Internet Explorer (Trident) librsvg
1.1 1.7 9 - - - ? ? ?

Mögliche weitere direkte Kindelemente von font sind hkern und vkern (letzteres nicht in SVG tiny 1.2 verfügbar).

Mit dem Element hkern wird das horizontale Unterschneiden von Glyphenpaaren bei Proportionalschriften definiert (englisch: kerning). Mit vkern entsprechend das vertikale.

Zum Beispiel bei Paaren wie 'Te', 'Ta', 'Av', 'aj' etc ist es üblich, solche Paare etwas dichter zusammenzusetzen als für die Glyphen unabhängig angegeben. Bei 'Ga', 'Ge', 'Am', 'ag' wird hingegen eher der normale Abstand verwendet. Das Unterschneiden reduziert einen optisch ungleichmäßig wirkenden Eindruck, wenn bedingt durch die Form der Einzelglyphen zwischen diesen ungewöhnlich viel freier Platz bleibt.

Die Reihenfolge der anzugebenden Glyphen ist von links nach rechts, unabhängig von der späteren Schreibrichtung und wird dann auch von links nach rechts angewendet. Entscheidend bei der Anwendung ist also immer die Abfolge der Glyphen von links nach rechts, auch wenn die Schreibrichtung von rechts nach links sein sollte.

Entsprechend ist die Reihenfolge von vkern immer von oben nach unten.

Attribute u1 und u2[Bearbeiten]

u1 gibt den oder die ersten Glyphen für ein Überschneidungspaar an, u2 die zweiten. Im einfachsten Falle ist der Wert jeweils ein Unicode-Zeichen. Es können allerdings auch mehrere oder Bereiche angegeben werden. Dann gelten die Angaben zur Überschneidungen für alle daraus resultierenden Paare von u1 und u2.

Es gibt also die Möglichkeit, als Wert eine Liste von Zeichen oder Bereichen zu notieren, die mit einem Komma voneinander zu separieren sind. Details zur Notation siehe Attribut unicode-range des Elementes font-face.

Die Attribute sind nicht animierbar.

Attribute g1 und g2[Bearbeiten]

Sofern den Glyphen Namen gegeben wurden, können auch diese mit g1 und g2 zur Angabe der ersten beziehungsweise zweiten Glyphe für ein Überschneidungspaar verwendet werden.

Der Wert ist eine Liste von Glyphennamen, wie beim Element glyph mittels glyph-name festgelegt. Dann gelten die Angaben zur Überschneidungen für alle daraus resultierenden Paare von g1 und g2.

Die Attribute sind nicht animierbar.

Es muss mindestens ein Attribut von u1 und g1 und eines von u2 und g2 notiert werden.

Attribut k[Bearbeiten]

Mit dem Attribut k wird angegeben, um wie viel der Abstand zwischen dem Glyphenpaar für die Überschneidung verkleinert werden soll. Der Wert ist eine Zahl (in implizierten Einheiten im Koordinatensystem des Zeichensatzes).

Ein negativer Wert vergrößert also den Abstand zwischen den beiden Glyphen, ein positiver verkleinert ihn. Bei 0 bleibt er unverändert wie ohne Überschneidung.

Das Attribut ist nicht animierbar.

Alternative Glyphen, Element altGlyph[Bearbeiten]

SVG Squiggle (Batik) Opera (Presto) Firefox (Gecko; auch SeaMonkey, Iceape, Iceweasel etc) Konqueror (KSVG) Safari (Webkit) Chrome (Webkit) Microsoft Internet Explorer (Trident) librsvg
1.1 1.7 (falsch implementiert) 10 (falsch implementiert) - - - ? ? ?

In SVG 1.1 können alternative Glyphen definiert werden, wenn es notwendig ist, die normale Erscheinung von Glyphen durch eine andere Repräsentation zu ersetzen.

Zum Beispiel könnten zur Darstellung von Noten die korrespondierenden Buchstaben notiert werden, die dann durch Glyphen ersetzt werden, die die Noten darstellen. So kann die übliche graphische Repräsentation einer Melodie erreicht bleiben, wofür nur herkömmliche Buchstaben und Zahlen im Quelltext stehen, was die Melodie leichter editierbar macht und leichter ohne spezielle Programme kopierbar.

Für Text, der im Element altGlyph notiert wird, können alternative Glyphen verwendet werden. Folglich ist altGlyph in einem Textelement zu notieren, also text, tspan, textPath.

Attribut href von XLink[Bearbeiten]

Mit dem Attribut href von XLink kann ein Element glyph oder altGlyphDef referenziert werden, das die alternativen Glyphen repräsentiert. Dazu wird als Wert der Fragmentidentifizierer des entsprechenden Elementes als Verweisziel notiert.

Mit href sind auch die anderen Attribute von XLink verfügbar.

Wird ein glyph referenziert, wird diese Glyphe anstatt jener in altGlyph angegebenen Zeichen verwendet, die entsprechend passen.

Wird ein altGlyphDef referenziert, wird ein entsprechender Satz von Glyphen von diesem Element verwendet anstatt jener in altGlyph angegebenen Zeichen, die entsprechend passen.

Sofern href notiert ist, wird dies zur Identifikation der Glyphe verwendet. glyphRef wird dann ignoriert.

href ist für dieses Element nicht animierbar.

Attribut glyphRef[Bearbeiten]

Das Attribut identifiziert die zu ersetzende Glyphe. Der Wert ist vom verwendeten Format abhängig.

Das Attribut ist nicht animierbar.

Attribut format[Bearbeiten]

Das Attribut gibt an, welches Format verwendet wird. Die Bedeutung ist die gleiche wie für das gleichnamige Attribut von font-face-format.

Das Attribut ist nicht animierbar.

Attribute x und y[Bearbeiten]

Die Attribute geben die x- beziehungsweise y-Koordinaten der Glyphen an. Die Bedeutung ist die gleiche wie die der gleichnamigen Attribute von tspan. Die Werte ersetzen bei den zu ersetzenden Glyphen die mit tspan oder text definierten Positionen.

Die Attribute sind animierbar.

Attribute dx und dy[Bearbeiten]

Die Attribute geben die x- beziehungsweise y-Verschiebungen der Glyphen an. Die Bedeutung ist die gleiche wie die der gleichnamigen Attribute von tspan. Die Werte ersetzen bei den zu ersetzenden Glyphen die mit tspan oder text definierten Verschiebungen.

Die Attribute sind animierbar.

Attribut rotate[Bearbeiten]

Das Attribut gibt die Drehung der Glyphen an. Die Bedeutung ist die gleiche wie die des gleichnamigen Attributes von tspan. Die Werte ersetzen bei den zu ersetzenden Glyphen die mit tspan oder text definierten Drehungen.

Das Attribut ist animierbar (nicht additiv).

Element altGlyphDef[Bearbeiten]

Das Element altGlyphDef definiert einen Satz möglicher alternativer Glyphen zur Ersetzung. Als nicht direkt dargestellter Inhalt empfhielt es sich, dies Element innerhalb von defs zu notieren.

Im einfachsten Falle enthält altGlyphDef eines oder mehrere Elemente glyphRef. Jedes glyphRef referenziert einen einzelnen Glyphen einer bestimmten Schrift. Die referenzierten Glyphen werden dann anstatt der Zeichen verwendet, die im referenzierenden Element altGlyph notiert sind, sofern für alle eine Alternative verfügbar ist. Sind nicht für alle Zeichen Ersatzglyphen vorhanden, ist das Verhalten das gleiche, als sei kein altGlyph angegeben, die Zeichen werden also mit dem aktuell gültigen Zeichensatz dargestellt.

Im komplizierteren Falle enthält altGlyphDef eines oder mehrere Elemente altGlyphItem. Jedes altGlyphItem enthält eines oder mehrere Elemente glyphRef. Jedes glyphRef referenziert eine einzelne Glyphe einer bestimmten Schrift.

Es wird das erste altGlyphItem verwendet, mit dem alle angegebenen Zeichen ersetzt werden können. Gibt es einen solchen Satz nicht, so ist das Verhalten das gleiche, als sei kein altGlyph angegeben, die Zeichen werden also mit dem aktuell gültigen Zeichensatz dargestellt.

Die referenzierten Glyphen werden sofern anwendbar dann anstatt der Zeichen verwendet, die im referenzierenden Element altGlyph notiert sind.

Element altGlyphItem[Bearbeiten]

Das Element altGlyphItem definiert einen Satz möglicher alternativer Glyphen zur Ersetzung. Der erste passende Satz wird verwendet. Die referenzierten Glyphen werden dann anstatt der Zeichen verwendet, die im referenzierenden Element altGlyph notiert sind.

Element glyphRef[Bearbeiten]

Das Element definiert eine gegebenenfalls verwendbare Glyphe.

Attribut href von XLink[Bearbeiten]

Mit dem Attribut href von XLink wird ein Element glyph referenziert, das die alternative Glyphe repräsentiert. Dazu wird als Wert der Fragmentidentifizierer des entsprechenden Elementes als Verweisziel notiert.

Mit href sind auch die anderen Attribute von XLink verfügbar.

Sofern href notiert ist, wird dies zur Identifikation der Glyphe verwendet. glyphRef wird dann ignoriert.

href ist für dieses Element nicht animierbar.

Attribut glyphRef[Bearbeiten]

Das Attribut identifiziert die zu ersetzende Glyphe. Der Wert ist vom verwendeten Format abhängig.

Das Attribut ist nicht animierbar.

Attribut format[Bearbeiten]

Das Attribut gibt an, welches Format verwendet wird. Die Bedeutung ist die gleiche wie für das gleichnamige Attribut von font-face-format.

Das Attribut ist nicht animierbar.

Attribute x und y[Bearbeiten]

Die Attribute gibt eine neue x- beziehungsweise y-Koordinate der Glyphe im Koordinatensystem des Zeichensatzes an.

Die Attribute sind nicht animierbar.

Attribute dx und dy[Bearbeiten]

Die Attribute geben die x- beziehungsweise y-Verschiebungen der Glyphe im Koordinatensystem des Zeichensatzes an.

Die Attribute sind nicht animierbar.

Beispiele alternative Glyphen[Bearbeiten]

Die Glyphen für ! und ? werden ersetzt:

<svg viewBox="0 0 400 150"
  xmlns="http://www.w3.org/2000/svg" version="1.1"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xml:lang="de">
<title>Element altGlyph</title>
<!-- desc ... -->
<defs>
   <font id="F2" horiz-adv-x="500">
      <font-face font-family="Beispiel"
          units-per-em="1000" cap-height="600" x-height="400"
          ascent="700" descent="300"
          alphabetic="0" mathematical="350" ideographic="400" hanging="500" />
      <missing-glyph d="M100,100h100v100h-100z" />
      <glyph id="glyph1" unicode="!" d="M100,0 h200v400h-200z M100,-300h200v200h-200z" />
      <glyph id="glyph2" unicode="?" d="M50,0 h300l-100 400h-100z M150,-300h100v100h-100z" />
   </font>
   <altGlyphDef id="agd1">
     <glyphRef xlink:href="#glyph1" />
     <glyphRef xlink:href="#glyph2" />
   </altGlyphDef>
</defs>

<text x="100" y="100" font-size="20" font-family="serif">
<!-- wird nicht ersetzt, weil einige Ersatzglyphen fehlen -->
<altGlyph xlink:href="#agd1" x="0" y="40">SVG!?! -*</altGlyph>
<!-- wird ersetzt -->
<altGlyph xlink:href="#agd1" x="0" y="80">!??!!</altGlyph>
</text>

<!-- mehr ... -->
</svg>
Beispiel alternative Glyphen

Beispiel alternative Glyphen
Mit der einfachen Methode werden gegebenenfalls Glyphen durch alternative Glyphen ersetzt. Links in grau ist der jeweilige Testtext angegeben, rechts daneben das Resultat. Nur Testtexte, die ausschließlich die Zeichen A, v, ! und ? enthalten, sind zu ersetzen.

Beispiel (2) alternative Glyphen

Beispiel (2) alternative Glyphen
Mit der komplizierteren Methode mit Sätzen von Glyphen werden gegebenenfalls Glyphen durch alternative Glyphen ersetzt. Links in grau ist der jeweilige Testtext angegeben, rechts daneben das Resultat. Wegen fehlender Glyphen wird der Text 'Av!?' nicht ersetzt, die anderen schon.

Literatur[Bearbeiten]