emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Anders Johansson <mejlaandersj@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Bug: ob-ditaa fails in generating pdf correctly
Date: Thu, 22 May 2014 17:27:58 +0200	[thread overview]
Message-ID: <537E177E.9010906@gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 752 bytes --]

Hi,
Example input:
#+header: :eps t
#+header: :file hello.pdf
#+BEGIN_SRC ditaa
+--------------+
|              |
|    Hello     |
|              |
+--------------+
#+END_SRC


When using the above code (which I guessed should be the correct way) 
with ob-ditaa to produce a pdf (through  DitaaEps -> epstopdf) it fails 
in producing the pdf correctly and instead writes an eps to "hello.pdf". 
This isn't surprising, looking at the code where "cmd" should be 
constructed to produce the eps as an intermediary file in /tmp (which is 
expected in the construction of pdf-cmd) but doesn't.

An ugly patch to fix it is attached (this is ugly because it repeats the 
line:
(org-babel-process-file-name (concat in-file ".eps"))
)

Cheers,
Anders Johansson

[-- Attachment #2: ob-ditaa-patch --]
[-- Type: text/plain, Size: 1424 bytes --]

--- "/home/aj/H\303\244mtningar/ob-ditaa.el"	2014-05-22 17:15:35.489071991 +0200
+++ ob-ditaa.el	2014-05-22 17:08:46.617089186 +0200
@@ -90,6 +90,12 @@
 	 (java (cdr (assoc :java params)))
 	 (in-file (org-babel-temp-file "ditaa-"))
 	 (eps (cdr (assoc :eps params)))
+	 (pdf-cmd (when (and (or (string= (file-name-extension out-file) "pdf")
+				 (cdr (assoc :pdf params))))
+		    (concat
+		     "epstopdf"
+		     " " (org-babel-process-file-name (concat in-file ".eps"))
+		     " -o=" (org-babel-process-file-name out-file))))
 	 (cmd (concat org-babel-ditaa-java-cmd
 		      " " java " " org-ditaa-jar-option " "
 		      (shell-quote-argument
@@ -97,13 +103,10 @@
 			(if eps org-ditaa-eps-jar-path org-ditaa-jar-path)))
 		      " " cmdline
 		      " " (org-babel-process-file-name in-file)
-		      " " (org-babel-process-file-name out-file)))
-	 (pdf-cmd (when (and (or (string= (file-name-extension out-file) "pdf")
-				 (cdr (assoc :pdf params))))
-		    (concat
-		     "epstopdf"
-		     " " (org-babel-process-file-name (concat in-file ".eps"))
-		     " -o=" (org-babel-process-file-name out-file)))))
+		      " " (if pdf-cmd
+					  (org-babel-process-file-name (concat in-file ".eps"))
+					  (org-babel-process-file-name out-file))))
+	 )
     (unless (file-exists-p org-ditaa-jar-path)
       (error "Could not find ditaa.jar at %s" org-ditaa-jar-path))
     (with-temp-file in-file (insert body))

             reply	other threads:[~2014-05-22 15:28 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-22 15:27 Anders Johansson [this message]
2014-06-06 16:22 ` Bug: ob-ditaa fails in generating pdf correctly Eric Schulte

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=537E177E.9010906@gmail.com \
    --to=mejlaandersj@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).