Eu gostaria de usar o AUCTeX para criar uma imagem PNG de uma imagem TikZ usandoo standalone
pacote. Eu uso o macOS Sierra.
De acordo com a standalone
documentação v1.2-2015/07/15 (seção 4.6Conversão para imagens, pág. 15)
Usando a
convert
opção de classe, o arquivo independente pode ser facilmente convertido em uma imagem raster. Isso é feito executando um programa externo para converter o arquivo de saída (PDF ou PS) em uma imagem (recomendado é o formato PNG sem perdas, mas outros também são suportados).
De acordo com a subseção 4.6.1Configurações de conversão(pág. 15)
As configurações de conversão podem ser fornecidas como o valor da
convert={<settings>}
opção. Por padrão, a conversão está desabilitada(convert=false)
. Se ativado sem fornecer configurações próprias (convert,convert=true
), as seguintes configurações padrão serão usadas: formato PNG, densidade de 300 dpi, sem tamanho explícito e o nome do arquivo de saída é fornecido por\jobname
, ou seja, o nome do documento LaTeX. Usar aconvert
opção com qualquer valor diferentefalse
irá habilitá-la.
De acordo com a seção 4.6.2Software de conversão(pág. 16)
A conversão requer a instalação de um programa conversor de imagem externo. Por padrão, as duas ferramentas a seguir são suportadas e qualquer uma delas deve ser instalada para usar o recurso de conversão. Para que um programa externo seja executado, a
-shell-escape
opção deve ser usada para o executável do compilador, por exemplopdflatex -shell-escape filename
, . Sem esta opção nenhuma conversão é possível.Por padrão, o programa de conversão deMagia da Imagemé usado para arquivos PDF LaTeX [...]
Então eu useiCerveja caseira(um gerenciador de pacotes popular para macOS) para instalar o Image Magick. Ele foi instalado no diretório /usr/local/Cellar/imagemagick/7.0.6-0
. Em seguida, adicionei as seguintes linhas ao meu arquivo init do Emacs ( ~/.emacs
) para que o Emacs soubesse onde procurar os executáveis do 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/")))
Depois de reiniciar o Emacs, escrevi o seguinte manuscrito LaTeX, chamado 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:
e compilei usando C-c C-a
.
O resultado foi um arquivo PDF, mas o arquivo PNG não foi criado, pelo menos não no mesmo diretório onde estava o manuscrito LaTeX.
Em seguida, abri o Terminal (o console de linha de comando do macOS), cd
coloquei o -ed no diretório que contém o manuscrito LaTeX e executei o seguinte comando:
pdflatex -shell-escape my_tikz_drawing
O resultado foi um my_tikz_drawing.png
arquivo no mesmo diretório.
Uma possível pista
Executando o seguinte comando, que se encontra no arquivo de log, uma vez no Terminal e uma vez no Emacs (usando M-!):
convert -density 300 my_tikz_drawing.pdf -quality 90 my_tikz_drawing.png
produz os seguintes resultados.
Do Terminal: O comando é executado silenciosamente e cria o arquivo
my_tikz_drawing.png
.Do Emacs: Nenhum arquivo PNG é criado e uma mensagem de erro é exibida no mini-buffer:
converter: nenhuma imagem definida 'my_tikz_drawing.png' @error/convert.c/ConvertImageCommand/3254.
Este é o mesmo erro que aparece na saída da execução do Emacs pdflatex.
Responder1
O Emacs não consegue encontrar o executável do GhostScript. Correr
which gs
no Terminal e copie o caminho, digamos /usr/local/bin
. Em seguida, adicione as seguintes linhas no arquivo init do Emacs (digamos, ~/.emacs
) e reinicie o Emacs.
(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin/"))
(setq exec-path (append exec-path '("/usr/local/bin/")))
(A primeira destas linhas pode não ser estritamente necessária, mas não faz mal...)
Esta resposta foi possível graças às boas pessoas do fórum Image Magick Users, que responderamminha publicação.