-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 01/20/14, 19:38 , Eric Schulte wrote: >> >> I will check it a little bit longer and see that I can display >> the error message in the dummy graphic. Should have it by >> tomorrow. >> > > Sounds good. Alternately, maybe you could get the R process to > fail and print an error to STDERR so that the export will stop > immediately and inform the user of the error. I think it is better to catch the error and return with the computations in the next block, because 1) a code block which produces a graph is most often an end point, i.e. further blocks should (as I see it) not rely on the output of this block 2) if the export continues, one can fix more then one error at a time, so being more efficient. 3) If the export continues, it makes it possible to use this to create placeholder graphs: #+begin_src R :file TheFantasticGraph.pdf :results graphics stop("This is a placeholder for a new fantastic graph" #+end_src Where TheFantasticGraph will display the message "This is a placeholder for a new fantastic graph". I have now added the error to the normal R output in addition to a graph, but the export is not canceled. > >> >> I'll send you the patch then. >> > > Sounds great, thanks. OK - here it is attached (my first patch to org :-) ) - let me know if it is OK. > >> >> This is the first time I really work with patches - I assume >> "git diff" will give me the patch you need? >> > > The best would be to create the patch with git format-patch, see > http://orgmode.org/worg/org-contribute.html#sec-4-2. > > If the patch changes more than 10 lines, you'll need to fill out > the FSF copyright assignment paperwork. It is two lines, but it might be worth considering to d=o the paperwork, as I am thinking about doing some other things on ob-R.el > > Thanks, My pleasure, Rainer > >> >> Cheers, >> >> Rainer >> >>> >>> Thanks, >>> >>>> >>>> If somebody could look if this makes sense? (defun >>>> org-babel-expand-body:R (body params &optional >>>> graphics-file) "Expand BODY according to PARAMS, return the >>>> expanded body." (let ((graphics-file (or graphics-file >>>> (org-babel-R-graphical-output-file params)))) (mapconcat >>>> #'identity (let ((inside (append (when (cdr (assoc :prologue >>>> params)) (list (cdr (assoc :prologue params)))) >>>> (org-babel-variable-assignments:R params) (list body) (when >>>> (cdr (assoc :epilogue params)) (list (cdr (assoc :epilogue >>>> params))))))) (if graphics-file (append (list >>>> (org-babel-R-construct-graphics-device-call graphics-file >>>> params)) inside ;; my edits (list >>>> "},error=function(e){plot(-1:1, -1:1, type='n'); >>>> text(0,0,'DUMMY')}); dev.off()")) inside)) ;; end "\n"))) >>>> >>>> >>>> >>>> and >>>> >>>> (format "%s(%s=\"%s\"%s%s%s); tryCatch({" device filearg >>>> out-file args (if extra-args "," "") (or extra-args "")))) >>>> >>>> in org-babel-R-construct-graphics-device-call >>>> >>>> It is working with the Dummy. >>>> >>>> Could somebody please check if this is working? >>>> >>>> I am leaving my changes and will see during my work if it is >>>> fine. >>>> >>>> Cheers, >>>> >>>> Rainer >>>> >>>> >>>>> >>>>>> >>>>>> If the code block which should create the graph would be >>>>>> wrapped into a try() block, so that it would look like >>>>>> the following: >>>>>> >>>>>> try( { pdf("./Correlation_1.pdf") IFN.mean <- >>>>>> load.IFN.mean() grid <- load.grid.CASTANEA.average() >>>>>> image(IFN.mean) } ) dev.off() >>>>>> >>>>>> The device would be closed even if an error occurred >>>>>> during the execution of the code. >>>>>> >>>>>> But still, when exporting to pdf, the call to pdflatex >>>>>> fails as only a empty pdf is available. So it becomes >>>>>> necessary to go through the pdf log to identify the >>>>>> graphs which failed. >>>>>> >>>>>> In this case it would be useful, to have a placeholder >>>>>> grah in the final pdf, so that one can see which graphs >>>>>> did not work. >>>>>> >>>>>> In addition, this could be used as placeholders (well - >>>>>> they are placeholders) for to be created graphs, while >>>>>> the text has already been written. >>>>>> >>>>>> So my second suggestion would be to include a >>>>>> placeholder image, which would be used if the generation >>>>>> of the actual graph fails. It would be great (but not >>>>>> necessary) if the actual error message would be in the >>>>>> image. >>>>> >>>>> Such an place holder image would be great, indeed. >>>>> >>>>> >>>>> Thanks for bringing this up! >>>>> >>>>> Regards, Andreas >>>>> >>>>> >>>> >>>> -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc >>>> (Conservation Biology, UCT), Dipl. Phys. (Germany) >>>> >>>> Centre of Excellence for Invasion Biology Stellenbosch >>>> University South Africa >>>> >>>> Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 >>>> 62 59 98 Fax : +33 - (0)9 58 10 27 44 >>>> >>>> Fax (D): +49 - (0)3 21 21 25 22 44 >>>> >>>> email: Rainer@krugs.de >>>> >>>> Skype: RMkrug >>> >> >> -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc >> (Conservation Biology, UCT), Dipl. Phys. (Germany) >> >> Centre of Excellence for Invasion Biology Stellenbosch >> University South Africa >> >> Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 >> 59 98 Fax : +33 - (0)9 58 10 27 44 >> >> Fax (D): +49 - (0)3 21 21 25 22 44 >> >> email: Rainer@krugs.de >> >> Skype: RMkrug > - -- Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation Biology, UCT), Dipl. Phys. (Germany) Centre of Excellence for Invasion Biology Stellenbosch University South Africa Tel : +33 - (0)9 53 10 27 44 Cell: +33 - (0)6 85 62 59 98 Fax : +33 - (0)9 58 10 27 44 Fax (D): +49 - (0)3 21 21 25 22 44 email: Rainer@krugs.de Skype: RMkrug -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEcBAEBAgAGBQJS3kNyAAoJENvXNx4PUvmCZXkIAMLm2LTuB8/FFZidI12yRhuF N90DVeqYYcHpsJYTIk74W3EX2Wj6p4zjH84TXsVRUc3CRnh2EploU7MTYbdxtshC VLTLsKxgfX8FKXz78ADeUqFmOL6KkJihS+P09mrkqwzq652YvGKbw3H0NLwQDfnR Dp4K3wwYfArFtteCPNgZjBcUVgKF5guyfpEvdYEroR7bJ2wHp4FCaQuaKGXxIPfk oXDDwiIjM7+cboZ4Nub6JnSu48GjTKbP0IkP81ejGpgl4JdE447Z13ikvRAeWfL1 dbWbL0aQSmdpeg/3M21Os9XtOcSesD21ueHUW5sblfAIAjIZRDpW++2jfCA6hS0= =Hro3 -----END PGP SIGNATURE-----