pdf mit eingebettete .eps Dateien eindampfen

hilikus

Aktives Mitglied
Thread Starter
Dabei seit
30.10.2006
Beiträge
4.126
Reaktionspunkte
958
Hallo,

ich schreibe meine Abschlussarbeit in LaTeX (TeXShop), in dieser sind ein paar .eps Grafiken mit jeweils um die 40MB enthalten. Wenn ich nun kompiliere und ein pdf daraus erstelle, kommt ein knapp 140MB großes Monster raus und bei den entsprechenden Grafiken kommt alles ins Stocken.
Nun die Frage, kann ich nachdem mir LaTeX mein pdf erstellt hat Vorschau dazu überreden, die .eps Grafiken in Bilder zu wandeln und so die Dateigröße für Korrekturleserein verkleinern?
Oder vielleicht TeXShop direkt dazu überreden, das angegebene .eps File in eine Bilddatei a'la png zu wandeln und dann diese einzubinden?
So müsste ich nicht mühsam händisch meine Bilder wandeln, einbinden und später wieder neu das .eps einbinden für den Druck.

Grüße und Danke schonmal.
Und falls das nicht das richtige Unterforum ist, sorry und bitte verschieben.
 
Ohne Ahnung von LaTeX:

Wenn Du ein EPS mit Vorschaubild platziert hattest, könntest Du versuchen, vor dem PDF-Schreiben die EPS-Dateien in einen anderen Ordner zu verschieben.
Du wirst eine Fehlermeldung erhalten, daß die EPS-Dateien nicht gefunden wurden und im PDF wird nur das niedrigaufgelöste Vorschaubild zu sehen sein.
Zum Korrekturlesen sollte das aber reichen.
 
Am einfachsten funktioniert das ganze, wenn du pdflatex verwendest. Dann musst du in deiner Präambel (am besten direkt vor \begin{document}) nur folgende Zeile einfügen:

Code:
\DeclareGraphicsRule{.eps}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .eps`-eps-converted-to.png}

Was passiert nun? Der oben angegebene Code weist LaTeX an, wann immer eine eps-Datei (mit Namen "Name.eps", ohne "") eingebunden werden soll, diese in eine png-Datei zu wandeln (mit convert) und dieser Datei den Namen Name-eps-converted-to.png zu geben und an dem Ort, an dem die eps-Datei liegt, abzuspeichern. LaTeX bindet dann diese konvertierte png-Datei ins Dokument ein.
Wenn du wieder die Vektorgraphik verwenden willst, musst du den oben angegebenen Befehl einfach nur auskommentieren (ein % davor setzen), dann wandelt LaTeX die eps-Datei ganz normal in eine pdf-Datei um (diese heißt Name-eps-converted-to.pdf) und bindet sie ein.
Wenn du LaTeX im dvi-Modus verwendest, funktioniert das nicht, aber ohne nähere Angaben gehe ich mal davon aus, dass du pdflatex verwendest.

@rpoussin: Ich bezweifle sehr stark, dass das funktioniert.
 
Genau so ist es mir am liebsten StarSirius, aber er macht es nicht.
In den Einstellungen von TeXShop ist aber im Reiter Schriftsatz unter Standardskript pdftex angewählt.

Er konvertiert aber weiter zu pdf und bindet das ein.
Muss für deine Option noch etwas zusätzlich angeben werden oder ist das alles?
 
Stelle doch bitte mal deine Präambel hier ins Forum, denn natürlich ist es möglich, dass du durch andere Befehle/Einstellungen in der Präambel den Befehl überschrieben hast.
 
Wenn du mit Präambel das ganze Gedöhns in meiner masterfile meinst, dann hier:

\documentclass[11pt,twoside,a4paper,halfparskip,tablecaptionabove,
chapterprefix,bibtotoc,pointlessnumbers]{scrbook}
\usepackage[applemac]{inputenc}
\usepackage{latexsym}
\usepackage{rotating}
\usepackage{longtable}
\usepackage{hyperref}
\usepackage{exscale}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[ngerman]{babel}
\usepackage[inner=3cm,outer=4cm,top=3cm,bottom=3cm,includeheadfoot]{geometry}
%\usepackage{latin}
\usepackage{amsfonts}
\usepackage{delarray}
\usepackage{wasysym}
\usepackage{epsfig}
%\usepackage{graphics}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{color}
\usepackage{caption}{\footnotesize}
%\usepackage{ngerman}
\usepackage{umlaute}
%\usepackage[square]{natbib}
\usepackage[numbers,round]{natbib}
\bibpunct{(}{)}{;}{a}{,}{,}
\usepackage[ngerman]{babel}
\usepackage{lineno}
\usepackage{listings} \lstset{numbers=left, numberstyle=\tiny, numbersep=5pt, breaklines=true, frame=shadowbox} \lstset{language=C++}
%\usepackage{float}
\graphicspath{{./images/}{./fig/}{./gnuplot/}}

%\DeclareGraphicsExtensions{.eps,.ps,.png,.eps.gz,.ps.gz,.pdf}
\DeclareGraphicsRule{.eps}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .eps`-eps-converted-to.png}

\usepackage{url}
\makeindex

\begin{document}

Wenn du das nicht gemeint hast, dann erklär doch bitte kurz, was du damit meinst :)
 
Bitte verwende mal folgende Präambel:

Code:
\documentclass[11pt,twoside,a4paper,halfparskip,tablecaptionabove ,
chapterprefix,bibtotoc,pointlessnumbers]{scrbook}
\usepackage[applemac]{inputenc}
\usepackage{latexsym}
\usepackage{rotating}
\usepackage{longtable}
\usepackage{hyperref}
\usepackage{exscale}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage[ngerman]{babel}
\usepackage[inner=3cm,outer=4cm,top=3cm,bottom=3cm,includehead foot]{geometry}
%\usepackage{latin}
\usepackage{amsfonts}
\usepackage{delarray}
\usepackage{wasysym}
\usepackage{epsfig}
%\usepackage{graphics}
\usepackage{graphicx}
\usepackage{subfigure}
\usepackage{color}
\usepackage{caption}{\footnotesize}
%\usepackage{ngerman}
\usepackage{umlaute}
%\usepackage[square]{natbib}
\usepackage[numbers,round]{natbib}
\bibpunct{(}{)}{;}{a}{,}{,}
\usepackage[ngerman]{babel}
\usepackage{lineno}
\usepackage{listings} \lstset{numbers=left, numberstyle=\tiny, numbersep=5pt, breaklines=true, frame=shadowbox} \lstset{language=C++}
%\usepackage{float} 
\graphicspath{{./images/}{./fig/}{./gnuplot/}}

%\DeclareGraphicsExtensions{.eps,.ps,.png,.eps.gz, .ps.gz,.pdf}
\usepackage{epstopdf}
\epstopdfsetup{suffix=}
\DeclareGraphicsRule{.eps}{png}{.png}{`convert #1 `dirname #1`/`basename #1 .eps`.png}

\usepackage{url}
\makeindex

\begin{document}

Ich hatte ganz vergessen, dass meine Lösung nur mit dem Paket epstopdf funktioniert. Meine Lösung habe ich übrigens noch etwas verbessert. Mit \epstopdfsetup{suffix=} wird beim Umwandeln von Graphikdateien der von mir erwähnte Namenszusatz unnötig, daher habe ich das Konvertierungskommando entsprechend angepasst (bei der Konvertierung wird jetzt aus Name.eps Name.png bzw. Name.pdf, wenn \DeclareGraphicsRule... auskommentiert wird).
 
  • Gefällt mir
Reaktionen: hilikus
Rockt jetzt!

Vielen Dank :)
 
Noch eine Frage: Kann ich irgendwie die Qualität der Konvertierung bestimmen? Sie ist nämlich eher mäßig.

Grüße
 
Aber natürlich geht das. Mit der Qualität meinst du wahrscheinlich die Auflösung der Bilder. Dazu verwendest du am besten die density-Option des convert-Befehls. Damit kannst du dann eine fest vorgegebene Auflösung (in dpi) für die horizontale und vertikale Richtung der Bilder vorgeben. Mit -convert 300x150 erreichst du Beispielsweise eine Auflösung von 300 dpi in der Horizontalen und 150 dpi in der Vertikale. Dazu musst du nur die erwähnte Konvertierungsregeln anpassen:

Code:
\DeclareGraphicsRule{.eps}{png}{.png}{`convert -density 300x150 #1 `dirname #1`/`basename #1 .eps`.png}

Mit einer Auflösung von 300 dpi in der Horizontalen und Vertikale solltest du keinerlei Probleme haben, aber hier kannst du natürlich etwas experimentieren.

Ach ja, bei Änderung der Auflösung musst du vor dem nächsten Setzen natürlich die png-Dateien löschen, da diese nur neu generiert werden, wenn sie vorher nicht vorhanden waren. Andernfalls werden die alten Bilder verwendet.
 
Zurück
Oben Unten