Org-babel के साथ एक TikZ आकृति से PNG कैसे उत्पन्न करें?

Jan 11 2021

मैं tikz कोड से चित्र बनाने के लिए org-babel का उपयोग करने का प्रयास कर रहा हूं।

पहला कोड ( इस उदाहरण से लें ) पूरी तरह से काम करता है, लेकिन जब y टिक को एक png (या एक jpg) में निर्यात करना चाहता है, तो मुझे एक त्रुटि है:

org-compile-file: File "/tmp/babel-RNLDyr/latex-o3rO8d.pdf" wasn’t produced.  See "*Org PDF LaTeX Output*" for details

मुझे इस त्रुटि का कारण नहीं मिल रहा है और " ऑर्ग पीडीएफ लाटेक्स आउटपुट " बफर मौजूद नहीं है।

एक svg बनाने के लिए कोड का उपयोग (यह काम है):

#+HEADER: :file ./images/contour.svg :imagemagick yes
#+HEADER: :results output silent :headers '("\\usepackage{tikz}")
#+HEADER: :fit yes :imoutoptions -geometry 400 :iminoptions -density 600
#+BEGIN_src latex
\begin{tikzpicture}
\draw[->] (-3,0) -- (-2,0) arc[radius=0.5cm,start angle=-180,end angle=0] (-1,0) -- (1,0) arc[radius=0.5cm,start angle=180,end angle=0] (2,0) -- (3,0);
\filldraw (-1.5,0) circle[radius=1mm];
\filldraw (1.5,0) circle[radius=1mm];
\end{tikzpicture}
#+END_src

कोड का उपयोग पीएनजी बनाने के लिए (यह काम नहीं करता है):

#+HEADER: :file ./images/contour.png :imagemagick yes
#+HEADER: :results output silent :headers '("\\usepackage{tikz}")
#+HEADER: :fit yes :imoutoptions -geometry 400 :iminoptions -density 600
#+BEGIN_src latex
\begin{tikzpicture}
\draw[->] (-3,0) -- (-2,0) arc[radius=0.5cm,start angle=-180,end angle=0] (-1,0) -- (1,0) arc[radius=0.5cm,start angle=180,end angle=0] (2,0) -- (3,0);
\filldraw (-1.5,0) circle[radius=1mm];
\filldraw (1.5,0) circle[radius=1mm];
\end{tikzpicture}
#+END_src

जवाब

1 doltes Jan 11 2021 at 21:52

मैं निम्नलिखित न्यूनतम प्रतिलिपि प्रस्तुत करने योग्य उदाहरण के साथ TikZ की एक PNG छवि उत्पन्न करने में सक्षम था।

नीचे दिखाए गए GIF में, आप देख सकते हैं कि मैं ध्वज emacsका उपयोग करके -Qऔर main.elफ़ाइल में मौजूद लिस्प कोड लोड करके निष्पादित करता हूं । छवि main.orgकिसी भी समस्या के बिना फ़ाइल से उत्पन्न होती है।

निम्न कोड ब्लॉक main.orgफ़ाइल की सामग्री को दर्शाता है

#+LATEX_HEADER: \usepackage{tikz}

#+begin_src latex :file main.png :results file graphics
\begin{tikzpicture}
  \draw node[circle, draw] (a) {$a$}
        node[circle, draw, right of = a] (b) {$b$}
        node[circle, draw, below of = a] (c) {$c$}
        node[circle, draw, below of = b] (d) {$d$};
\end{tikzpicture}
#+end_src

निम्न कोड ब्लॉक main.elफ़ाइल की सामग्री को दर्शाता है

; The following configuration sets the font (demostration purposes)

(set-frame-font "Iosevka SS04 Light 30")

; The following configuration make Org Mode use imagemagick for processing images.
;
; This was retrieved from this question (https://emacs.stackexchange.com/questions/60696) I posted.

(setq org-preview-latex-default-process 'imagemagick)

; The following configuration disables the confirmation prompt whenever code blocks are evaluated.

(setq org-confirm-babel-evaluate nil)

; The following hook make images to be shown after code blocks are executed.

(add-hook 'org-babel-after-execute-hook 'org-redisplay-inline-images)

; The following configuration allows code blocks whose language is latex to be evaluated

(org-babel-do-load-languages 'org-babel-load-languages
                 '((latex . t)))