AUCTeX を使用して、「スタンドアロン」パッケージ (macOS) で TikZ 画像の PNG ファイルを作成する方法を教えてください。

AUCTeX を使用して、「スタンドアロン」パッケージ (macOS) で TikZ 画像の PNG ファイルを作成する方法を教えてください。

AUCTeXを使用してTikZ画像のPNG画像を作成したいのですがその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 形式、300dpi の密度、明示的なサイズなし、出力ファイル名は\jobname、つまり LaTeX ドキュメントの名前で指定されます。convert以外の値でオプションを使用するとfalse、変換が有効になります。

セクション4.6.2によると変換ソフトウェア(16ページ)

変換には外部イメージ変換プログラムのインストールが必要です。デフォルトでは次の2つのツールがサポートされており、変換機能を使用するにはどちらかをインストールする必要があります。外部プログラムを実行するには、-shell-escapeコンパイラ実行可能ファイルに対してオプションを使用する必要があります。例:pdflatex -shell-escape filename。このオプションがないと、変換は実行できません。

デフォルトでは、イメージマジックPDF LaTeX ファイルに使用されます [...]

そこで私は自家製(macOS 用の一般的なパッケージ マネージャー) を使用して Image Magick をインストールしました。Image Magick はディレクトリにインストールされました。次に、Emacs が Image Magick 実行可能ファイルを探す場所を認識できるように、/usr/local/Cellar/imagemagick/7.0.6-0Emacs init ファイル () に次の行を追加しました。~/.emacs

(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 ファイルでしたが、少なくとも LaTeX 原稿と同じディレクトリには PNG ファイルは作成されませんでした。

次に、ターミナル (macOS のコマンドライン コンソール) を開き、cdLaTeX 原稿を含むディレクトリに移動して、次のコマンドを実行しました。

pdflatex -shell-escape my_tikz_drawing

結果はmy_tikz_drawing.png同じディレクトリ内のファイルでした。


手がかりとなるもの

ログ ファイルにある次のコマンドを、ターミナルから 1 回、Emacs (M-! を使用) から 1 回実行します。

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

次の結果が得られます。

  • ターミナルから: コマンドはサイレントに実行され、ファイルが作成されますmy_tikz_drawing.png

  • Emacs から: PNG ファイルが作成されず、ミニバッファにエラー メッセージが表示されます。

変換: 画像 'my_tikz_drawing.png' が定義されていません @error/convert.c/ConvertImageCommand/3254。

これは、Emacs pdflatex 実行の出力に表示されるエラーと同じです。

答え1

EmacsはGhostScript実行ファイルを見つけることができません。実行してください

which gs

ターミナルで、パスをコピーします (例: ) /usr/local/bin。次に、Emacs init ファイル (例: ) に次の行を追加し~/.emacs、Emacs を再起動します。

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

(これらの行の最初の部分は厳密には必要ないかもしれませんが、問題はありません...)


この回答は、Image Magickユーザーフォーラムの優秀な方々のおかげで可能になりました。私の投稿

関連情報