* [babel] language support
@ 2009-10-17 17:44 Thomas S. Dye
2009-10-17 18:41 ` Eric Schulte
0 siblings, 1 reply; 3+ messages in thread
From: Thomas S. Dye @ 2009-10-17 17:44 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1.1: Type: text/plain, Size: 1607 bytes --]
Aloha all,
Is it possible (or would it be useful) to leverage the literate
programming facilities of org-babel to write LaTeX code?
I'd like to weave a document that describes how some thesis/idea/story
can be developed/elaborated/told and then tangle an instance of
'developed thesis'/'elaborated idea'/'told story' that LaTeX can make
presentable. The motivation for this is a desire to have one source
document that will tangle 1) a slide presentation via beamer, and 2) a
print document for publication. The two share a common organization/
structure/plot but there are radically different presentation mode
constraints.
Org-mode is a terrific tool for organizing, structuring, and
plotting. Org-babel seems to be a likely candidate for abstracting
the different presentation modes.
Here is some pseudo-code for illustration:
* Idea 1
#+srcname: beamer-idea-1
#+begin_src latex :exports none
\begin{itemize}
\item first concept
\item second concept
\end{itemize}
#+end_src
#+srcname: latex-idea-1
#+begin_src latex :exports none
The first concept was developed by \citet{author1}. It later became
the basis for the second concept \citep{author2}. ...
#+end_src
#+srcname: beamer-presentation
#+begin_src latex :tangle beamer-thesis :exports none
# <<beamer-idea-1>>
# <<beamer-idea-2>>
...
#+end_src
#+srcname: latex-presentation
#+begin_src latex :tangle latex-thesis :exports none
# <<latex-idea-1>>
# <<latex-idea-2>>
...
#+end_src
Tom
Thomas S. Dye, Ph.D.
T. S. Dye & Colleagues, Archaeologists, Inc.
Phone: (808) 529-0866 Fax: (808) 529-0884
http://www.tsdye.com
[-- Attachment #1.2: Type: text/html, Size: 8268 bytes --]
[-- Attachment #2: Type: text/plain, Size: 204 bytes --]
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [babel] language support
2009-10-17 17:44 [babel] language support Thomas S. Dye
@ 2009-10-17 18:41 ` Eric Schulte
2009-10-17 19:52 ` Thomas S. Dye
0 siblings, 1 reply; 3+ messages in thread
From: Eric Schulte @ 2009-10-17 18:41 UTC (permalink / raw)
To: Thomas S. Dye; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 638 bytes --]
Hi Tom,
I certainly believe what you describe should be possible, although it
pains me to imagine embedding pure latex code in an Org-mode document
and losing the ability to use the org latex export helpers :), but I
digress.
Org-babel needs to be told to recognize latex source code blocks and how
they should be tangled, which can be accomplished with the following
(org-babel-add-interpreter "latex")
(add-to-list 'org-babel-tangle-langs '("latex" "tex"))
Once that is done `org-babel-tangle' should do the trick.
for example, after evaluating the above I was able to tangle the
following .org file into the following .tex file.
[-- Attachment #2: babel-latex.org --]
[-- Type: application/octet-stream, Size: 525 bytes --]
#+TITLE: babel-tangling
#+OPTIONS: num:nil ^:nil
#+LaTeX_CLASS: normal
* top level
** and some more
#+srcname: latex-idea-1
#+begin_src latex :tangle none
\item first concept
\item second concept
#+end_src
#+srcname: latex-idea-2
#+begin_src latex :tangle none
The first concept was developed by \citet{author1}. It later became
the basis for the second concept \citep{author2}. ...
#+end_src
#+begin_src latex :tangle latex-thesis :exports none
% <<latex-idea-1>>
% <<latex-idea-2>>
#+end_src
[-- Attachment #3: latex-thesis.tex --]
[-- Type: application/x-tex, Size: 330 bytes --]
[-- Attachment #4: Type: text/plain, Size: 2046 bytes --]
Hope this suits your needs. Cheers -- Eric
"Thomas S. Dye" <tsd@tsdye.com> writes:
> Aloha all,
>
> Is it possible (or would it be useful) to leverage the literate programming facilities of org-babel to
> write LaTeX code?
>
> I'd like to weave a document that describes how some thesis/idea/story can be developed/elaborated/told
> and then tangle an instance of 'developed thesis'/'elaborated idea'/'told story' that LaTeX can make
> presentable. The motivation for this is a desire to have one source document that will tangle 1) a slide
> presentation via beamer, and 2) a print document for publication. The two share a common organization/
> structure/plot but there are radically different presentation mode constraints.
>
> Org-mode is a terrific tool for organizing, structuring, and plotting. Org-babel seems to be a likely
> candidate for abstracting the different presentation modes.
>
> Here is some pseudo-code for illustration:
>
> * Idea 1
>
> #+srcname: beamer-idea-1
>
> #+begin_src latex :exports none
>
> \begin{itemize}
>
> \item first concept
>
> \item second concept
>
> \end{itemize}
>
> #+end_src
>
> #+srcname: latex-idea-1
>
> #+begin_src latex :exports none
>
> The first concept was developed by \citet{author1}. It later became the basis for the second concept \citep{author2}. ...
>
> #+end_src
>
> #+srcname: beamer-presentation
>
> #+begin_src latex :tangle beamer-thesis :exports none
>
> # <<beamer-idea-1>>
>
> # <<beamer-idea-2>>
>
> ...
>
> #+end_src
>
> #+srcname: latex-presentation
>
> #+begin_src latex :tangle latex-thesis :exports none
>
> # <<latex-idea-1>>
>
> # <<latex-idea-2>>
>
> ...
>
> #+end_src
>
> Tom
>
> Thomas S. Dye, Ph.D.
>
> T. S. Dye & Colleagues, Archaeologists, Inc.
>
> Phone: (808) 529-0866 Fax: (808) 529-0884
>
> http://www.tsdye.com
>
> _______________________________________________
> Emacs-orgmode mailing list
> Remember: use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
[-- Attachment #5: Type: text/plain, Size: 204 bytes --]
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [babel] language support
2009-10-17 18:41 ` Eric Schulte
@ 2009-10-17 19:52 ` Thomas S. Dye
0 siblings, 0 replies; 3+ messages in thread
From: Thomas S. Dye @ 2009-10-17 19:52 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1.1: Type: text/plain, Size: 4090 bytes --]
Hi Eric,
Wonderful! I look forward to using this new tool. Thank you.
If it eases your pain :), I don't plan to ignore the org latex export
helpers. I'd like to produce a "reproducible research" document (as
LaTeX/pdf and/or html) that includes descriptions of data collection,
analysis, results, *and* presentation (as both conference paper and
publication). Given my current toolbox, the document might contain
source code chunks in SQL, R, Python, and LaTeX. The latex export
helpers (and html export helpers) will have a role in producing the
"reproducible research" document, which can have a relatively simple
structure, but the helpers won't be called on to abstract the full
complexity of LaTeX (or at least that large portion required to
achieve some particular publication standard).
At this point, I don't fully comprehend the possible paths to this
end, especially in comparison to the capabilities of others on this
list, and comments or suggestions are most welcome.
All the best,
Tom
Thomas S. Dye, Ph.D.
T. S. Dye & Colleagues, Archaeologists, Inc.
Phone: (808) 529-0866 Fax: (808) 529-0884
http://www.tsdye.com
On Oct 17, 2009, at 8:41 AM, Eric Schulte wrote:
> Hi Tom,
>
> I certainly believe what you describe should be possible, although it
> pains me to imagine embedding pure latex code in an Org-mode document
> and losing the ability to use the org latex export helpers :), but I
> digress.
>
> Org-babel needs to be told to recognize latex source code blocks and
> how
> they should be tangled, which can be accomplished with the following
>
> (org-babel-add-interpreter "latex")
> (add-to-list 'org-babel-tangle-langs '("latex" "tex"))
>
> Once that is done `org-babel-tangle' should do the trick.
>
> for example, after evaluating the above I was able to tangle the
> following .org file into the following .tex file.
>
> <babel-latex.org><latex-thesis.tex>
>
> Hope this suits your needs. Cheers -- Eric
>
> "Thomas S. Dye" <tsd@tsdye.com> writes:
>
>> Aloha all,
>>
>> Is it possible (or would it be useful) to leverage the literate
>> programming facilities of org-babel to
>> write LaTeX code?
>>
>> I'd like to weave a document that describes how some thesis/idea/
>> story can be developed/elaborated/told
>> and then tangle an instance of 'developed thesis'/'elaborated
>> idea'/'told story' that LaTeX can make
>> presentable. The motivation for this is a desire to have one
>> source document that will tangle 1) a slide
>> presentation via beamer, and 2) a print document for publication.
>> The two share a common organization/
>> structure/plot but there are radically different presentation mode
>> constraints.
>>
>> Org-mode is a terrific tool for organizing, structuring, and
>> plotting. Org-babel seems to be a likely
>> candidate for abstracting the different presentation modes.
>>
>> Here is some pseudo-code for illustration:
>>
>> * Idea 1
>>
>> #+srcname: beamer-idea-1
>>
>> #+begin_src latex :exports none
>>
>> \begin{itemize}
>>
>> \item first concept
>>
>> \item second concept
>>
>> \end{itemize}
>>
>> #+end_src
>>
>> #+srcname: latex-idea-1
>>
>> #+begin_src latex :exports none
>>
>> The first concept was developed by \citet{author1}. It later
>> became the basis for the second concept \citep{author2}. ...
>>
>> #+end_src
>>
>> #+srcname: beamer-presentation
>>
>> #+begin_src latex :tangle beamer-thesis :exports none
>>
>> # <<beamer-idea-1>>
>>
>> # <<beamer-idea-2>>
>>
>> ...
>>
>> #+end_src
>>
>> #+srcname: latex-presentation
>>
>> #+begin_src latex :tangle latex-thesis :exports none
>>
>> # <<latex-idea-1>>
>>
>> # <<latex-idea-2>>
>>
>> ...
>>
>> #+end_src
>>
>> Tom
>>
>> Thomas S. Dye, Ph.D.
>>
>> T. S. Dye & Colleagues, Archaeologists, Inc.
>>
>> Phone: (808) 529-0866 Fax: (808) 529-0884
>>
>> http://www.tsdye.com
>>
>> _______________________________________________
>> Emacs-orgmode mailing list
>> Remember: use `Reply All' to send replies to the list.
>> Emacs-orgmode@gnu.org
>> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
[-- Attachment #1.2: Type: text/html, Size: 10516 bytes --]
[-- Attachment #2: Type: text/plain, Size: 204 bytes --]
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-10-17 19:52 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-17 17:44 [babel] language support Thomas S. Dye
2009-10-17 18:41 ` Eric Schulte
2009-10-17 19:52 ` Thomas S. Dye
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.