emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Exporting via babel to LaTeX


From: Thomas S. Dye
Subject: Re: [O] Exporting via babel to LaTeX
Date: Mon, 28 May 2012 17:29:29 -1000

John Hendy <address@hidden> writes:

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]