On Wed, 22 Apr 2015, Rainer M Krug wrote: > > > Envoyé de mon iPhone > >> Le 23 avr. 2015 à 04:23, Charles C. Berry a écrit : >> >>> On Wed, 22 Apr 2015, Thomas S. Dye wrote: >>> >>> Aloha all, >>> >>> Prior to eaa3a761dae, when working in a session, I was able to run this >>> R source code block without problems: >>> >>> ,----------------------------------------- >>> | #+header: :file r/adze_wt_log.pdf >>> | #+header: :results output graphics >>> | #+header: :width 4 :height 3 >>> | #+begin_src R >>> | g <- ggplot(x, aes(x = weight)) >>> | g + geom_histogram(aes(y=..density..)) >> >> ## Try this: >> >> print( g + geom_histogram(aes(y=..density..)) ) # before rm(g). >> >> >>> | rm(g) >>> | #+end_src >>> `----------------------------------------- >>> >>> After eaa3a761dae, I get an error and an empty output file. >> >> That commit introduced a tryCatch() wrapper for graphics results. >> >> You probably know that ggplot (or ggplot2) relies on printing of objects to produce graphics (see R-FAQ 7.22). >> >> tryCatch(expr,...) evaluates expr and returns its value, which is `rm(g)' in your case. But `rm(g)' is not autoprinted, and you get an empty file. > > I am not in front of my computer but there must be more, as even before > the commit there should have been empty file for exactly the same > reason. `:results output' will return the autoprinted values. Without tryCatch it works. > Also, the error is strange. Could you send a small reproducable example, > so that we can see which error you get? Because if you get an error and > an empty file, an error must be in the tryCatcb block. Here are two blocks that differ in using tryCatch. The first produces an empty, malformed pdf. The second produces a valid pdf. If you comment out the `invisible()' line in the first, then both will produce similar valid pdf's. #+header: :file nada.pdf #+header: :results output graphics #+header: :width 4 :height 3 #+begin_src R require(ggplot2) df <- data.frame(gp = factor(rep(letters[1:3], each = 10)), y = rnorm(30)) ggplot(df, aes(x = gp, y = y)) + geom_point() invisible() #+end_src #+BEGIN_SRC R :results output require(ggplot2) pdf(file="aok.pdf",width=4,height=3) df <- data.frame(gp = factor(rep(letters[1:3], each = 10)), y = rnorm(30)) ggplot(df, aes(x = gp, y = y)) + geom_point() invisible() dev.off() #+END_SRC HTH, Chuck