Me gustaría usar AUCTeX para crear una imagen PNG de una imagen TikZ usandoel standalone
paquete. Yo uso macOS Sierra.
Según la standalone
documentación v1.2-2015/07/15 (sección 4.6Conversión a imágenes, pag. 15)
Usando la
convert
opció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 laconvert
opción con cualquier valor distinto afalse
lo 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-escape
se debe utilizar la opción para el ejecutable del compilador, por ejemplopdflatex -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), cd
accedí 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.png
archivo 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.