From: tsd@tsdye.com (Thomas S. Dye)
To: John Hendy <jw.hendy@gmail.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: Exporting via babel to LaTeX
Date: Mon, 28 May 2012 17:29:29 -1000 [thread overview]
Message-ID: <m1396j4qcm.fsf@tsdye.com> (raw)
In-Reply-To: <CA+M2ft8AGbk8FpLzdS3Vne9=J_M0hw7ppa9ZA=Bb+O9GoU_r3A@mail.gmail.com> (John Hendy's message of "Mon, 28 May 2012 21:33:17 -0500")
John Hendy <jw.hendy@gmail.com> writes:
> On Mon, May 28, 2012 at 6:35 PM, Thomas S. Dye <tsd@tsdye.com> wrote:
>> John Hendy <jw.hendy@gmail.com> writes:
>>
>>> On Mon, May 28, 2012 at 4:32 PM, Thomas S. Dye <tsd@tsdye.com> wrote:
>>>> John Hendy <jw.hendy@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
next prev parent reply other threads:[~2012-05-29 3:29 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-28 18:48 Exporting via babel to LaTeX John Hendy
2012-05-28 18:56 ` Achim Gratz
2012-05-28 21:32 ` Thomas S. Dye
2012-05-28 23:02 ` John Hendy
2012-05-28 23:35 ` Thomas S. Dye
2012-05-29 2:33 ` John Hendy
2012-05-29 3:29 ` Thomas S. Dye [this message]
2012-05-29 3:46 ` John Hendy
2012-05-29 4:53 ` Thomas S. Dye
2012-05-28 23:10 ` John Hendy
2012-05-28 23:30 ` Thomas S. Dye
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m1396j4qcm.fsf@tsdye.com \
--to=tsd@tsdye.com \
--cc=emacs-orgmode@gnu.org \
--cc=jw.hendy@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).