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