emacs-orgmode
[Top][All Lists]

## Re: [O] Exporting via babel to LaTeX

 From: John Hendy Subject: Re: [O] Exporting via babel to LaTeX Date: Mon, 28 May 2012 21:33:17 -0500

On Mon, May 28, 2012 at 6:35 PM, Thomas S. Dye <address@hidden> wrote:
>
>> On Mon, May 28, 2012 at 4:32 PM, Thomas S. Dye <address@hidden> wrote:
>>>
>>>> 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

> 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