Hinweis: Diese Frage wurde hier zuvor ohne Erfolg gestellt.
Die Fähigkeit des Org-Modus, Inline-Bilder anzuzeigen, ist fantastisch, um meine wöchentlichen wissenschaftlichen Berichte zu schreiben. Ich kann Diagramme einbinden, sie mit ihren Daten verknüpfen, mit den Schlussfolgerungen verknüpfen und die Kraft des Organisationsmodus wirklich nutzen.
Das einzige Problem, das ich habe, ist, dass org die Bilder benötigt, um herkömmliche Bildformate (JPEG, PNG usw.) zu verwenden, während ich es bevorzuge, dass meine Grafiken in PDF vorliegen.
Wie kann ich Inline-PDF-Bilder im Organisationsmodus anzeigen?
Mein letztes Ziel ist es, einfach einen Link wie diesen im Org-Modus zu schreiben:
[[file:~/Work/grap.pdf]]
Und lassen Sie es inline anzeigen, wie es passieren würde, wenn es ein PNG wäre.
Ich weiß, dass ich einfach eine Kopie jedes Diagramms in JPEG oder so haben könnte (was ich gerade mache), aber es ist etwas umständlich und birgt immer das Risiko, dass das PDF-Diagramm aktualisiert wird und ich vergesse, das JPEG zu aktualisieren.
endless/update-includes
, wenn währendbefore-save-hook
, wenn Sie eine Zeile mit finden#+NAME
oder#+CAPTION
mit einem Tag wie:convertfrompdf
mit gefolgt von einer Zeile[[SOMEFILE.EXT]]
, dann führen Sie die Imagemagickconvert
Funktion zu konvertierenSOMEFILE.pdf
zuSOMEFILE.EXT
.Antworten:
HINWEIS : Damit
convert
diese Lösung funktioniert , muss ImageMagick auf Ihrem System ( ausführbar) installiert sein .Wie diese Lösung implementiert wird
org-include-img-from-pdf
ist das Arbeitspferd, mit dem die Konvertierung von PDF in das Bildformat durchgeführt wirdconvert
.# ()convertfrompdf:t
, wird davon ausgegangen, dass der Benutzer über eine PDF-Datei verfügt, die er in eine Bilddatei konvertieren möchte. Der Benutzer sollte den obigen speziellen Kommentar über den Link der Bilddatei setzen, wie im folgenden Beispiel gezeigt.Der Bilddateityp wird durch die Dateierweiterung im Klammerlink bestimmt
[[./myimage.EXT]]
.Durch Hinzufügen der
org-include-img-from-pdf
Funktion zubefore-save-hook
wird diese Funktion jedes Mal ausgeführt, wenn der Benutzer die Datei speichert (siehe das Elisp-Snippet, das der Funktionsdefinition unten folgt).Beispielaufbau
In diesem Beispielsetup habe ich folgende Dateien:
myimage.pdf
.Funktion zum automatischen Konvertieren von PDF-Dateien in Bilddateien
Hook-Setup, um anzugeben, wann diese Funktion ausgeführt werden soll
Code + MWE
quelle