[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Re: [Babel] Can't export to LaTeX anymore (args-out-of-range 0
From: |
Sébastien Vauban |
Subject: |
[Orgmode] Re: [Babel] Can't export to LaTeX anymore (args-out-of-range 0 0) |
Date: |
Tue, 21 Sep 2010 22:54:21 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) |
Hi Eric,
"Eric Schulte" wrote:
> Sébastien Vauban <address@hidden> writes:
>> "Eric Schulte" wrote:
>>> [...]
>>> #+srcname: subject
>>> #+begin_src org :results org replace :noweb yes
>>> Composing letters using *Org mode* and the LaTeX isodoc class
>>>
>>> <<me>>
>>> #+end_src
>>
>> Question: =:results org replace= (instead of =:results org=) is necessary
>> if we wanna see the results expanded in the Org buffer, on key =C-c C-v
>> C-e=. Why?
>
> by default org mode blocks do not insert their results, this was due to
> their initial use to wrap results of code blocks. This can be changed in
> your personal configuration by customizing the value of the
> `org-babel-default-header-args:org' variable.
OK. Clear.
>> Asking for Org results, as you mentioned, made me dream about a direct
>> export to PDF on =C-c C-v C-e=. However, when the Org results block
>> =letter= is surrounded by LaTeX code, items and tables aren't translated
>> anymore to their LaTeX counterparts.
>
> true, your outer-most block would have to be an org-mode block, which could
> include LaTeX sections if they were already surrounded in begin/end_latex
> blocks.
Never thought about having blocks *inside* blocks...
Tried things such as the following:
--8<---------------cut here---------------start------------->8---
#+OPTIONS: H:3 num:nil toc:nil
#+LaTeX_CLASS: isodoc
#+LaTeX_HEADER: \setupdocument{
#+LaTeX_HEADER: to = {%
#+LaTeX_HEADER: Org mode user group \\
#+LaTeX_HEADER: World Wide Web
#+LaTeX_HEADER: },
#+LaTeX_HEADER: subject = {Composing letters using Org mode and the
\LaTeX{} isodoc class},
#+LaTeX_HEADER: opening = {Dear Org mode users},
#+LaTeX_HEADER: closing = {Yours Truly}
#+LaTeX_HEADER: }
#+source: contents
#+begin_src org :results silent :exports none
My body includes a list:
- one
- two
and a small table:
| here | second |
| other | last |
Not more.
#+end_src
#+BEGIN_SRC org
#+BEGIN_LaTeX
\letter{%
#+END_LaTeX
#+srcname: letter
#+begin_src org :results raw :noweb yes
Composing letters using *Org mode* and the LaTeX isodoc class
<<contents>>
#+end_src
#+BEGIN_LaTeX
}
#+END_LaTeX
#+END_SRC
--8<---------------cut here---------------end--------------->8---
> It may not be possible to export directly to a latex letter using Org-mode's
> build latex exporter. I think the tangling solution you mention below may be
> preferable.
I'm approaching, but am not still where I need to be: the =#+END_SRC= does not
seem to be correctly nested... The inner one gets related to the outer
=#+BEGIN_SRC=.
>> Then, if I understand correctly, the only fallback is the tangling
>> solution:
>
> agreed.
>
>> Here, the above results is perfectly translated into LaTeX. But trying to
>> export this buffer raises the =Args out of range: 0, 0= error.
>
> This is the same error we discovered earlier, namely trying to export the
> body of an Org-mode block to latex in the middle of a latex export. I've
> pushed up a more useful error message.
Yes. I was re-injecting previous results, to make the overview complete.
>> The solution is to tangle it, and launch pdflatex on the tangled file.
>
> agreed. BTW: I've just pushed up a code block to the library of babel which
> makes it possible to include headlines into noweb exports. I imagine this
> would be very useful when composing letters in this manner. See the email
> where I initially mention this
> http://thread.gmane.org/gmane.emacs.orgmode/29926/focus=30667
Thanks.
>> - Couldn't =C-c C-v C-e= tangle to files, when the =tangle= parameter is
>> present? FYI, I've lost some amount of time (won't tell you how much, I'm
>> ashamed) thinking that the tangling process did not work anymore on my
>> machine, because I was expecting it on =C-c C-v C-e=. At my discharge, I
>> only used tangling once, a couple of months ago, but...
>>
>> ... and I think I already had once that request in mind, maybe even asked
>> on the list.
>
> =C-c C-v C-e= is already used for executing code blocks, unfortunately
> key-bindings are at a premium, so I don't think it is worth re-binding this
> -- although I do see how you could be confused
I meant: for me, when there is a tangle directive, executing the code block
*is* tangling. Or, at least, tangling should be done at the same time as the
execution.
Maybe, you want to explicitly separate both functions, though.
>> Idealistic goal that I have in mind (so that I share upfront which
>> directions I would enjoy to be able to follow):
>>
>> - be able to produce =isodoc= letter in PDF just by =C-c C-v C-e=
>
> by =C-c C-v C-e= do you mean tangle or execute?
I meant, thus, when executing (here, producing the letter).
>> - next step: be able to produce /mail merge/ ("publiposting"), having in
>> Org the list of recipients and the letter's contents -- both in one
>> unique Org file --, and producing all the letters at once (in one PDF),
>> just by =C-c C-v C-e=...
>
> this shouldn't be impossible with the current setup, maybe use sbe to call a
> code block on every row of a table with the table holding the recipients.
> Certainly wouldn't be trivial though.
I'll try to understand all of this in my next work session...
Thanks for all help provided so far...
Best regards,
Seb
--
Sébastien Vauban