TikZ を使用して LaTeX で図を描画し、それを画像ファイルとして分離してオンラインにします。ソースの編集には TeXnicCenter を使用しています。
完成した PDF ファイルから図を抽出せずに、これらの図を直接抽出する方法はありますか?
TikZ を使用して LaTeX で図を描画し、それを画像ファイルとして分離してオンラインにします。ソースの編集には TeXnicCenter を使用しています。
完成した PDF ファイルから図を抽出せずに、これらの図を直接抽出する方法はありますか?
次のアプローチをお勧めします。問題の TikZ 画像を別のファイルに配置し、standalone
クラスを使用してスタンドアロンでコンパイルします。preview
他の回答に記載されているパッケージを使用します。画像をメイン ドキュメントに含めるには、最初にそこにstandalone
パッケージをロードして\input
から、画像ファイルに対して コマンドを使用します。
これにより、余白のない TikZ 画像の単一の PDF を取得できます。次に、たとえば、PDF から PNG へのコンバーターを使用して PNG を取得できます (図面の Web パブリッシングに推奨)。ベクトル形式であるため、SVG 形式の方が適していますが、すべてのブラウザーで表示できるわけではありません。
ここにいくつかのサンプルコードがあります。TikZ 画像ファイル (例pic.tex
: ):
\documentclass{standalone}
\usepackage{tikz}
% all other packages and stuff you need for the picture
\begin{document}
\begin{tikzpicture}
% your picture code
\end{tikzpicture}
\end{document}
主な文書:
\documentclass{article} % or whatever class you are using
\usepackage{standalone}
\usepackage{tikz}
% All other packages required
\begin{document}
% Text text text
% somewhere where you want the tikz picture
\input{pic}
% Text text text
\end{document}
次に、画像をコンパイルして変換します。たとえば、ImageMagick を使用します。
pdflatex pic
convert -density 600x600 pic.pdf -quality 90 -resize 800x600 pic.png
またはSVGを試してください:
convert pic.pdf pic.svg
私のコメントのフォローアップ: Cirkuitは、次の一連のコマンドのようなものを実行して、TikZ ダイアグラムを画像に変換します。
pdflatex img.tex
pdftops -eps img.pdf
convert -density 300 img.eps img.png
このimg.tex
テンプレートに従った LaTeX ファイルは次のようになります。
\documentclass{article}
\usepackage{tikz,amsmath,siunitx}
\usetikzlibrary{arrows,snakes,backgrounds,patterns,matrix,shapes,fit,calc,shadows,plotmarks}
\usepackage[graphics,tightpage,active]{preview}
\PreviewEnvironment{tikzpicture}
\PreviewEnvironment{equation}
\PreviewEnvironment{equation*}
\newlength{\imagewidth}
\newlength{\imagescale}
\pagestyle{empty}
\thispagestyle{empty}
\begin{document}
\begin{tikzpicture}
% (your TikZ code goes here)
\end{tikzpicture}
\end{document}
Cirkuit または同様のエディターを使用できる場合、またはダイアグラムをそのテンプレートに挿入して適切なツールを実行するためのスクリプトを自分で作成できる場合は、TikZ コードを PNG 画像に変換する簡単な方法があります。
あなたの質問にもっと直接的に答えるには...いいえ、ある段階でPDFファイル(または少なくともDVI)を経由せずにTikZダイアグラムを直接PNGに変換する方法を知りません。
TikZ マニュアルのセクション「グラフィックスの外部化」を参照してください。これにより、グラフィックスの EPS または PDF バージョンを作成できます。EPS ファイルを使用して TIFF に変換し、必要な場所に配置できます。
私は一般的にこれらの線に沿って何かを使用しています:
\documentclass{article}
\usepackage[pdftex,active,tightpage]{preview}
%\setlength\PreviewBorder{2mm} % use to add a border around the image
\usepackage{tikz}
\begin{document}
\begin{preview}
\begin{tikzpicture}
\shade (0,0) circle(2); % background
\draw (0,0) circle(2); % rim
\draw (.75,1) circle(.5); % right eye
\fill (.66,.9) circle(.25); % right pupil
\draw (-.75,1) circle(.5); % left eye
\fill (-.66,.9) circle(.25);% left pupil
\fill (.2,0) circle (.1); % right nostril
\fill (-.2,0) circle (.1); % left nostril
\draw (-135:1) arc (-135:-45:1) -- cycle; % mouth
\end{tikzpicture}
\end{preview}
\end{document}
生成されたpdfファイルには、スタンドアロンのTikZ画像が含まれています。他のファイル形式に変換するには、Gimpで開くだけです。
これを使用して Makefile ルールを作成し、それぞれ 1 つの tikzpicture を含む .tex ファイルから PNG ファイルとサムネイルを作成します。TeXample.netでの画像の作成と同様に機能します。
%.png: %.tex @sed の/^\\begin{ドキュメント}/\ \\pgfrealjobname{ダミー}\\begin{ドキュメント}\\beginpgfgraphicnamed{例}/' $< | \ sed 's/^\\end{document}/\\endpgfgraphicnamed\\end{document}/' > example.tex ; \ pdflatex --jobname=example example.tex ; \ gs -dNOPAUSE -r120 -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -sDEVICE=png16m \ -sOutputFile=$@ -dBATCH example.pdf ; \ convert -thumbnail 200 $@ $(addsuffix .thumb.png, $(basename $@)) ; \ mv example.pdf $(addsuffix .pdf, $(basename $<)) ; rm の例*
ghostview ( gs
) はおそらくconvert
置き換えることができexample
、別の一時ファイル接頭辞に置き換えることができます。
Windows: 私のような初心者向けに完全に明確にするために
上記のHabiが提案したように、ラテックスコードで prewiew パッケージを使用して、マージンを削除します。
MIktex と Inkscape をインストールし、次のバット ファイルを使用します。
cd = "C:\Path to tex"
pdflatex input-file-name.tex
"C:\Program Files (x86)\Inkscape\inkscape.exe" input-file-name.pdf --export-plain-svg=output-file-name.svg