저는 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를 얻을 수 있습니다 (도면의 웹 게시에 권장 됨). 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 규칙으로 각각 하나의 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
있으며 다른 임시 파일 접두어로 대체 할 수 있습니다 .
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