PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Package svg: Pixel- statt Vektorgrafik im Dokument?



RungeZipperer
13-07-2018, 12:30
Hallo,

kleines Beispiel mit svg-Paket:



\documentclass{article}
\usepackage{svg}
\usepackage[on]{svg-extract}
\svgsetup{clean=true, inkscapearea=drawing}
\begin{document}
\includesvg[convertformat=png, convertdpi=150]{image}
\end{document}


Was passiert? Die svg-Grafik wird als pdf ins Dokument eingefügt und zusätzlich wird in einem Unterverzeichnis eine konvertierte Version als Pixelgrafik png abgelegt. Diese enthält dann sogar die Formeln, so wie sie auch im Dokument auftauchen. So weit so gut.

Was jetzt die Krönung wäre: Ich möchte mit einem Schalter entscheiden können, ob im Dokument Vektorgrafiken erscheinen oder Pixelgrafiken. Für letzteres muss "eigentlich" alles genauso ablaufen, nur statt der eingefügten pdf-Datei sollte die konvertierte png-Datei ins Dokument genommen werden. Ich werde hierzu aus der svg-Paket-Dokumentation nicht richtig schlau, vermute aber, dass mein Wunsch realisierbar ist. Nur eben nicht mit meinen rudimentären Kenntnissen...

Kann jemand helfen?

rstuby
14-07-2018, 13:46
Ich hänge mich mal hier dran. Ohne dieses spezielle Paket zu nutzen, würde ich es auch cool finden, wenn ich hin- und herschalten könnte, ob includegraphics bei Nichtangabe einer Dateiendung die png, jpg oder die gleichnamige pdf bevorzugt.

klops
16-07-2018, 09:04
Da das Beispiel nicht vollständig ist und ich daher nicht testen kann, sei nur darauf hingewiesen, dass es neben convertformat auch noch extractformat und inkscapeformat gibt.

rais
16-07-2018, 09:10
beim \includegraphics dürfte die Reihenfolge, in der die Grafikdateierweiterungen ausprobiert werden, via \DeclareGraphicsExtensions kontrollierbar sein ( vgl. texdoc grfguide)

VG

rstuby
16-07-2018, 12:51
Danke, Rainer, das gucke ich mir mal an.

RungeZipperer
16-07-2018, 19:33
Meine Lösung sieht jetzt so aus:



\documentclass{article}
\usepackage{svg}
\usepackage{ifthen}
\usepackage[on]{svg-extract}
\svgsetup{clean=true, inkscapearea=drawing, extractpath=svgdir, extractname=name,inkscapepath=svgdir, convertformat=png, convertdpi=150}

%Boolsche Variable als Schalter
\newboolean{USESVG}
\setboolean{USESVG}{false}
\newcommand{\includeimg}[2]{\ifthenelse{\boolean{USESVG}}{\includesvg[scale=#2, extractname=#1]{../svg/#1}}{\includegraphics{../svg/#1}}}

\begin{document}
\includeimg{image}{1.}
\end{document}


Wenn ich mit true uebersetze, dann ist image als Vektorgrafik im pdf, wenn ich dann später auf false schalte, sieht die pdf genauso aus, allerdings ist image dann ein png.
Die png-Datei wird von svg-extract im Falle von true erzeugt und liegt imselben Verzeichnis wie die svg-Datei.