Wie verwende ich AUCTeX, um mit dem „Standalone“-Paket (macOS) eine PNG-Datei eines TikZ-Bildes zu erstellen?

Wie verwende ich AUCTeX, um mit dem „Standalone“-Paket (macOS) eine PNG-Datei eines TikZ-Bildes zu erstellen?

Ich möchte AUCTeX verwenden, um ein PNG-Bild eines TikZ-Bildes zu erstellen mitDas standalonePaket. Ich verwende macOS Sierra.

Laut standaloneDokumentation v1.2-2015/07/15 (Abschnitt 4.6Konvertierung in Bilder, S. 15)

Mit der convertKlassenoption kann die Standalone-Datei einfach in ein Rasterbild umgewandelt werden. Dies geschieht, indem ein externes Programm ausgeführt wird, um die Ausgabedatei (PDF oder PS) in ein Bild umzuwandeln (empfohlen wird das verlustfreie PNG-Format, aber auch andere werden unterstützt).

Gemäß Abschnitt 4.6.1Konvertierungseinstellungen(Seite 15)

Konvertierungseinstellungen können als Wert der convert={<settings>}Option angegeben werden. Standardmäßig ist die Konvertierung deaktiviert (convert=false). Wenn sie aktiviert wird, ohne eigene Einstellungen anzugeben ( convert,convert=true), werden die folgenden Standardeinstellungen verwendet: PNG-Format, eine Dichte von 300 dpi, keine explizite Größe und der Name der Ausgabedatei wird durch angegeben \jobname, also der Name des LaTeX-Dokuments. Wenn Sie die convertOption mit einem anderen Wert als verwenden false, wird sie aktiviert.

Gemäß Abschnitt 4.6.2Konvertierungssoftware(Seite 16)

Für die Konvertierung muss ein externes Bildkonvertierungsprogramm installiert sein. Standardmäßig werden die beiden folgenden Tools unterstützt und eines davon muss installiert sein, um die Konvertierungsfunktion nutzen zu können. Damit ein externes Programm ausgeführt werden kann, -shell-escapemuss die Option für die ausführbare Compilerdatei verwendet werden, z. B. pdflatex -shell-escape filename. Ohne diese Option ist keine Konvertierung möglich.

Standardmäßig wird das Konvertierungsprogramm vonBildmagiewird für PDF-LaTeX-Dateien verwendet [...]

Also benutzte ichSelbstgebrautes(ein beliebter Paketmanager für macOS), um Image Magick zu installieren. Es wurde im Verzeichnis installiert /usr/local/Cellar/imagemagick/7.0.6-0. Dann habe ich die folgenden Zeilen zu meiner Emacs-Init-Datei ( ~/.emacs) hinzugefügt, damit Emacs weiß, wo es nach den ausführbaren Dateien von Image Magick suchen muss:

(setenv "PATH" (concat (getenv "PATH") ":/usr/local/Cellar/imagemagick/7.0.6-0/bin/"))
(setq exec-path (append exec-path '("/usr/local/Cellar/imagemagick/7.0.6-0/bin/")))

Nach dem Neustart von Emacs schrieb ich das folgende LaTeX-Manuskript mit dem Titel my_tikz_drawing.tex:

\documentclass[tikz,convert]{standalone}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) -- (1,1)
   [rounded corners] -- (2,0) -- (3,1)
   [sharp corners] -- (3,0) -- (2,1);
\end{tikzpicture}
\end{document}

%%% Local Variables:
%%% mode: latex
%%% TeX-master: t
%%% TeX-engine: default
%%% TeX-command-extra-options: "-shell-escape"
%%% End:

und kompiliert mit C-c C-a.

Das Ergebnis war eine PDF-Datei, aber die PNG-Datei wurde nicht erstellt, zumindest nicht im selben Verzeichnis, in dem sich das LaTeX-Manuskript befand.

Dann öffnete ich Terminal (die Befehlszeilenkonsole von macOS), cdwechselte per -ed in das Verzeichnis mit dem LaTeX-Manuskript und führte den folgenden Befehl aus:

pdflatex -shell-escape my_tikz_drawing

Das Ergebnis war eine my_tikz_drawing.pngDatei im selben Verzeichnis.


Ein möglicher Hinweis

Führen Sie den folgenden Befehl, der sich in der Protokolldatei befindet, einmal vom Terminal und einmal vom Emacs aus (mit M-!) aus:

convert -density 300 my_tikz_drawing.pdf -quality 90 my_tikz_drawing.png

führt zu folgenden Ergebnissen.

  • Vom Terminal aus: Der Befehl wird im Hintergrund ausgeführt und erstellt die Datei my_tikz_drawing.png.

  • Von Emacs: Es wird keine PNG-Datei erstellt und im Minipuffer wird eine Fehlermeldung angezeigt:

Konvertieren: Keine Bilder definiert „my_tikz_drawing.png“ @error/convert.c/ConvertImageCommand/3254.

Dies ist derselbe Fehler, der in der Ausgabe des Emacs-PDFlatex-Laufs auftritt.

Antwort1

Emacs kann die ausführbare GhostScript-Datei nicht finden. Führen Sie aus

which gs

im Terminal und kopieren Sie den Pfad, sagen wir /usr/local/bin. Fügen Sie dann die folgenden Zeilen in Ihre Emacs-Init-Datei ein (sagen wir ~/.emacs) und starten Sie Emacs neu.

(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin/"))
(setq exec-path (append exec-path '("/usr/local/bin/")))

(Die erste dieser Zeilen ist möglicherweise nicht unbedingt erforderlich, aber sie schadet nicht ...)


Diese Antwort wurde dank der netten Leute im Image Magick Users Forum möglich, die geantwortet habenmein Post.

verwandte Informationen