¿Cómo usar AUCTeX para crear un archivo PNG de una imagen TikZ usando el paquete 'independiente' (macOS)?

¿Cómo usar AUCTeX para crear un archivo PNG de una imagen TikZ usando el paquete 'independiente' (macOS)?

Me gustaría usar AUCTeX para crear una imagen PNG de una imagen TikZ usandoel standalonepaquete. Yo uso macOS Sierra.

Según la standalonedocumentación v1.2-2015/07/15 (sección 4.6Conversión a imágenes, pag. 15)

Usando la convertopción de clase, el archivo independiente se puede convertir fácilmente en una imagen rasterizada. Esto se hace ejecutando un programa externo para convertir el archivo de salida (PDF o PS) a una imagen (se recomienda el formato PNG sin pérdidas, pero también se admiten otros).

Según la subsección 4.6.1Configuración de conversión(pág.15)

La configuración de conversión se puede dar como el valor de la convert={<settings>}opción. Por defecto la conversión está deshabilitada (convert=false). Si se habilita sin proporcionar configuraciones propias ( convert,convert=true), se utilizan las siguientes configuraciones predeterminadas: formato PNG, una densidad de 300 ppp, sin tamaño explícito y el nombre del archivo de salida viene dado por \jobname, es decir, el nombre del documento LaTeX. Usar la convertopción con cualquier valor distinto a falselo habilitará.

Según el apartado 4.6.2Software de conversión(pág.16)

La conversión requiere la instalación de un programa convertidor de imágenes externo. De forma predeterminada, se admiten las dos herramientas siguientes y cualquiera de ellas debe estar instalada para poder utilizar la función de conversión. Para que se ejecute un programa externo, -shell-escapese debe utilizar la opción para el ejecutable del compilador, por ejemplo pdflatex -shell-escape filename. Sin esta opción no es posible ninguna conversión.

Por defecto el programa de conversión deMagia de imagense utiliza para archivos PDF LaTeX [...]

Así que usécerveza casera(un administrador de paquetes popular para macOS) para instalar Image Magick. Fue instalado en el directorio /usr/local/Cellar/imagemagick/7.0.6-0. Luego agregué las siguientes líneas a mi archivo de inicio de Emacs ( ~/.emacs) para que Emacs supiera dónde buscar los ejecutables de Image Magick:

(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/")))

Después de reiniciar Emacs, escribí el siguiente manuscrito en LaTeX, llamado 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:

y lo compilé usando C-c C-a.

El resultado fue un archivo PDF, pero el archivo PNG no se creó, al menos no en el mismo directorio donde estaba el manuscrito de LaTeX.

Luego abrí Terminal (la consola de línea de comandos de macOS), cdaccedí al directorio que contenía el manuscrito de LaTeX y ejecuté el siguiente comando:

pdflatex -shell-escape my_tikz_drawing

El resultado fue un my_tikz_drawing.pngarchivo en el mismo directorio.


Una posible pista

Ejecutando el siguiente comando, que se encuentra en el archivo de registro, una vez desde la Terminal y otra desde Emacs (usando M-!):

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

produce los siguientes resultados.

  • Desde la Terminal: el comando se ejecuta silenciosamente y crea el archivo my_tikz_drawing.png.

  • Desde Emacs: no se crea ningún archivo PNG y aparece un mensaje de error en el minibúfer:

convertir: no hay imágenes definidas 'my_tikz_drawing.png' @error/convert.c/ConvertImageCommand/3254.

Este es el mismo error que aparece en el resultado de la ejecución de Emacs pdflatex.

Respuesta1

Emacs no puede encontrar el ejecutable de GhostScript. Correr

which gs

en Terminal y copie la ruta, digamos /usr/local/bin. Luego agregue las siguientes líneas en su archivo de inicio de Emacs (por ejemplo, ~/.emacs) y reinicie Emacs.

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

(La primera de estas líneas puede que no sea estrictamente necesaria, pero no viene mal...)


Esta respuesta fue posible gracias a la buena gente del foro de usuarios de Image Magick, que respondieronmi publicacion.

información relacionada