私はTikZを使用してLaTeXで図を描き、それを画像ファイルとして分離してオンラインにします。TeXnicCenterを使用してソースを編集しています。
完成したPDFファイルからこれらの図を抽出せずに直接抽出する方法はありますか?
私はTikZを使用してLaTeXで図を描き、それを画像ファイルとして分離してオンラインにします。TeXnicCenterを使用してソースを編集しています。
完成したPDFファイルからこれらの図を抽出せずに直接抽出する方法はありますか?
回答:
私のコメントのフォローアップ: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画像を別のファイルに配置し、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
inkscape
ました。
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's / ^ \\ begin {document} / \ \\ pgfrealjobname {dummy} \\ begin {document} \\ beginpgfgraphicnamed {example} / '$ <| \ 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
、別のtempfileプレフィックスで置き換えることができます。
Windows:私のような初心者のために完全に明示するために
マージンを削除するには、ラテックスコードで上記のHabiが提案したprewiewパッケージを使用します。
MIktexとInkscapeをインストールし、次のbatファイルを使用します。
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