Ich habe in der pdftex.def einen Hinweis auf eine globale Einstellung
für graphics gefunden, aber ein \setkeys{Gin}{resolution=72} in der
Dokumentenpräambel zeigt keine Wirkung.
Graphics beschwert sich auch nicht, wenn ich die Auflösung direkt
angeben
\includegraphics[resolution=72]{fig/150dpi-bild}
aber funktionieren tut das leider auch nicht...
Gibt es eine pfiffige Möglichkeit? Muß ich etwa die Auflösung aller
Abbildungen von Hand verändern?
Dankbar für Ratschläge,
Holga.
holm...@hotmail.com (Holger Miara) writes:
> Moin. Ich möchte ein mit pdflatex erstelltes file ins Netz stellen,
> das viele Grafiken enthält.
was fuer Grafiken sind es denn? Falls es jpg sind...
> Gibt es eine pfiffige Möglichkeit? Muß ich etwa die Auflösung aller
> Abbildungen von Hand verändern?
... koenntest Du evtl. das Paket degrade von CTAN verwenden,
das jpegs on-the-fly zu einer angegebenen Aufloesung herunter-
skaliert.
> Dankbar für Ratschläge,
>
> Holga.
Gruss, Meike
--
Diese Nachricht wurde mit einer Taschenlampe
ins offene Ende eines Glasfaserkabels gemorst.
> Moin. Ich möchte ein mit pdflatex erstelltes file ins Netz stellen,
> das viele Grafiken enthält. Da die Datei durch die vielen Abbildungen
> sehr groß ist, würde ich in der web-Version des Dokuments gerne
> sämtliche eingefügten Bilder auf 72dpi 'downsamplen'. Ist das mit
> Bordmitteln machbar?
>
> Ich habe in der pdftex.def einen Hinweis auf eine globale Einstellung
> für graphics gefunden, aber ein \setkeys{Gin}{resolution=72} in der
> Dokumentenpräambel zeigt keine Wirkung.
pdfTeX veraendert die eingebundenen Grafiken nicht, es "downsampelt"
somit auch nicht. Mit \pdfimageresolution kann man nur eine
Default-Aufloesung angeben, mit denen die Bilder vermutlich erzeugt
wurden. Die Information wird benoetigt, wenn die Angabe in der
Grafik-Datei fehlt, und dient dazu die Groesse der Grafik zu
ermitteln.
> Gibt es eine pfiffige Möglichkeit? Muß ich etwa die Auflösung aller
> Abbildungen von Hand verändern?
Moeglichkeiten:
* Adobe Acrobat/Distiller
* Die Grafiken mit einem entsprechenden Grafikverarbeitungsprogramm
vor der Einbettung durch pdflatex "downsamplen".
Viele Gruesse
Heiko <ober...@uni-freiburg.de>
> pdfTeX veraendert die eingebundenen Grafiken nicht, es "downsampelt"
> somit auch nicht. Mit \pdfimageresolution kann man nur eine
vlatex (http://www.micropress-inc.com/linux/) kann das, wenn
ich mich recht erinnere.
Herbert
Nein :-), unter Unix/Linux geht's z. B. mit dem convert-Tool aus der
ImageMagick Familie, und make. Erstelle hierzu ein Makefile, z. B.
all: $(patsubst %.jpg,%-down.jpg, \
<TAB> $(patsubst %-down.jpg,%.jpg,$(wildcard *.jpg)))
%-down.jpg: %.jpg
<TAB> convert -geometry 25% $< $@
Das verwandelt mittels convert alle *.jpg-Dateien im Verzeichnis in
kleinere Dateien mit Namen *-down.jpg, die Du dann anstelle der Originale
einbinden kannst. <TAB> muss ein TAB-Zeichen sein. Kommt ein neues Bild
hinzu, wird dank make nur dieses eine konvertiert. Reduktion bei
-geometry 25 % z. B.:
187554 Image001.jpg
10914 Image001-down.jpg
Uberhaupt laesst sich so das gesamte Dokument mit make organisieren.
Gruß Hartmut
--
Hartmut Henkel, Oftersheim, Germany
Aaaaah... Danke.
>
> Moeglichkeiten:
> * Adobe Acrobat/Distiller
Kann der Distiller etwa eine vorhandene pdf-Datei bearbeiten? Da müßte
man wahrscheinlich über Postscript gehen... Und vom Acrobat wüßte ich
auch nicht, daß er das kann...
> * Die Grafiken mit einem entsprechenden Grafikverarbeitungsprogramm
> vor der Einbettung durch pdflatex "downsamplen".
>
Meine Befürchtung. Aber die anderen Tipps, es mit VTex oder mit resize
zu probieren, werde ich mir gleich mal anschauen.
mit Dank,
Holger.
Ich bevorzuge auch make, insbesondere auch zur Umwandlung von
.eps nach .pdf-Dateien fuer pdfTeX. Das hat den Vorteil, dass
Aenderungen an den .eps-Dateien automatisch erkannt werden und
die dazugehoerenden .pdf-Dateien aktualisiert werden.
Zurueck zu den "Down"-Bildern, ich wuerde eher ein Verzeichnis
"images" und ein Verzeichnis "images-down" verwenden. Dann koennen
die Namen der Bilder gleich bleiben, sowie die Namen in den
TeX-Dateien. Dann kann man zwischen den verschiedenen Versionen
(Web/Nicht-Web) einfach umschalten:
* Etwa ueber die Umgebungsvariable TEXINPUTS:
TEXINPUTS=images-web:
* Oder auf Makro-Ebene ueber \graphicspath.
Viele Gruesse
Heiko <ober...@uni-freiburg.de>
> Ich habe in der pdftex.def einen Hinweis auf eine globale Einstellung
> für graphics gefunden, aber ein \setkeys{Gin}{resolution=72} in der
> Dokumentenpräambel zeigt keine Wirkung.
Die Angabe ist eine Information für den Fall, dass in der Bitmap-Abbildung
keine Auflösung angegeben ist. Für Vektorgrafiken ist die Angabe ohnehin
unerheblich.
> Muß ich etwa die Auflösung aller Abbildungen von Hand verändern?
Soetwas macht man mit einem Skript (unter Windows auch mal mit einem Batch),
das in einer Schleife für alle relevanten Bitmap-Dateien einen
entsprechenden Konverter aufruft (beispielsweise convert von ImageMagic).
Gruß
Markus
--
Fragen zu LaTeX? --> http://www.dante.de/faq/de-tex-faq/
Fragen zu KOMA-Script? --> scrguide
Lust zur Mitarbeit? --> http://koma-script.net.tf
Fragen zur Person? --> http://kohm.de.tf
Danke, das Verfahren mit dem makefile ist wirklich pfiffig und wird beim
nächsten Mal bestimmt auch angewendet. Ich kann nur leider nicht alle
meine Abbildungen per shell script auf einmal bearbeiten, da sie aus
unterschiedlichen Quellen kommen, unterschiedliche Größen haben und sie
beim Einfügen ins Dokument auch unterschiedlich skaliert wurden.
Bleibt also trotzdem eine ganze Menge Handarbeit. Selbst schuld, könnte
man sagen, aber der Ansatz des Paktes "degrade" gefällt mir wirklich
gut, und wenn ich ich es richtig verstanden habe, macht VTeX es ja auch
so.
Bei Dokumenten, die eh für den Druck bestimmt sind, sollte ein Bild doch
nach dem Skalieren und vor dem Einfügen doch eigentlich neu gerastert
werden können, falls die Ursprungsbilddatei erheblich größer war. Wäre
auf alle Fälle ein Fortschritt auf dem Weg zu kleineren Files... Ich
fänd' es ziemlich schick, wenn man eine solche Funktionalität direkt in
graphics einbauen könnte -- aber mir schwant schon, daß es
wahrscheinlich nicht so einfach sein wird, eine platformunabhängige
Lösung zu basteln...
anyway: Vielen Dank für die Antworten,
Hogler.
> Ich kann nur leider nicht alle meine Abbildungen per shell script auf
> einmal bearbeiten, da sie aus unterschiedlichen Quellen kommen,
> unterschiedliche Größen haben und sie beim Einfügen ins Dokument auch
> unterschiedlich skaliert wurden.
Die Quelle, aus der die Grafiken kommen, ist doch völlig egal. Es kommt nur
auf darauf an, in welchem Format sie vorliegen. Im Primitivfall lässt man
das Ganze eben einmal für jpg und einmal für png laufen. Auch die
unterschiedliche Größe und Skalierung beim Einfügen ist unerheblich. So
lange die Grafik beim Konvertieren nicht in der Größe, sondern nur in ihrer
Auflösung verändert wird, muss man an der \includegraphics-Anweisung nicht
das Geringste ändern.
Vielleicht nützt Dir dieser Artikel:
"Digitalfotos perfekt fürs Web verkleinern"
==> http://www.digitalkamera.de/Tip/18/32.htm
...Rolf
--
|| Rolf Niepraschk c/o Physikalisch-Technische Bundesanstalt ||
|| Abbestr. 2-12; D-10587 Berlin, Germany ||
|| Tel/Fax: ++49-30-3481-316/490, email: Rolf.Ni...@ptb.de ||
So sollte es sein. Aber durch ein einfaches "convert -geometry 25%" werden
die Bilder gleichzeitig kleiner im Format, da hatte ich was übersehen.
Also neuer Versuch: Wenn man bei Bildern von einer original Pixeldichte
von 72/inch ausgeht, erhält man gleich große Bilder mit geringerer
Auflösung z. B. durch "convert -geometry 25% -density 18x18", weil die
Pixel über den -density Parameter um den Faktor 72/18 also 4 vergrößert
werden.
D. h. für einen automatischen Ablauf mit convert muß man wissen, wie viele
Pixel/inch es im Original sind (z. B. 72, meistens wahrscheinlich). Einen
Schalter, der gleichzeitig downsampelt (-plet, -pled?) und die Pixel
entsprechend vergrößert, habe ich bei convert noch nicht gefunden. Also
geht's damit evtl. doch nicht ganz automatisch, schade. Immerhin ist
die Pixelgröße egal, wenn man bei \includegraphics die Dimension(en)
explizit angibt.
Ah, so einfach gehts global, danke für den Tip! Dann wird auch das
Makefile simpler, z. B.:
all: $(patsubst %.jpg,down/%.jpg,$(wildcard *.jpg)))
down/%.jpg: %.jpg
convert -geometry 25% -density 18x18 $< $@
Jetzt mit (hoffentlich) durch's Konvertieren unveränderten Bilddimensionen.
> So sollte es sein. Aber durch ein einfaches "convert -geometry 25%" werden
> die Bilder gleichzeitig kleiner im Format, da hatte ich was übersehen.
> Also neuer Versuch: Wenn man bei Bildern von einer original Pixeldichte
> von 72/inch ausgeht, erhält man gleich große Bilder mit geringerer
> Auflösung z. B. durch "convert -geometry 25% -density 18x18", weil die
> Pixel über den -density Parameter um den Faktor 72/18 also 4 vergrößert
> werden.
>
> D. h. für einen automatischen Ablauf mit convert muß man wissen, wie viele
> Pixel/inch es im Original sind (z. B. 72, meistens wahrscheinlich). Einen
> Schalter, der gleichzeitig downsampelt (-plet, -pled?) und die Pixel
> entsprechend vergrößert, habe ich bei convert noch nicht gefunden. Also
> geht's damit evtl. doch nicht ganz automatisch, schade.
* PNG-Dateien:
Ueber die netbpm-Programme koennte man sich etwas basteln:
pngtopnm, pnmscale, pnmtopng -phys x y unit
Man braeuchte dann nur noch ein Programm, das den "pHYS chunk"
ausliest (hier steckt indirekt die "Aufloesungsinformation").
Notfalls koennte man sich auf die Schnelle etwas ueber libpng
basteln.
Bei Dateien ohne "pHYS chunk" ist es einfacher, da hier ja
\pdfimageresolution zum Tragen kommt und man dann entsprechend
der Herunterskalierung mit den dazugehoerenden Defaults arbeitet.
* JPEG-Dateien:
Ist es nicht sinnvoller, diese Dateien erst gar nicht zu skalieren,
sondern stattdessen an der "-quality"-Schraube zu drehen?
Viele Gruesse
Heiko <ober...@uni-freiburg.de>
> D. h. für einen automatischen Ablauf mit convert muß man wissen, wie viele
> Pixel/inch es im Original sind (z. B. 72, meistens wahrscheinlich).
Zu ImageMagick gehört neben Convert auch ein Programm namens Identify.
Dieses kann auch die Auflösung ausgeben, wenn eine Auflösung in der Datei
gespreichert ist. Über die Option -format, kann das Format der Ausgabe
beeinflusst werden. Ungünstig ist nur, dass man dabei nicht -units
verwenden kann, um die Ausgabe auf PixelsPerInch einzustellen.