Ich muss einige PNGs der gesamten Seite ausgeben (eigentlich muss ich die linke und die rechte Seite zusammenfügen, derzeit mache ich das mit ImageMagick). Ich weiß, dass das mit der Standalone-Klasse möglich ist, aber ich muss das mit ganzen Büchern in der Memoiren-Klasse machen (wieDaseins).
Ich könnte dies tun, indem ich das PDF hole und dann einige PDF-Dienstprogramme verwende, aber ich habe mich gefragt, ob es effizientere Möglichkeiten gibt, dies zu tun (da ich dies tausende Male tun werde). Am nächsten komme ich meinem Idealergebnis, wenn ich dvipng verwende und die -T bbox
Option verwende, die leider einige Ränder auslässt. Gibt es andere Optionen, die direkt mit der .tex-Datei oder der .dvi-Ausgabe funktionieren?
In einem bestimmten Fall wäre als Quelldatei Folgendes zu verwenden:
\documentclass[smalldemyvopaper,11pt]{memoir}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\end{document}
Und dann zeigt die Verwendung des Befehls dvipng -T 5.675in,8.5in example.dvi
ein wirklich anderes Bild als erwartet. Der 5.675in,8.5in
Teil wurde aus dem Memoiren-Klassendokument übernommenTabelle 1.3Beachten Sie, dass auch der linke Teil geschnitten ist.
Antwort1
Wenn Sie darauf Zugriff haben, würde ich das pdftoppm
Dienstprogramm verwenden, das Teil der poppler
Dienstprogramme zum Bearbeiten von PDF-Dateien ist.
(Ich bin nicht sicher, was Sie damit meinten, dass die linke und die rechte Seite „zusammengeklebt“ seien.)
Wenn ich Ihre Beispieldatei (die ich als nenne testpng.tex
) verwende, kann ich
pdflatex testpng.tex
das die Seiten als PDFs generiert. Dann führe ich
pdftoppm -png testpng.pdf tpn
(der -png
Schalter fordert die Ausgabe im PNG-Format an, und das tpn
Argument legt das Präfix der ausgegebenen PNG-Dateien fest) Dieser Befehl generiert drei PNG-Dateien (da Sie mit drei Seiten in der PDF-Ausgabe begonnen haben) mit den Namen tpn-1.png
, tpn-2.png
, und tpn-3.png
. Die zweite Seite sieht beispielsweise so aus
die meiner Meinung nach die richtigen Ränder hat. Sie können diemanpageum zu sehen, was es sonst noch kann.
Eine Alternative besteht darin, das Tool zu verwenden dvipng
, das, wie der OP anmerkte, schneller läuft. Das vom OP festgestellte Problem besteht darin, dass nach der Angabe der Papiergröße die Ränder falsch angezeigt werden.
Der Grund hierfür ist, dass dvipng
die Ausgaben auf den -T
Parametern basieren:
- Wenn
-T bbox
angegeben ist, gibt dvipng ein Bild aus, das das kleinste Rechteck ist, das enthält- DieDVI-Herkunft(das ist standardmäßig der Punkt 1 Zoll horizontal und vertikal von der oberen linken Ecke der Seite)
- und die ganze Tinte auf der Seite.
- Wenn
-T tight
angegeben ist, gibt dvipng ein Bild aus, das das kleinste Rechteck ist, das die gesamte Tinte auf der Seite enthält. - Wenn
-T <width>,<height>
ein Bild ausgegeben wird, das ein Rechteck mit der angegebenen Abmessung ist,dessen Inhalt das Rechteck dieser Größe ist, gemessen im Verhältnis zumDVI-Herkunft(das ist, denken Sie daran, der Punkt 1 Zoll vom oberen und linken Rand des Papiers entfernt).
Um dies zu veranschaulichen, betrachten Sie die folgende TeX-Quelle
\documentclass{book}
\usepackage{geometry}
\geometry{paperwidth=5in, paperheight=7in, inner=0.4in, outer=2in, top=1.2in, bottom=2in}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\end{document}
Dies hat stark unausgeglichene Ränder. Wenn Sie verwenden dvipng -T5in,7in
, sehen Sie auf den ersten beiden Seiten Folgendes:
Seite 1:
Seite 2:
Sie sehen, dass ein Teil des Textes auf Seite 1 abgeschnitten ist, da der innere Rand auf 0,4 Zoll eingestellt ist, also weniger als 1 Zoll vom Rand entfernt. Sie können auch messen, wenn Sie herausfinden möchten, dass in beiden Fällen der verbleibende obere Rand genau 0,2 Zoll beträgt, was bedeutet, dass beide Seitenzahlen jetzt verschwinden.
Um die gesamte Seite wie gewünscht zu erhalten, müssen Sie den DVI-Ursprung lediglich horizontal und vertikal um genau 1 Zoll verschieben, sodass er nun mit der oberen linken Ecke der Seite übereinstimmt.Beachten Sie, dass keineRaten oder Schätzenist erforderlich.Hier sind die Ergebnisse für die gleichen beiden Seiten unter Verwendung von dvipng -T5in,7in -O1in,1in
; beachten Sie, dass die stark asymmetrischen Ränder berücksichtigt werden und im Gegensatz zu dem, wasDavid hat vorgeschlagen, zum Festlegen des Offset-Parameters ist kein Herumspielen mit den tatsächlichen Rändern des Dokuments erforderlich.
Seite 1:
Seite 2: