Я хотел бы использовать AUCTeX для создания изображения PNG из картинки TikZ с помощьюпакетstandalone
. Я использую macOS Sierra.
Согласноstandalone
документации v1.2-2015/07/15 (раздел 4.6Преобразование в изображения, стр. 15)
Используя
convert
опцию класса, отдельный файл можно легко преобразовать в растровое изображение. Это делается путем запуска внешней программы для преобразования выходного файла (PDF или PS) в изображение (рекомендуется формат PNG без потерь, но поддерживаются и другие).
Согласно подпункту 4.6.1Настройки конвертации(стр. 15)
Настройки преобразования могут быть заданы как значение параметра
convert={<settings>}
. По умолчанию преобразование отключено(convert=false)
. Если включено без указания собственных настроек (convert,convert=true
), используются следующие настройки по умолчанию: формат PNG, плотность 300 точек на дюйм, явный размер отсутствует, а имя выходного файла задается как\jobname
, т. е. имя документа LaTeX. Использованиеconvert
параметра с любым значением, отличным от ,false
включит его.
Согласно разделу 4.6.2Программное обеспечение для конвертации(стр. 16)
Для преобразования требуется установить внешнюю программу-конвертер изображений. По умолчанию поддерживаются два следующих инструмента, и любой из них должен быть установлен для использования функции преобразования. Для выполнения внешней программы
-shell-escape
необходимо использовать опцию для исполняемого файла компилятора, напримерpdflatex -shell-escape filename
. Без этой опции преобразование невозможно.По умолчанию программа конвертацииИзображение Магияиспользуется для файлов PDF LaTeX [...]
Поэтому я использовалДомашнее пиво(популярный менеджер пакетов для macOS) для установки Image Magick. Он был установлен в каталоге /usr/local/Cellar/imagemagick/7.0.6-0
. Затем я добавил следующие строки в файл инициализации Emacs ( ~/.emacs
), чтобы Emacs знал, где искать исполняемые файлы 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/")))
После перезапуска Emacs я написал следующую рукопись LaTeX, которая называется 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:
и скомпилировал его с помощью C-c C-a
.
Результатом стал PDF-файл, но файл PNG не был создан, по крайней мере, в том же каталоге, где находилась рукопись LaTeX.
Затем я открыл Терминал (консоль командной строки macOS), cd
перешел в каталог, содержащий рукопись LaTeX, и выполнил следующую команду:
pdflatex -shell-escape my_tikz_drawing
Результатом стал my_tikz_drawing.png
файл в том же каталоге.
Возможная подсказка
Выполним следующую команду, которая находится в файле журнала, один раз из Терминала и один раз из Emacs (используя M-!):
convert -density 300 my_tikz_drawing.pdf -quality 90 my_tikz_drawing.png
дает следующие результаты.
Из терминала: команда выполняется без вывода сообщений и создает файл
my_tikz_drawing.png
.Из Emacs: Файл PNG не создается, а в мини-буфере отображается сообщение об ошибке:
convert: не определено ни одного изображения 'my_tikz_drawing.png' @error/convert.c/ConvertImageCommand/3254.
Это та же ошибка, которая появляется в выводе при запуске Emacs pdflatex.
решение1
Emacs не может найти исполняемый файл GhostScript. Запустить
which gs
в Терминале и скопируйте путь, скажем /usr/local/bin
. Затем добавьте следующие строки в файл инициализации Emacs (скажем, ~/.emacs
) и перезапустите Emacs.
(setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin/"))
(setq exec-path (append exec-path '("/usr/local/bin/")))
(Первая из этих строк, возможно, не является строго необходимой, но она не повредит...)
Этот ответ стал возможным благодаря добрым людям на форуме пользователей Image Magick, которые ответилимой пост.