John Hendy <jw.he...@gmail.com> writes: > On Mon, May 28, 2012 at 6:35 PM, Thomas S. Dye <t...@tsdye.com> wrote: >> John Hendy <jw.he...@gmail.com> writes: >> >>> On Mon, May 28, 2012 at 4:32 PM, Thomas S. Dye <t...@tsdye.com> wrote: >>>> John Hendy <jw.he...@gmail.com> writes: >>>> >>>>> I've only ever used src blocks to make plots or create files to >>>>> include. I have my first opportunity to actually try and include both >>>>> code and results and have a question about spacing. You won't have my >>>>> data, but this is pretty simple stuff.: >>>>> >>>>> #+begin_src R :session basic :results output :exports both >>>>> nrow(data) >>>>> #+end_src >>>>> #+begin_src R :session basic :results output :exports both >>>>> nrow(nonzero.data) >>>>> #+end_src >>>>> >>>>> I split them up because I wanted the results like so: >>>>> >>>>> Code-A >>>>> Results-A >>>>> Code-B >>>>> Results-B >>>>> >>>>> If I kept them together, it came out Code-A, Code-B, then Results-A, >>>>> Results-B. >>>>> >>>>> Anyway, the LaTeX output is creating the following: >>>>> >>>>> \begin{verbatim} >>>>> nrow(data) >>>>> \end{verbatim} >>>>> >>>>> \begin{verbatim} >>>>> [1] 681 >>>>> \end{verbatim} >>>>> >>>>> \begin{verbatim} >>>>> nrow(nonzero.data) >>>>> \end{verbatim} >>>>> >>>>> \begin{verbatim} >>>>> [1] 455 >>>>> \end{verbatim} >>>>> >>>>> This gives really, really spaced out results. I'd prefer output that >>>>> looks more like an R terminal output, which can be done by not putting >>>>> code and results in separate verbatim blocks. Is this standard >>>>> spacing/behavior or is there an option/exporter tweak I can use on >>>>> this? It just ends up taking so much space. >>>>> >>>>> I'm super new to this and barely know anything about the header >>>>> arguments at all. I will say I was thrilled to find out about the >>>>> :session option. I was worried about "walking through code" because I >>>>> rely on initial block results to carry through to the others. What do >>>>> you know? There's a way to do that :) Thanks for this wonderful >>>>> implementation. I've seen it come up on the list hundreds of time and >>>>> have to say it's really cool actually getting to work with it! >>>>> >>>>> >>>>> Best regards, >>>>> John >>>>> >>>>> >>>> Hi John, >>>> >>>> One way to do this would be to redefine the verbatim environment in >>>> LaTeX. There is a fancyvrb package for LaTeX that might help with this. >>>> >>>> I think a better answer to your query has two parts. >>> >>> Thanks for the input! >>> >>>> >>>> 1) Make Org-mode distinguish your code and results, instead of having >>>> them both be verbatim environments. One way to do this would be to use >>>> listings or minted to typeset the source code blocks: see >>>> http://orgmode.org/worg/org-tutorials/org-latex-export.html#sec-12. >>>> >>>> Then use :wrap foo to wrap the results in a foo environment. >>>> >>> >>> So... foo could be verbatim or something like that shaded example in >>> the worg tutorial above? I'm thinking the code and results would still >>> be in different environments when the PDF is generated, right? You're >>> just suggesting that I put them in an environment that doesn't insert >>> so much white space? >>> >> You'll probably have to create a LaTeX environment that doesn't insert so >> much white space. Best to do this with a new environment, rather than >> redefining one of the existing LaTeX environments, IMHO. >> >> The white space problem is something to correct at the LaTeX step, after >> Org-mode has wrapped the blocks in semantically meaningful environments. >> > > I took a look at this and have managed to modify that example to tweak > the R blocks. How do I pick up the results, though? LaTeX is still > putting them in verbatim and I don't see how the listings package > could know what Org-mode babel is doing as it's not really "source > code" at that point in some sort of language? > > Also, yes, I didn't have org-special-blocks enabled, hence it not > allowing me to create custom #+begin_... blocks. > > > Thanks! > John > Hi John,
Yes, you're right, listings won't touch the results. To have Org-mode put the results in an environment of your choosing, do this (note the :wrap keyword): #+begin_src R :session basic :results output :exports both :wrap foo nrow(nonzero.data) #+end_src This should give you #+BEGIN_foo ... #+END_foo If you also have lines like this, then you should see something in the pdf file. #+LaTeX_HEADER: \usepackage{framed} #+LaTeX_HEADER: \usepackage{xcolor} #+LaTeX_HEADER: \definecolor{shadecolor}{gray}{.95} #+LaTeX_HEADER: \newenvironment{foo}{\begin{shaded}}{\end{shaded}} All the best, Tom >> hth, >> Tom >> >>>> 2) Configure LaTeX to typeset the new environments in a way that pleases >>>> you. LaTeX specifies for each environment the space to leave before it >>>> and after it. You should be able to set these so the results please >>>> you. Here is one example for how to modify the results block: >>>> http://orgmode.org/worg/org-tutorials/org-latex-export.html#sec-10-2. >>>> Note that this was written for an earlier version of Org-mode, before >>>> results blocks were stored in drawers. Instead of "results" use "foo". >>>> >>> >>> It will take me a while to figure all of this out. I don't know either >>> of these packages! >>> >>>> You'll need to consult the listings or minted packages to configure one >>>> of them. >>>> >>>> In effect, you will be taking advantage of LaTeX's semantic markup. >>> >>> Thanks again! I'll have a look into this this week. >>> >>> John >>> >>>> >>>> hth, >>>> Tom >>>> -- >>>> Thomas S. Dye >>>> http://www.tsdye.com >>> >> >> -- >> T.S. Dye & Colleagues, Archaeologists >> 735 Bishop St, Suite 315, Honolulu, HI 96813 >> Tel: 808-529-0866, Fax: 808-529-0884 >> http://www.tsdye.com -- T.S. Dye & Colleagues, Archaeologists 735 Bishop St, Suite 315, Honolulu, HI 96813 Tel: 808-529-0866, Fax: 808-529-0884 http://www.tsdye.com