Energie auf höchstem Niveau

LaTeX/TikZ-Vektorgrafiken in Microsoft Word importieren

· von David Heinze · Lesedauer etwa 3 Minuten · (431 Wörter)
Batch EMF Grafik LaTeX pgfplot pstoedit SVG Vektorgrafik WMF MS Word

Zur Erstellung von Grafiken und Diagrammen verwende ich LaTeX mit den Paketen TikZ und pgfplot – natürlich mit dem Ziel, diese in LaTeX-Dokumente zu integrieren und daraus PDFs zu erstellen, in denen die Grafiken als hübsch skalierbare Vektorgrafiken erscheinen.

Leider gibt es so manche Situation, in der ich um die Erstellung eines Word-Dokumentes nicht herum komme (z. B. Vorgabe bei Konferenzen). Word bietet leider nur eine sehr rudimentäre Unterstützung von Vektorgrafiken über das proprietäre WMF/EMF-Grafikformat. Was also tun? Pixelige PNG-Grafiken in Kauf nehmen? Das war mein ursprünglicher Ansatz, hat allerdings zu sehr schlechten Resultaten, insbesondere beim Ausdruck oder Konvertieren in PDF geführt.

Eine kurze Google-Recherche später war mir klar, dass ich nicht der einzige bin, der mit diesem Problem zu kämpfen hat, und dass es brauchbare Lösungen gibt, die allerdings etwas Aufwand erfordern.

Grundkonzept

Grundsätzlich ist der Ansatz recht simpel:

  1. Mit Hilfe des Standalone-Pakets eine PDF/PS-Datei aus der/den LaTeX-Grafik(en) erstellen.
  2. Daraus mit Hilfe des Tools pstoedit eine EMF-Grafik erstellen.
  3. EMF-Grafik in Word einfügen.

Problemlösungen und Workarounds

Der Teufel steckt aber wie so oft im Detail. Hier einige Probleme und Lösungsansätze:

  • Problem: Grafik wird zu stark zugeschnitten
    Lösung: standalone-Option border={…} anpassen
    Hinweis: Anscheinend hat diese Option einen Bug, zumindest hat die separate Anpassung aller vier Ränder (z.B. border={1pt 2pt 1pt 2pt}) bei mir nicht korrekt funktioniert.

  • Problem: Schlechte Schriftdarstellung, Fehler bei Sonderzeichen und Zeichenabständen
    Lösung: Helvetica/Arial als Schriftart verwenden, Sonderzeichen als Polygone zeichnen

    1. Times und Helvetica (Arial) in LaTeX einbinden und serifenlose Schriftart einstellen:

      \usepackage{mathptmx}       % Times mit Matheschriften
      \usepackage[scaled=.90]{helvet} % Helvetica (Arial)
      \usepackage{sfmath}         % serifenlose Schriften für Mathe-Modus
      \renewcommand{\familydefault}{\sfdefault}   % serifenlose Schriftart als Standardschrift
      
    2. Zeichen in pstoedit einzeln setzen (korrigiert fehlerhafte Abstände): Option -pta

    3. Sonderzeichen von pstoedit als Polygone zeichnen lassen: Option -adt

    4. Helvetica als Standardschriftart in pstoedit setzen: Option -df Helvetica

    5. EMF-Konverter mit ““map to Arial”” aufrufen: pstoedit-Option -f “emf:-m””

  • Problem: Kantige Kurvenverläufe
    Lösung: pstoedit-Option -flat 0.1 setzen (je kleiner, desto feinere Auflösung)

  • Problem: Fehlerhaftes Clipping bei Verwendung mehrerer Ordinaten in pgfplot
    Lösung: pgfplot-Option restrict x/y/z to domain verwenden

  • Problem: Grafiken haben in Word andere Dimensionen als in LaTeX
    Lösung: pstoedit-Option -f “emf:-winbb” verwenden, Grafikgröße in LaTeX anpassen
    (Keine wirkliche Lösung, sorgt aber im Gegensatz zur nachträglichen Skalierung in Word für konstante Schriftgrößen.)

Zusammenfassung

Latex-Befehle

\documentclass[%
	tikz,					% TikZ is used
	border={0pt 2pt}			% crop margin ((left right) (bottom top))
]{standalone}
...
\usepackage{mathptmx}				% Times with math fonts
\usepackage[scaled=.90]{helvet}			% Helvetica (Arial)
\usepackage{sfmath}				% sans-serif font in math-mode
\renewcommand{\familydefault}{\sfdefault}	% use sans-serif as default
...
 
\begin{tikzpicture}%
	\begin{axis}[%
		ymin=20,ymax=140,
		restrict y to domain=20:140
	]%
	...
	\end{axis}%
\end{tikzpicture}%

pstoedit-Optionen:

pstoedit.exe -split -adt -pta -flat 0.1 -df Helvetiva -f “emf:-m -winbb” picture.pdf picture-%%d.emf

Kommentare