emacs-orgmode
[Top][All Lists]
Advanced

[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 00:10:56 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Hi Eric and all the others,

"Eric Schulte" wrote:
> Sébastien Vauban <address@hidden> writes:
>> "Eric Schulte" wrote:
>>>> The error occurs with such a simple document:
>>>>
>>>> #+TITLE:     Org-isodoc
>>>> #+LANGUAGE:  en_US
>>>>
>>>> * Context
>>>>
>>>> This is a letter sample.
>>>>
>>>> * Subject
>>>> #+srcname: subject
>>>> #+begin_src org :results latex
>>>> Composing letters using Org mode and the LaTeX isodoc class
>>>> #+end_src
>>>
>>> This is a tricky problem indeed. [...] This fix will probably take some
>>> time to implement, and until then I don't think it will be possible to
>>> evaluate org-mode blocks during export.
>
> Noweb expansion is still possible, however explicitly performing the export
> is not.
>
>> What could be a workaround?
>
> Simply change =:results latex= to =:results org= and the code block body
> will be harmlessly expanded and deposited in the org buffer on export, then
> carried along with the rest of the file for export.
>
> * Subject
> #+source: me
> #+begin_src org
>   I am *eric*.
> #+end_src
>
> #+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?

Trying to build on the route you mention, I come up with different solutions,
such as:

--8<---------------cut here---------------start------------->8---
#+TITLE:     Org-isodoc
#+AUTHOR:    Seb Vauban
#+DATE:      2010-09-20

* COMMENT Parameters

#+source: contents
#+begin_src org
My body includes a list:

- one
- two

and a small table:

| first | second |
| other | last   |

Not more.
#+end_src

#+srcname: letter
#+begin_src org :results org replace :noweb yes
Composing letters using *Org mode* and the LaTeX isodoc class

<<contents>>
#+end_src

* Results

#+LaTeX: \documentclass[11pt]{isodoc}
#+LaTeX: \usepackage[utf8x]{inputenc}
#+LaTeX: \usepackage[T1]{fontenc}

#+LaTeX: \setupdocument{
#+LaTeX:     to = {Eric},
#+LaTeX:     subject = {Tough to understand what to do...},
#+LaTeX:     opening = {Hi},
#+LaTeX:     closing = {Best}
#+LaTeX: }

#+LaTeX: \begin{document}
#+LaTeX: {}\letter{%

#+results: letter
#+BEGIN_SRC org
Composing letters using *Org mode* and the LaTeX isodoc class

My body includes a list:

- one
- two

and a small table:

| first | second |
| other | last   |

Not more.
#+END_SRC

#+LaTeX: }
#+LaTeX: \end{document}
--8<---------------cut here---------------end--------------->8---

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.

OK, even if it doe, I still have a couple of problems to resolve:

- How to avoid generating the title of the exported headline (=* Results=)?
- How to impose my =documentclass isodoc= instead of =article=?

and maybe more.

Then, if I understand correctly, the only fallback is the tangling solution:

--8<---------------cut here---------------start------------->8---
* Letter
  :PROPERTIES:
  :ID:       02360e5c-8f76-4e6d-a98f-b8c5fa2a3da4
  :END:

#+source: body
#+begin_src org :results latex
My body includes a list:

- one
- two

and a small table:

| first | second |
| other | last   |

Not more.
#+end_src

#+begin_src latex :noweb yes :tangle yes
\documentclass[11pt]{isodoc}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}

\setupdocument{
    to = {Eric},
    subject = {Tough to understand what to do...},
    opening = {Hi},
    closing = {Best}
}

\begin{document}
\letter{%
<<body()>>
}
\end{document}
#+end_src

#+results:
#+BEGIN_LaTeX
\documentclass[11pt]{isodoc}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}

\setupdocument{
    to = {Eric},
    subject = {Tough to understand what to do...},
    opening = {Hi},
    closing = {Best}
}

\begin{document}
\letter{%
My body includes a list:

\begin{itemize}
\item one
\item two
\end{itemize}

and a small table:


\begin{center}
\begin{tabular}{ll}
 first  &  second  \\
 other  &  last    \\
\end{tabular}
\end{center}



Not more.

}
\end{document}
#+END_LaTeX
--8<---------------cut here---------------end--------------->8---

Here, the above results is perfectly translated into LaTeX. But trying to
export this buffer raises the =Args out of range: 0, 0= error.

The solution is to tangle it, and launch pdflatex on the tangled file.

Questions:

- Is the above overview right, or am I *still* missing things?

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

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=

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

Thanks for your help (past, present... and future)!

Best regards,
  Seb

-- 
Sébastien Vauban




reply via email to

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