क्या छवि फ़ाइलों के रूप में TikZ आरेख निकालना संभव है? [बन्द है]


81

मैं TikT का उपयोग LaTeX में आरेख बनाने के लिए कर रहा हूं जिसे मैं ऑनलाइन डालने के लिए छवि फ़ाइलों के रूप में अलग करना चाहता हूं। मैं स्रोतों को संपादित करने के लिए TeXnicCenter का उपयोग कर रहा हूं।

क्या इन आरेखों को सीधे समाप्त पीडीएफ फाइल से निकालने के बिना इन आरेखों को निकालने का एक तरीका है?


1
मैं CirKuit नामक एक कार्यक्रम का उपयोग करता हूं जो एक TikZ संपादक के रूप में कार्य करता है, और आपको आरेख को विभिन्न छवि स्वरूपों में से किसी एक के रूप में सहेजने की अनुमति देता है। मुझे लगता है कि यह पर्दे के पीछे क्या करता है, हालांकि, लेटेक्स और dvitopng का उपयोग करें या ऐसा कुछ। अगर मैं किसी और चीज को पोस्ट करने से पहले विवरण पा सकता हूं, तो उत्तर दूंगा।
डेविड जेड

1
क्या आप आरेख को पाठ से स्वचालित रूप से अलग करना चाहते हैं, या क्या आप TikZ कोड को काटने और पेस्ट करने के लिए खुश हैं?
चार्ल्स स्टीवर्ट

जवाबों:


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) के माध्यम से सीधे PNG में एक TikZ आरेख परिवर्तित करने का कोई तरीका नहीं पता है ।


धन्यवाद! मैं सभी से बचना चाहता था कि आरेखों को मैन्युअल रूप से अलग करना है, इसलिए यह ठीक काम करना चाहिए।
Qiaochu युआन

66

मैं निम्नलिखित दृष्टिकोण की सिफारिश करूंगा। एक अलग फ़ाइल में प्रश्न में TikZ तस्वीर रखें और standaloneइसे स्टैंडअलोन संकलित करने के लिए कक्षा का उपयोग करें । यह previewअन्य उत्तरों में उल्लिखित पैकेज का उपयोग करता है। चित्र को मुख्य दस्तावेज़ में शामिल करने के लिए, पहले वहां standalone पैकेज लोड करें और फिर \inputचित्र फ़ाइल पर कमांड का उपयोग करें ।

यह आपको मार्जिन के बिना TikZ तस्वीर का एक एकल पीडीएफ प्राप्त करने की अनुमति देगा। तब आप पीएनजी प्राप्त करने के लिए एक पीडीएफ-टू-पीएनजी कनवर्टर (ड्राइंग के वेब प्रकाशन के लिए अनुशंसित) का उपयोग कर सकते हैं। एसवीजी प्रारूप अच्छा होगा, क्योंकि यह एक वेक्टर प्रारूप है, लेकिन सभी ब्राउज़र इसे प्रदर्शित करने में सक्षम नहीं हो सकते हैं।

यहाँ कुछ उदाहरण कोड। 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 को इमेजमाजिक की तुलना में पीडीएफ को SVG में बदलने के लिए अधिक विश्वसनीय उपकरण है।
ग्लूटानेट

1
@Glutanimate: इस बीच मैं इसके लिए उपयोग करना शुरू कर दिया inkscape
मार्टिन स्क्रहरर

@MartinScharrer मैं png या svg में परिवर्तित किए बिना पीडीएफ फाइल को एम्बेड करने में सक्षम था: इसे शामिल नहीं करने के लिए: \
Joingraphics

@ user4035: निश्चित रूप से, यह आपके पीडीएफ (पीडीएफ) LaTeX दस्तावेज़ में पीडीएफ पीडीएफ में सामान्य तरीका है। हालांकि, यह सवाल है कि आरेख को रैस्टर इमेज फ़ाइलों के रूप में कैसे प्राप्त करें ताकि उन्हें ऑनलाइन प्रदर्शित किया जा सके।
मार्टिन स्क्ररर

11

TikZ मैनुअल सेक्शन "एक्सप्राइज़िंग ग्राफिक्स" देखें। इससे आप अपने ग्राफिक्स के ईपीएस या पीडीएफ संस्करण बना सकते हैं। मैं ईपीएस फाइलों का उपयोग करता हूं, उन्हें टीआईएफएफ में परिवर्तित करता हूं और फिर उन्हें जहां भी जरूरत हो, वहां रख सकता हूं।


2013 के अनुसार, मुझे लगता है कि यह संभवतः सबसे अच्छा तरीका है।
एलेक्स हिरजेल

2017 में यह pgfmanual की धारा 50.4 (पृष्ठ 607) है। ऐसा लगता है कि हम अनुभाग के लिए एक वेब पेज का लिंक नहीं दे सकते (यह केवल पीडीएफ में है)। :(
यारोस्लाव निकितेंको

सैद्धांतिक रूप से, यह अच्छी तरह से काम करता है। व्यवहार में, काफी समय तक टिक्ज़ेक्स्टर्नेट का उपयोग करने के बाद, मैं स्टैंडअलोन दृष्टिकोण पर वापस लौट आया हूं, क्योंकि बस इसे काम करना आसान लगता है। मुझे tikzexternalize से काफी परेशानी हुई है।
झिन

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}

उत्पन्न पीडीएफ फाइल में स्टैंडअलोन टिकज पिक्चर है। इसे किसी अन्य फ़ाइल प्रारूप में बदलने के लिए, बस इसे जिम्प के साथ खोलें।


2

मैं इसका उपयोग मेकफाइल नियम के लिए .GG फाइल से पीएनजी फाइलें और थंबनेल बनाने के लिए करता हूं, जिनमें एक-एक टिक्कप्रिक्चर होता है। यह TeXample.net पर छवियों के निर्माण के समान है :

% .png:% .ex
        @ ड्राय / ^ \\ शुरू {दस्तावेज़} / \
\\ pgfrealjobname {dummy} \\ शुरू {दस्तावेज} \\ startpgfgraphic name {उदाहरण} / '$ <| \ _
sed's / ^ \\ end {document} / \\ endpgfgraphic name \\ end {document} / '> example .ex; \ _
        pdflatex --jobname = उदाहरण example.tex; \ _
        gs -dNOPAUSE -r120 -dGraphicsAlphaBits = 4 -dTextAlphaBits = 4 -sDEVICE = png16m \
-sOutputFile = $ @ -dBATCH example.pdf; \ _
        Convert -thumbnail 200 $ @ $ (adduffix .thumb.png, $ (basename $ @)); \ _
        mv example.pdf $ (अतिरिक्तफीडिक्स .pdf, $ (बेसनेम $ <)); rm उदाहरण। *

घोस्टव्यू ( gs) संभवतः द्वारा प्रतिस्थापित किया जा सकता है convertऔर आप exampleकिसी अन्य टेंपइल उपसर्ग के साथ बदल सकते हैं ।


2

विंडोज: मेरे जैसे नॉब्स के लिए बस पूरी तरह से स्पष्ट होना

हाशिया को हटाने के लिए अपने लेटेक्स कोड में ऊपर बताए गए हबी के रूप में प्रीव्यू पैकेज का उपयोग करें।

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.