Dateigröße eingefügte Bilder dynamisch anpassen

Tabellen und Grafiken erstellen und anordnen


camoesas
Forum-Anfänger
Forum-Anfänger
Beiträge: 34
Registriert: Do 9. Sep 2010, 12:04

Dateigröße eingefügte Bilder dynamisch anpassen

Beitrag von camoesas »

Guten Abend,

Ich habe ein großes Latex Dokument mit ca. 150 Seiten und zahlreichen Grafiken. Die Grafiken sind in guter Auflösung und machen das gesamte Dokument leider ca. 36 MB groß und damit zu groß zum Schicken... :evil:

Weiß jemand eine Möglichkeit wie ich Latex dazu bringen kann die Bilder nur in der notwendigen Auflösung in mein Dokument zu speichern?
Also ähnlich Word (Bilder komprimieren)
Ich will die Bilder nicht alle einzeln anfassen müssen.

Danke mfg

Simon

Besserwisser

Re: Dateigröße eingefügte Bilder dynamisch anpassen

Beitrag von Besserwisser »

camoesas hat geschrieben:Ich will die Bilder nicht alle einzeln anfassen müssen
Wieso einzeln? Schleifen gibt es in allen Skript-Sprachen, sowohl in Unix-Shells, als auch CMD als auch PowerShell. Die Konvertierung selbst kann man mit Programmen wie convert erledigen. Beispielsweise kann man in sh oder bash etwas wie
for image in *.jpg; do convert --quality 50 $image low-$image; done
die Qualität aller jpg-Dateien im Ordner deutlich reduzieren. Die Konvertierte Datei erhält dabei den Präfix "low-". Man kann auch die vorhandenen Dateien überschreiben lassen. Das würde ich aber eher nicht.

Theoretisch kann man so etwas auch direkt beim Einbinden der Grafik erledigen lassen. Dann braucht man allerdings shell-escape. Außerdem ist es effizienter, die Konvertierung nicht bei jedem LaTeX-Lauf durchzuführen.

Bei CMD gibt es auch ein for, bei PowerShell würde man eine Pipe mit GetChild und ForEach verwenden. Vermutlich kann man auch eine arara-Regel dafür definieren. Da kenne ich mich aber nicht aus.

Besserwisser

Beitrag von Besserwisser »

Achja: Es gibt auch Tools, um nachträglich die Qualität von PDFs bzw. von Bildern in PDFs zu verändern, beispielsweise PDF24 Creator. Letztlich basiert das auf Ghostscript. Damit könnte man beispielsweise auch etwas machen wie:
gs -dNOPAUSE -dBATCH -dSAFER -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/screen -dEmbedAllFonts=true -dSubsetFonts=true -dColorImageDownsampleType=/Bicubic -dColorImageResolution=72 -dGrayImageDownsampleType=/Bicubic -dGrayImageResolution=72 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=72 -sOutputFile=smaller.pdf original.pdf
Es kann aber auch passieren, dass das Ergebnis größer wird als die ursprüngliche Datei. Das passiert beispielsweise gerne bei reinen Text-PDFs.

Antworten