# SVG

SVG (Skalierbare Vektorgraphik, englisch: Scalable Vector Graphics) ist der internationale, vom W3C empfohlene Standard für Vektorgraphiken. SVG ist ein Format der Sprachfamilie XML und beschreibt zweidimensionale Vektorgraphiken.
SVG fügt sich gut in andere bestehende Standards ein, ergänzt sie und wird von ihnen ergänzt. SVG-Dokumente können wie (X)HTML-Dokumente alleine verwendet werden, um Information zugänglich zu vermitteln. Es lassen sich aber auch SVG-Fragmente direkt in beliebige andere XML-basierte Dokumente (zum Beispiel XHTML) einfügen. Andersherum lassen sich auch andere XML-Formate in SVG einfügen, üblich sind insbesondere Metainformationen per RDF und Dublin-Core im Element metadata und direkt anzeigbare Informationen im Element foreignObject.
Die in SVG enthaltenen Fähigkeiten zur deklarativen Animation basieren auf dem XML-Format SMIL, ebenso wie die neuen Multimediaelemente in SVG tiny 1.2. Graphiken können auch über das DOM (Dokument-Objekt-Modell) zum Beispiel per ecmascript manipuliert werden, was neben der deklarativen Animation, die interaktiv begonnen und beendet werden kann, eine andere Möglichkeit eröffnet, auf Ereignisse zu reagieren und mit dem Benutzer zu interagieren. Graphikelemente lassen sich als Verweise verwenden (keine Verwendung eines Elements wie map in (X)HTML notwendig), Filter und Maskierungen können vorgenommen werden, Schriftarten definiert werden und vieles mehr.
Ein aktueller SVG-Standard liegt seit 2003-01-14 in der Version 1.1 als Empfehlung des W3C vor. Eine überarbeitete zweite Auflage mit der Korrektur bekannter Fehler ist 2011-08-16 erschienen. SVG tiny 1.2 liegt seit 2008-12-22 als Spezifikation vor und ist zum einen auf den mobilen Markt ausgerichtet, wie auch die älteren mobilen Varianten von SVG 1.1, zum anderen wird es als Grundmodul für die in Arbeit befindliche Version 2 dienen, für welche auch schon für einige Module Arbeitsentwürfe veröffentlicht wurden. Das Buch beschreibt Version 1.1 und tiny 1.2.
Die anstehende Version 2 weist im Detail gelegentlich etwas andere Regeln auf, verfügt über wenige neue Funktionalitäten. Trotzdem hat (Stand Anfang 2018) bei den Entwicklern von Darstellungsprogrammen wenig Interesse bestanden, diese Version zu implementieren. Wegen der Unterschiede einerseits, der Übersichtlichkeit des Buches andererseits wird diese Version in diesem Buch nicht betrachtet. Bei Interesse könnte es sich für interessierte Autoren lohnen, darüber ein weiteres Buch anzulegen.
Dieses Buch soll sowohl Einsteigern als Tutorium als auch fortgeschrittenen Anwendern als Referenz dienen, deshalb werden die Elemente in einer (aus Sicht der Autoren, Diskussionen dazu sind gerne willkommen) sinnvollen Reihenfolge eingeführt (auch die Reihenfolge der Attribute folgt dieser Richtlinie so gut wie möglich), und werden zum Nachschlagen in der Referenz referenziert.
Anmerkung zu Vorschaubildern: Da leider die Qualität des Programmes deutlich begrenzt ist, welches aus den SVG-Beispieldateien Vorschaubilder erstellt, sind diese Bilder kein Hinweis auf eine korrekte Interpretation des jeweiligen SVG-Dokumentes. Im Begleittext im SVG-Dokument und im laufenden Text des Buches wird hingegen erläutert, wie die entsprechenden Bestandteile von SVG korrekt zu interpretieren sind. Als zusätzlicher Hinweis ist zumeist für einige Darstellungsprogramme angegeben, ob für diese mit einer korrekten Darstellung des entsprechenden Bestandteils zu rechnen ist. Durch Verbesserung dieser Programme wird sich in Zukunft sicherlich die Zuverlässigkeit der Darstellung erhöhen.
Anmerkung zur PDF-Version: Diese ist mehr oder weniger automatisch erstellt, für die meisten Beispiele gibt es im laufenden Text nur Vorschaubilder und Verweise auf die relevanten SVG-Dateien, die dann jeweils von wikibooks geladen werden können. Alternativ enthält die PDF-Version einen Anhang (7z-Archiv), in welchem die SVG-Dateien enthalten sind. Die Namen entsprechen den Abbildungsnummern in der PDF-Version.
Anmerkung zur Druckversion: Auch hier ist es natürlich notwendig, die meisten Beispiele am Computer nachzuvollziehen, den Quelltext anzusehen. Auch hier gilt, auf die meisten Beispiele wird nur verwiesen beziehungsweise es werden nur Vorschaubilder im laufenden Text angeboten. Die SVG-Dokumente für diese Beispiele werden nicht automatisch mit ausgedruckt, bei eingebundenen Beispielen ist eine ausgedruckte Version natürlich auch nicht besonders zur Analyse oder Weiterverwendung der Quelltexte der Beispiele geeignet.
Eine Übersicht über die in diesem Buch als Beispiele verwendeten und erläuterten SVG-Dokumente ist in der Kategorie SVG-Buch zu finden (ausgenommen einige Beispiele, die bei Wikimedia Commons liegen).
Buchpatenschaft/Ansprechperson: Doktorchen
Zu diesem Buch gibt es eine Sammlung, welche dazu dienen kann, ein eigenständigs digitales Buch (EPUB, PDF etc) zu erstellen: Sammlung SVG. Zum Beispiel mit diesem Programm: mediawiki2latex (Tip: Rastern von Vektorgraphiken ist für EPUBs nicht empehlenswert, die SVGs im Buch dienen ferner der Übung.)

## Inhalt

* Einführung
** Vorwort
** Vektorgraphik
** Programme
** Kurze Einführung in XML
* Start mit SVG
* Dokumentstruktur
* Barrierefreiheit
* Transformationen
* Grundformen
* Pfade
* Text als Graphik
* Graphiken formatieren
* Farben
* Farbverlauf und Muster
* Markierungen
* Ausschnitt, Maskierung und Komposition
* Animation
* Verweise
* Interaktivität
* Multimedia
* Erweiterbarkeit
* SVG-Zeichensätze
* Filter-Effekte
* Skripte
* SVG in (X)HTML einbetten
* Referenz
* Weiterführende Literatur