TikZ 다이어그램을 이미지 파일로 추출 할 수 있습니까? [닫은]


81

저는 TikZ를 사용하여 LaTeX에서 다이어그램을 그린 다음 온라인에 놓을 이미지 파일로 분리하고 싶습니다. 소스를 편집하기 위해 TeXnicCenter를 사용하고 있습니다.

완성 된 PDF 파일에서 이러한 다이어그램을 추출하지 않고 직접 추출 할 수있는 방법이 있습니까?


1
저는 TikZ 편집기 역할을하는 CirKuit라는 프로그램을 사용하여 다이어그램을 다양한 이미지 형식으로 저장할 수 있습니다. 하지만 무대 뒤에서하는 일은 라텍스와 dvitopng 등을 사용하는 것이라고 생각합니다. 다른 사람이 게시물을 올리기 전에 세부 사항을 알 수 있으면 답변을 게시하겠습니다.
David Z

1
텍스트에서 다이어그램을 자동으로 분리 하시겠습니까, 아니면 TikZ 코드를 잘라내어 붙여 넣으시겠습니까?
Charles Stewart

2

답변:


29

내 의견에 대한 후속 조치 : 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로 직접 변환하는 방법을 모르겠습니다 .


감사! 내가 피하고 싶었던 것은 다이어그램을 수동으로 분리해야하는 것이었기 때문에 제대로 작동 할 것입니다.
Qiaochu Yuan

66

다음 접근 방식을 권장합니다. 문제의 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

pdf2svg 가 imagemagick보다 PDF를 SVG로 변환하는 데 더 안정적인 도구라는 것을 발견 했습니다 .
Glutanimate 2013 년

1
@Glutanimate : 그 동안 나는 inkscape그것을 사용 하기 시작 했습니다.
Martin Scharrer 2013 년

@MartinScharrer 나는 PNG 또는 SVG로 변환하지 않고, 부모 문서에 포함 pdf 파일을 수 있었다 : \ includegraphics 명령 {file_name.pdf}
user4035

@ user4035 : 물론입니다. 이것은 PDF를 (pdf) LaTeX 문서에 포함시키는 일반적인 방법입니다. 그러나이 질문은 다이어그램을 온라인으로 표시 할 수 있도록 래스터 이미지 파일로 가져 오는 방법에 대한 것입니다.
Martin Scharrer 2013 년

11

TikZ 매뉴얼 섹션 "그래픽 외부화"를 참조하십시오. 이렇게하면 그래픽의 EPS 또는 PDF 버전을 만들 수 있습니다. EPS 파일을 사용하여 TIFF로 변환 한 다음 필요한 곳에 둘 수 있습니다.


2013 년 현재로서는 이것이 최선의 방법이라고 생각합니다.
Alex Hirzel 2013 년

2017 년에는 pgfmanual의 섹션 50.4 (607 페이지)입니다. 섹션에 대한 웹 페이지 링크를 제공 할 수없는 것 같습니다 (pdf로만 제공됨). :(
Yaroslav Nikitenko

이론적으로 이것은 잘 작동합니다. 실제로는 tikzexternalize를 꽤 오랫동안 사용한 후 독립 실행 형 접근 방식으로 되돌 렸습니다. 나는 tikzexternalize로 꽤 번거 롭습니다.
jhin

7

나는 일반적으로 다음 줄을 따라 무언가를 사용하고 있습니다.

\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로 열기 만하면됩니다.


2

나는 이것을 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)는로 대체 될 convertexample있으며 다른 임시 파일 접두어로 대체 할 수 있습니다 .


2

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.