[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: File generation from LaTeX src fails due to temporary PDF in wrong d
From: |
Christian Moe |
Subject: |
Re: File generation from LaTeX src fails due to temporary PDF in wrong directory |
Date: |
Wed, 29 Mar 2023 23:15:03 +0200 |
User-agent: |
mu4e 1.2.0; emacs 27.2 |
Hi,
Pardon the noise: It turned out to be a pretty obvious problem with my
setup that has now been resolved.
I had modified org-latex-pdf-process to use xelatex, and for some reason
my setup lacked the =-output-directory %o= switch. I should probably
have thought of that first, but the omission has had no ill effects on
ordinary PDF export, so I didn't run into any problem before trying to
use Babel with LaTeX.
Ihor and Pedro, thanks for checking.
Chris, I don't know why your attempts fail, but I'll be trying similar
things over the next days, so maybe I'll come back to you.
Yours,
Christian
chris writes:
> On Wednesday, 29 March 2023 10:00:35 CEST Pedro Andres Aranda Gutierrez wrote:
>> On Tue, 28 Mar 2023 10:04:24 +0200, Christian Moe <mail@christianmoe.com>
>> wrote
>> Hi,
>>
>> > I'm trying and failing to export images from TikZ code, apparently
>> > because the temporary PDF is misplaced. Here is a minimal example just
>> > exporting the PDF:
>>
>> > #+LATEX_HEADER: \usepackage{tikz}
>> >
>> > #+header: :fit yes
>> > #+begin_src latex :exports results :file ./test-tikz-triangle.png
>> > \begin{tikzpicture} %
>> > \draw[draw=black, fill=blue!10] (0,4) -- (3,0) -- (-3,0) -- cycle;
>> > \end{tikzpicture}
>> > #+end_src
>>
>> > Execution fails with an error message like this:
>> >
>> > org-compile-file: File "/tmp/babel-Tay2kl/latex-IJVI84.pdf" wasn’t
>> > produced. See "*Org PDF LaTeX Output*" for details
>>
>> Hi Christian,
>> trying to reproduce this on a master (emacs30.0.50) on Ubuntu. To make it
>> really
>> lightweight, I'm starting with
>> emacs -Q
>> but unfortunately, I'm not able to reproduce it here :(
>
> Hi, I've been trying to have a similar example working for hours,
> specifically I was trying to follow
> https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-LaTeX.html[1]
>
> Could you provide more context because if I run emacs -Q here, with the
> example provided by OP, and type C-c C-c, I just get "no org-babel execute
> function for latex!".
> So I guess it might have required a little more work than what I've just
> described.
>
> Here is the setting I've used:
>
> This in my dot-emacs.org file:
> #+begin_src emacs-lisp
> (with-eval-after-load 'org
> (add-to-list 'org-latex-packages-alist '("" "stmaryrd" t))
> (add-to-list 'org-latex-packages-alist '("" "tikz-cd" t))
> (add-to-list 'org-latex-packages-alist '("" "amscd" t))
> (add-to-list 'org-latex-packages-alist '("" "mathtools" t))
> (add-to-list 'org-latex-packages-alist '("" "unicode-math" t))
> ;; (add-to-list 'org-latex-packages-alist '("" "breqn" t))
> (add-to-list 'org-latex-packages-alist '("" "thisisastupidtestfile" t))
> (setq org-latex-create-formula-image-program 'dvisvgm) ;; probably only
> this line is relevant with the matter at hand
> (setq org-format-latex-options
> (plist-put org-format-latex-options :scale 0.80)))
> #+end_src
>
> With this, when I put the following in some org file and type C-c C-x C-l I
> immediately get a org-latex-preview of the tikz snippet:
> \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}
>
> Now If I use the following and type C-c C-c, I never get anything in multiple
> ways:
> Note that I've also tried with imagemagick...
> #+name: test_plot_png
> #+header: :exports results :file test.svg
> #+header: :dvisvgm yes
> #+header: :fit yes :noweb yes :headers '("\\usepackage{tikz}")
> #+begin_src latex :file test.svg
> \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
>
> Many times a pdf is generated in the /tmp/ directory but that pdf is
> gibberish. When I go from the latex file to the pdf using pdflatex, only
> gibberish pdf is generated, no relation with the image that should be
> generated.
> If instead I use lualatex, the pdf is correctly generated.
> Anyway, I've been experimenting for hours, and I have no idea how to have the
> thing working.
>
> I also used that code someone gave me:
> #+begin_src emacs-lisp
> (set-variable 'org-preview-latex-process-alist
> '((dvipng :programs ; Was here originally.
> ("latex" "dvipng")
> :description "dvi > png" :message "you need to
> install the programs: latex and dvipng." :image-input-type "dvi"
> :image-output-type "png" :image-size-adjust
> (1.0 . 1.0)
> :latex-compiler
> ("latex -interaction nonstopmode
> -output-directory %o %f")
> :image-converter
> ("dvipng -D %D -T tight -o %O %f"))
> (dvisvgm :programs ; Was here originally.
> ("latex" "dvisvgm")
> :description "dvi > svg" :message "you need to
> install the programs: latex and dvisvgm." :image-input-type "dvi"
> :image-output-type "svg" :image-size-adjust
> (1.7 . 1.5)
> :latex-compiler
> ("latex -interaction nonstopmode
> -output-directory %o %f")
> :image-converter
> ("dvisvgm %f -n -b min -c %S -o %O"))
> (imagemagick :programs ; The recommended "new" way.
> ("latex" "convert")
> :description "pdf > png" :message "you
> need to install the programs: latex and imagemagick." :image-input-type "pdf"
> :image-output-type "png" :image-size-adjust
> (1.0 . 1.0)
> :latex-compiler
> ("lualatex -interaction nonstopmode
> -output-directory %o %f")
> :image-converter
> ("convert -density %D -trim -antialias %f
> -quality 100 %O"))))
> #+end_src
>
> No luck at all there neither.
>
> BTW, when I do C-c C-c on the OP example, after having evaluated
> #+begin_src emacs-lisp
> (org-babel-do-load-languages
> 'org-babel-load-languages
> '((latex . t)))
> #+end_src
>
> No pdf, no output, only an empty latex file generated in /tmp
>
>
> Bottom line, I'd really like to know how this hole thing is supposed to work.
> org-preview latex working perfectly fine though.
>
> Note: The reason I want to have this working is that I want to export to
> html. Plain latex formula are displayed very very well using mathjax. But
> TiKz things are not working.
> So even though I've got a near wysiwyg in emacs, I can't have that exported
> to html.
> What I'd like to have is plain latex formulas exported to mathjax and tikz
> diagrams exported using the SVG image.
> Initially my setting wasn't even using imagemagick, only dvisvgm.
>
> Also it seems we have three ways to do the exact same thing:
> org-latex-preview which works perfectly with minimal effort on my box,
> the C-c C-c thing,
> and the org-html-export-to-html thing.
> Each using independent workflow. Though probably not completely independent
> though.
>
> My emacs is master from a month ago.
>
> Cheers,
> Chris
>
>
>
>>
>> My emacs:
>>
>> GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.33,
>> cairo version 1.16.0) of 2023-03-26
>>
>> Would you please try again, calling with emacs -Q and giving a couple
>> clues more of your process to confirm... It may be that I'm too modern
>> ;-)
>>
>> Thx, /Pedro A.
>>
>>
>
>
>
> --------
> [1] https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-LaTeX.html