From mboxrd@z Thu Jan 1 00:00:00 1970 From: John Hendy Subject: Re: Exporting via babel to LaTeX Date: Mon, 28 May 2012 22:46:45 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([208.118.235.92]:39654) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SZDOU-0004ih-NB for emacs-orgmode@gnu.org; Mon, 28 May 2012 23:46:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SZDOS-0001P9-Cv for emacs-orgmode@gnu.org; Mon, 28 May 2012 23:46:50 -0400 Received: from mail-bk0-f41.google.com ([209.85.214.41]:56973) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SZDOR-0001O6-Vx for emacs-orgmode@gnu.org; Mon, 28 May 2012 23:46:48 -0400 Received: by bkcjm19 with SMTP id jm19so3226201bkc.0 for ; Mon, 28 May 2012 20:46:45 -0700 (PDT) In-Reply-To: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: "Thomas S. Dye" Cc: emacs-orgmode On Mon, May 28, 2012 at 10:29 PM, Thomas S. Dye wrote: > John Hendy writes: > >> On Mon, May 28, 2012 at 6:35 PM, Thomas S. Dye wrote: >>> John Hendy writes: >>> >>>> On Mon, May 28, 2012 at 4:32 PM, Thomas S. Dye wrote: >>>>> John Hendy 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 bot= h >>>>>> code and results and have a question about spacing. You won't have m= y >>>>>> 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} >>>>>> =C2=A0[1] 681 >>>>>> \end{verbatim} >>>>>> >>>>>> \begin{verbatim} >>>>>> nrow(nonzero.data) >>>>>> \end{verbatim} >>>>>> >>>>>> \begin{verbatim} >>>>>> =C2=A0[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 putti= ng >>>>>> 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 d= o >>>>>> 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 an= d >>>>>> 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. =C2=A0There is a fancyvrb package for LaTeX that might help wi= th 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. =C2=A0One 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. =C2=A0Best 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, afte= r >>> 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. =C2=A0To have Org-mo= de > 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 > =C2=A0nrow(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}} > Ahhh. Now I get it. That's brilliant! Why can't we just have =3D:wrap foo=3D apply to the source blocks as well? That would solve all my problems :) For a simple tweak, it seems much easier to have universal syntax like :wrap vs. having to define language specific listings/minting options to make this work. On the other hand, I think I get the benefit listings/minting have for those who do this a lot more than me. Set it once, then forget it. For someone who just likes to tweak the look of all source blocks though... a :wrap argument would be fantastic -- set it on a per-document basis in Org and you're set. Sincere thanks for your explanations and assistance! John > All the best, > Tom > >>> hth, >>> Tom >>> >>>>> 2) Configure LaTeX to typeset the new environments in a way that plea= ses >>>>> you. LaTeX specifies for each environment the space to leave before i= t >>>>> and after it. =C2=A0You should be able to set these so the results pl= ease >>>>> you. =C2=A0Here 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. =C2=A0Instead 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 o= ne >>>>> 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