TEX für Grafik
Willemers Informatik-Ecke

Konvertieren von LaTeX zu SVG

LaTeX kann wundervolle Grafiken als picture-Umgebung erzeugen, die man gern auch in den Browser übernehmen würde. Leider spricht der Browser eine andere Sprache, nämlich SVG.

Eine direkte Möglichkeit, aus der picture-Umgebung eine SVG-Datei zu machen, habe ich nicht gefunden. Aber aus der mit pdflatex leicht erzeugbaren PDF lässt sich mit dem Befehl pdf2svg eine SVG erzeugen.

Allerdings muss man das Programm pdf2svg nachinstallieren. Unter Debian, Ubuntu oder Linux Mint ist das schnell gemacht:

sudo apt install pdf2svg

Nun benötigt man eine sehr kleine LaTeX-Quelldatei. Die documentclass wird auf standalone gesetzt. So hat die Ausgabedate keinen störenden Rand.

\documentclass{standalone}
\usepackage{graphicx}
\begin{document}

\unitlength 5mm
\begin{picture}(15.2,6.2)
\put(0.1,4.1) {\framebox(6,2){PC maier}}
\put(3.0,2.1) {\makebox(1,2){\rotatebox{90}{IMAP}}}
\put(4.1,2.1) {\vector(0,1){2}}
\put(4.6,4.1) {\vector(0,-1){2}}
\put(4.7,2.1) {\makebox(1,2){\rotatebox{90}{SMTP}}}
\put(7.1,4.1) {\framebox(6,2){PC hansen}}
\put(7.6,2.1) {\makebox(1,2){\rotatebox{90}{IMAP}}}
\put(8.7,2.1) {\vector(0,1){2}}
\put(9.2,4.1) {\vector(0,-1){2}}
\put(9.3,2.1) {\makebox(1,2){\rotatebox{90}{SMTP}}}
\put(2.1,0.1) {\framebox(13,2){}}
\put(2.1,0.1) {\makebox(12,2)[r]{hs-flensburg.de}}
\put(0.1,0.6) {\makebox(2,1){SMTP}}
\put(0.1,1.6) {\vector(1,0){2}}
\put(2.1,0.6) {\vector(-1,0){2}}
\end{picture}
\end{document}

Diese picture-Umgebung erzeugt folgende Grafik:

Nun wird die TeX-Datei mit dem Befehl pdflatex in eine PDF-Datei geschrieben. Der Befehl pdf2svg erzeugt die SVG-Dateien. Wie es bei generierten Dateien normal ist, ist es nahezu unmöglich, den Code mit einem Editor nachzubearbeiten.

pdflatex picture.tex
pdf2svg picture.pdf picture.svg

Für das Einbinden in eine HTML-Datei, die dann später mit einem Browser angezeigt werden soll, kann einfach ein HTML-IMG-Befehl verwendet werden.

<img src=picture.svg>