emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
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

  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).