Re: [Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-10 Thread Eric S Fraga
On Wed, 08 Sep 2010 23:26:15 +0200, Sébastien Vauban 
wxhgmqzgw...@spammotel.com wrote:

[...]

 The subject of your letter seems right: tangling is broken; at least
 on my PC.  So I don't understand why it works for you...

Just to add a data point: this works for me with 

: Org-mode version 7.01trans (release_7.01h.493.gece2)
: GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0) of 2010-08-14 on 
raven, modified by Debian

Time to learn isodoc as it looks very useful indeed!

Thanks,
eric
-- 
Eric S Fraga
GnuPG: 8F5C 279D 3907 E14A 5C29  570D C891 93D8 FFFC F67D
___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-10 Thread Sébastien Vauban
Hi Eric,

Eric S Fraga wrote:
 On Wed, 08 Sep 2010 23:26:15 +0200, Sébastien Vauban 
 wxhgmqzgw...@spammotel.com wrote:
 The subject of your letter seems right: tangling is broken; at least on my
 PC. So I don't understand why it works for you...

 Just to add a data point: this works for me with

 : Org-mode version 7.01trans (release_7.01h.493.gece2)
 : GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0) of 2010-08-14 on
 : raven, modified by Debian

Thanks for the info.

But, as said in another posting, it was just me: I was so silly (or tired) to
fallback on the old key binding (C-c C-c) when trying to evaluate the blocks.
Of course, nothing happened...


 Time to learn isodoc as it looks very useful indeed!

I'll document this on Worg during the week-end, hopefully. And insert some
nice examples.

Best regards,
  Seb

-- 
Sébastien Vauban


___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-08 Thread Sébastien Vauban
Hi Eric,

Eric Schulte wrote:
 I look forward to any potential org-letter export this line of
 investigation yields.

As soon as this is closed, I'm willing to write a Worg page for this.

 - because I had not the hope of being able to configure the LaTeX export 
 class
   and/or code in the right way,

 Hmm, I don't know how complex isodoc is to configure, but I'd think that
 defining a custom latex class would be simpler than tangling out LaTeX code
 blocks, however maybe this will change once I've looked at and understood an
 example application.

Isodoc is quite easy to configure, but it's through keyval mappings. I don't
know enough of Org to imagine being able to convert headings and contents to
keys and values, respectively...

That does not mean it really is difficult. Just for me, the only accessible
way remained the Babel route.


 - because, in a way, that's quite logical. Here and there, you define
   stuff. At the end, you just arrange them all in a way that fits well the
   LaTeX class demands.

 Though, it's not just copying, the way Babel actually does with snippets of
 code à la Noweb. Hence, I really need at least the body to be in real Org
 plain code, and be automatically converted to LaTeX, so that I can make use
 of the tables, and all the Org markup.

 I'm sure Babel is able of that, mixing raw code with convertable code. Just
 needs more thinking.

 I've just implemented export of org code blocks to ascii, latex or html,

This is brand new, right?  In any case, the real good solution to such a
problem, IMHO...


 so the following should now (if I understood) allow the tangling
 behavior you've described

 ** tangle org-mode block
 #+source: org-list
 #+begin_src org :results latex
   - one
   - two
   - three
 #+end_src

 #+begin_src emacs-lisp :tangle yes :noweb yes
   
   org-list()
   
 #+end_src

 tangles to


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


 

Here, I just don't understand why you're choosing `emacs-lisp' as target
language for LaTeX code. Is there a reason for this, or just a typo?


 note that the () on the end of the code block name in the noweb syntax
 means to insert the results of evaluating the code block (in this case
 latex) rather than the body of the code block itself.

Understood!  Thanks.

FYI, I've git pulled once again 15 minutes ago (13:30 CET). My repo was
already up-to-date, but your code does not work for me...

_Nothing is tangled anymore_... Not even if I explicitly state
=:tangle AA.tex= for example (with and without quotes ;-)).

*Extract* of what should be tangled:

--8---cut here---start-8---
* Letter
#+begin_src latex :noweb yes :tangle yes
\documentclass[11pt]{isodoc}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{isodoc-style}

\setupdocument{
to = {%
  to()},
subject = {subject()},
opening = {opening()},
closing = {closing()}
}

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

* tangle org-mode block

#+source: org-list
#+begin_src org :results latex
  - one
  - two
  - three
#+end_src

#+begin_src emacs-lisp :tangle yes :noweb yes
  
  org-list()
  
#+end_src
--8---cut here---end---8---

Side note: I now have my green background for Org code (as in
http://www.mygooglest.com/sva/highlight-whole-ines.png), but I've lost all
fontification of source code blocks...

Thanks again and again.

Best regards,
  Seb

-- 
Sébastien Vauban


___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-08 Thread Sébastien Vauban
Hi Jambunathan,

Jambunathan K wrote:
 Honoring spaces would be a pre-requisite if one were to allow org's
 headlines as implicit srcnames.

Or you would have to impose titles without spaces, which is acceptable as well
for such a usage...


 If babel supports headlines as srcnames, without requiring additional
 begin/end directives one could just write,

 * org-list
   - one
   - two
   - three

 #+begin_src emacs-lisp :tangle yes :noweb yes
   
   org-list(:fmt latex)
   
 #+end_src

 and achieve similar results.

 Based on my earlier efforts at letter-writing, I have the following
 observation.

 Letters have a To address and they could be pulled from bbdb. So one
 could say,

 * To
   [[a bbdb link]]


 #+begin_src emacs-lisp :tangle yes :noweb yes
   
   To(:fmt custom)
   
 #+end_src

 The string custom could be a elisp form or a function pointer that takes
 the body of the headline as an argument and does the needful.

 Specifically in the above example, 'custom' handler would visit the bbdb
 record, fetch the address and return the formatted address (with line
 breaks etc etc) as the noweb expansion. [Custom handler would be
 implemented by the user himself]

 Any thoughts on how this could be achieved ...

That's going (really) far... But would that be do-able, waaoow!

Best regards,
  Seb

-- 
Sébastien Vauban


___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-08 Thread Eric Schulte
Hi,

Jambunathan K kjambunat...@gmail.com writes:

 Eric

 Thanks for the changes. I believe I need not work (or for all practical
 purposes set aside) working on letter writing support.

 Jambu Btw, your approach set me thinking. I think there is a strong
 Jambu case for making headlines act as babel srcnames with their body
 Jambu providing content for noweb expansion [3]. This behaviour could
 Jambu be controlled by a buffer local variable.

 Is this suggestion considered and set aside or overlooked? Read on down
 below.


No, I missed this suggestion in the previous post.  This is an
interesting suggestion.  Next time I have time I will but together a
trail implementation to see how naturally this fits into the rest of the
Babel system.  There could be issues (e.g. how to do set header
arguments for the headline).


 Jambu Wondering how babel treats srcnames? Can there be spaces? Is
 Jambu upper and lower cases treated one and the same ...

 Eric Spaces are now allowed, I'm honestly not sure that it will
 Eric successfully distinguish between upper and lower cases in code
 Eric block names (all of mine are lower-case)


I mistyped, Spaces are *not* allowed in code-block names.  However any
implementation of treating headlines as code-block names could
automatically convert between hyphens and spaces.


 Good.

 Honoring spaces would be a pre-requisite if one were to allow org's
 headlines as implicit srcnames. 

 Question on case-handling was intended not as a feature request but more
 on clarity of the behaviour.

 Eric I've just implemented export of org code blocks to ascii, latex or html,
 Eric so the following should now (if I understood) allow the tangling
 Eric behavior you've described
 Eric
 Eric ** tangle org-mode block
 Eric #+source: org-list
 Eric #+begin_src org :results latex
 Eric   - one
 Eric   - two
 Eric   - three
 Eric #+end_src
 Eric
 Eric #+begin_src emacs-lisp :tangle yes :noweb yes
 Eric   
 Eric   org-list()
 Eric   
 Eric #+end_src
 Eric
 Eric tangles to
 Eric
 Eric
 Eric 
 Eric \begin{itemize}
 Eric \item two
 Eric \item three
 Eric \end{itemize}
 Eric
 Eric
 Eric 
 Eric
 Eric note that the () on the end of the code block name in the noweb syntax
 Eric means to insert the results of evaluating the code block (in this case
 Eric latex) rather than the body of the code block itself.

 If babel supports headlines as srcnames, without requiring additional
 begin/end directives one could just write,

 * org-list
   - one
   - two
   - three

 #+begin_src emacs-lisp :tangle yes :noweb yes
   
   org-list(:fmt latex)
   
 #+end_src

 and achieve similar results.


Yes, however the syntax you've used above to pass a header argument to
the org-lisp code block violates the existing noweb syntax.  The place
where you've inserted :fmt latex is reserved for passing regular
arguments to code blocks.


 Based on my earlier efforts at letter-writing, I have the following
 observation.

 Letters have a To address and they could be pulled from bbdb. So one
 could say,

 * To
   [[a bbdb link]]


 #+begin_src emacs-lisp :tangle yes :noweb yes
   
   To(:fmt custom)
   
 #+end_src

 The string custom could be a elisp form or a function pointer that takes
 the body of the headline as an argument and does the needful.

 Specifically in the above example, 'custom' handler would visit the bbdb
 record, fetch the address and return the formatted address (with line
 breaks etc etc) as the noweb expansion. [Custom handler would be
 implemented by the user himself]

 Any thoughts on how this could be achieved ...


There has been discussion of allowing post-processing forms for code
blocks which would take the results of a code block as an argument every
time the code block has been called and whose results would replace the
actual code block results, however this has not yet been implemented.

Best -- Eric


 Jambunathan K.

___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-08 Thread Eric Schulte
Hi Seb,

Sébastien Vauban wxhgmqzgw...@spammotel.com writes:

 Hi Eric,

 Eric Schulte wrote:
 I look forward to any potential org-letter export this line of
 investigation yields.

 As soon as this is closed, I'm willing to write a Worg page for this.

 - because I had not the hope of being able to configure the LaTeX export 
 class
   and/or code in the right way,

 Hmm, I don't know how complex isodoc is to configure, but I'd think that
 defining a custom latex class would be simpler than tangling out LaTeX code
 blocks, however maybe this will change once I've looked at and understood an
 example application.

 Isodoc is quite easy to configure, but it's through keyval mappings. I don't
 know enough of Org to imagine being able to convert headings and contents to
 keys and values, respectively...

 That does not mean it really is difficult. Just for me, the only accessible
 way remained the Babel route.


I see, I just wanted to ensure that wrapping content in code blocks was
a last resort, but I agree using Babel in this way should be much easier
than defining a new Org export backend or mucking with Org-mode
internals.  I'm very happy if Babel can help to further blur the lines
between Org-mode usage and development in this way.


 - because, in a way, that's quite logical. Here and there, you define
   stuff. At the end, you just arrange them all in a way that fits well the
   LaTeX class demands.

 Though, it's not just copying, the way Babel actually does with snippets of
 code à la Noweb. Hence, I really need at least the body to be in real Org
 plain code, and be automatically converted to LaTeX, so that I can make use
 of the tables, and all the Org markup.

 I'm sure Babel is able of that, mixing raw code with convertable code. Just
 needs more thinking.

 I've just implemented export of org code blocks to ascii, latex or html,

 This is brand new, right?  In any case, the real good solution to such a
 problem, IMHO...


Yes this is new, it actually only required a couple of lines of code to
implement.  However that means it may still be buggy.



 so the following should now (if I understood) allow the tangling
 behavior you've described

 ** tangle org-mode block
 #+source: org-list
 #+begin_src org :results latex
   - one
   - two
   - three
 #+end_src

 #+begin_src emacs-lisp :tangle yes :noweb yes
   
   org-list()
   
 #+end_src

 tangles to


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


 

 Here, I just don't understand why you're choosing `emacs-lisp' as target
 language for LaTeX code. Is there a reason for this, or just a typo?


I do all my testing with emacs-lisp code blocks, as their sort of the
simplest (at least for me/Babel) code block.  Once it's working there it
should extend to code blocks in other languages as well.



 note that the () on the end of the code block name in the noweb syntax
 means to insert the results of evaluating the code block (in this case
 latex) rather than the body of the code block itself.

 Understood!  Thanks.

 FYI, I've git pulled once again 15 minutes ago (13:30 CET). My repo was
 already up-to-date, but your code does not work for me...

 _Nothing is tangled anymore_... Not even if I explicitly state
 =:tangle AA.tex= for example (with and without quotes ;-)).


I've taken your excerpt and changed it so that it was tangling
successfully on my system.  The main problem was that there were many
noweb references which pointed to outside of the example.  The following
does work on my system.  Notice that it uses a table to hold the small
components rather than wrapping each in it's own Org-mode block.

--8---cut here---start-8---
* Letter
#+tblname: head
| To  | Eric Schulte   |
| Subject | Tangling is Broken |
| Opening | Hi |
| Closing | Best   |

#+source: body
#+begin_src org :results latex
  - one
  - two
  - three
#+end_src

#+begin_src latex :noweb yes :tangle yes :var h-to=head[0,1] :var 
h-subject=head[1,1] :var h-opening=head[2,1] :var h-closing=head[3,1]
\documentclass[11pt]{isodoc}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{isodoc-style}

\setupdocument{
to = {h-to},
subject = {h-subject},
opening = {h-opening},
closing = {h-closing}
}

\begin{document}
\letter{%
body()
}
\end{document}
#+end_src
--8---cut here---end---8---

There appears to be some lingering issues with converting the org block
to latex, for me the first item in the list was missing, I'll try to
take a look at this later today.  However, hopefully this gets Babel far
enough that at least the structure of an isodoc letter writing solution
can be fleshed out.

Best -- Eric

___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-08 Thread Sébastien Vauban
Hi Eric,

Eric Schulte wrote:
 Sébastien Vauban wxhgmqzgw...@spammotel.com writes:
 Hmm, I don't know how complex isodoc is to configure, but I'd think that
 defining a custom latex class would be simpler than tangling out LaTeX
 code blocks, however maybe this will change once I've looked at and
 understood an example application.

 Isodoc is quite easy to configure, but it's through keyval mappings. I
 don't know enough of Org to imagine being able to convert headings and
 contents to keys and values, respectively...

 That does not mean it really is difficult. Just for me, the only accessible
 way remained the Babel route.

 I see, I just wanted to ensure that wrapping content in code blocks was a
 last resort, but I agree using Babel in this way should be much easier than
 defining a new Org export backend or mucking with Org-mode internals. I'm
 very happy if Babel can help to further blur the lines between Org-mode
 usage and development in this way.

You prove me right, even simplifying the stuff by using a table. Why not using
Babel, then? ;-)

That does not mean I'm not interested by seeing other solutions to this
problem...


 - because, in a way, that's quite logical. Here and there, you define
   stuff. At the end, you just arrange them all in a way that fits well
   the LaTeX class demands.

 Though, it's not just copying, the way Babel actually does with snippets
 of code à la Noweb. Hence, I really need at least the body to be in
 real Org plain code, and be automatically converted to LaTeX, so that I
 can make use of the tables, and all the Org markup.

 I'm sure Babel is able of that, mixing raw code with convertable code.
 Just needs more thinking.

 I've just implemented export of org code blocks to ascii, latex or html,

 This is brand new, right? In any case, the real good solution to such a
 problem, IMHO...

 Yes this is new, it actually only required a couple of lines of code to
 implement.  However that means it may still be buggy.

Maybe. At least, I'm unable to tangle and execute your code since a couple of
hours (this noon, CET).

I've git pulled right now. Same as before...


 so the following should now (if I understood) allow the tangling
 behavior you've described

 Here, I just don't understand why you're choosing `emacs-lisp' as target
 language for LaTeX code. Is there a reason for this, or just a typo?

 I do all my testing with emacs-lisp code blocks, as their sort of the
 simplest (at least for me/Babel) code block. Once it's working there it
 should extend to code blocks in other languages as well.

Clear... Thanks for the precision.


 note that the () on the end of the code block name in the noweb syntax
 means to insert the results of evaluating the code block (in this case
 latex) rather than the body of the code block itself.

 Understood! Thanks.

 FYI, I've git pulled once again 15 minutes ago (13:30 CET). My repo was
 already up-to-date, but your code does not work for me...

 _Nothing is tangled anymore_... Not even if I explicitly state =:tangle
 AA.tex= for example (with and without quotes ;-)).

As said, situation is stayed the same. Of course, I guess you did not have
time yet fixing that, if I can make the assumption you're responsible of the
change in tangle behavior.


 I've taken your excerpt and changed it so that it was tangling successfully
 on my system. The main problem was that there were many noweb references
 which pointed to outside of the example.

Sorry for that. I tried to keep the post as small as possible, knowing that
the other blocks could be find back in the previous post. Not smart from me,
it seems.


 The following does work on my system. Notice that it uses a table to hold
 the small components rather than wrapping each in it's own Org-mode block.

 There appears to be some lingering issues with converting the org block to
 latex, for me the first item in the list was missing, I'll try to take a
 look at this later today. However, hopefully this gets Babel far enough that
 at least the structure of an isodoc letter writing solution can be fleshed
 out.

The subject of your letter seems right: tangling is broken; at least on my PC.
So I don't understand why it works for you...

I can't get anything out anymore of the following:

--8---cut here---start-8---
* From Eric

#+tblname: head
| To  | Eric Schulte   |
| Subject | Tangling is Broken |
| Opening | Hi |
| Closing | Best   |

#+source: h-body
#+begin_src org :results latex
  - one
  - two
  - three
#+end_src

#+begin_src latex :noweb yes :tangle yes :var h-to=head[0,1] :var 
h-subject=head[1,1] :var h-opening=head[2,1] :var h-closing=head[3,1]
\documentclass[11pt]{isodoc}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{isodoc-style}

\setupdocument{
to = {h-to},
subject = {h-subject},
opening = {h-opening},
closing = {h-closing}
}

\begin{document}
\letter{%
h-body()
}

[Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-07 Thread Jambunathan K

Hi Sebastien

Tried out isodoc. I like it. 

I only wish I had started out with this package rather than
scrlttr2. 

The good thing about isodoc is that the default style of 'A simple
letter' in the document [1] is more closer to the convention that is
used here in India. Furthermore package seems 'very recent'.

With scrlttr2 [2], I had invested good amount of time reading through
the manual and tweaking DIN.lco to assigning From, To and Subject lines
to their 'rightful' place. I also felt that the default style was a bit
too gaudy for my taste.

I will have isodoc in mind when I get to work on a patch for letter
writing support in orgmode. The essentials for letter writing support
seem to be the same - setup key, value pairs (with key being a headline
and value being the body) and emit them in a way that is expected by the
underlying package.

I would like to hear why you chose to go down the tangling
path. Personally I feel any sort of markup (this includes babel
directives) distracting.

Btw, your approach set me thinking. I think there is a strong case for
making headlines act as babel srcnames with their body providing content
for noweb expansion [3]. This behaviour could be controlled by a buffer
local variable.

Wondering how babel treats srcnames? Can there be spaces? Is upper and
lower cases treated one and the same ...

Footnotes: 

[1] http://mirror.ctan.org/macros/latex/contrib/isodoc/isodoc.pdf
[2] http://thread.gmane.org/gmane.emacs.orgmode/28012

[3] It is likely the body of the headline might be run through a custom
renderer (say latex, html or even emac's own comment-region) before
finding it's way in to the document generated by tangle.

Thanks once again for referring me to isodoc.

Thanks,
Jambunathan K.

Sébastien Vauban wxhgmqzgwmuf-genee64ty+gs+fvcfc7...@public.gmane.org
writes:

 Hello,

 Based on a thread launched by Jambunathan, I've tried to follow another
 direction, having a huge interest in getting such a thing to work.

 My trial is very border-line, as I tried using Org code blocks. Would these be
 convertable to LaTeX, that would make (or have made) sense.

 Just presenting this to you, in order to receive ideas on how to progress in
 the right direction.

 #+TITLE: Org-isodoc
 #+AUTHOR:Seb Vauban
 #+DATE:  2010-09-07
 #+DESCRIPTION: 
 #+KEYWORDS: 
 #+LANGUAGE:  en_US

 * To
 #+srcname: to
 #+begin_src org
 Org mode user group \\
 World Wide Web
 #+end_src

 * Subject
 #+srcname: subject
 #+begin_src org
 Composing letters using Org mode and the LaTeX isodoc class
 #+end_src

 * Opening
 #+srcname: opening
 #+begin_src org
 Dear Org mode users,
 #+end_src

 * Body
 #+srcname: body
 #+begin_src org
 Following ideas found here, I am trying to use Org for writing LaTeX letters
 at the speed of light.

 The class I'm used to compose with is called isodoc. Very nice. You should try
 it...

 *Problems* encountered /so far/:
 - how to insert properly converted tables (to =LaTeX=)?
   | test | hello |
   | foo  | bar   |
 - begin an Org block, editing this code adds commas in front of every line...

 That's all for now.
 #+end_src

 * Closing
 #+srcname: closing
 #+begin_src org
   Yours Truly
 #+end_src

 * Encl
 #+srcname: encl
 #+begin_src org
 I still have to look at how to declare some attached documents.
 #+end_src

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

 %\usepackage[scorpios]{isodoc-style}
 \usepackage[mygooglest]{isodoc-style}

 \setupdocument{
 to = {%
   to},
 subject = {subject},
 opening = {opening},
 closing = {closing}
 }

 \begin{document}
 \letter{%
 body
 }
 \end{document}
 #+end_src

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

 %\usepackage[scorpios]{isodoc-style}
 \usepackage[mygooglest]{isodoc-style}

 \setupdocument{
 to = {%
   Org mode user group \\
   World Wide Web},
 subject = {Composing letters using Org mode and the LaTeX isodoc class},
 opening = {Dear Org mode users,},
 closing = {Yours Truly}
 }

 \begin{document}
 \letter{%
 Following ideas found here, I am trying to use Org for writing LaTeX letters
 at the speed of light.

 The class I'm used to compose with is called isodoc. Very nice. You should try
 it...

 *Problems* encountered /so far/:
 - how to insert properly converted tables (to =LaTeX=)?
   | test | hello |
   | foo  | bar   |
 - begin an Org block, editing this code adds commas in front of every line...

 That's all for now.
 }
 \end{document}
 #+END_LaTeX

 Best regards,
   Seb

___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-07 Thread Sébastien Vauban
Hi Jambunathan,

Jambunathan K wrote:
 Tried out isodoc. I like it.

Delighted to hear so.

I had tried different packages as well, before, but was always (very)
disappointed by the complexity, as soon as what you want is not what they
made.

With isodoc, everything is quite easily doable, and quite intuitive...


 I only wish I had started out with this package rather than scrlttr2.

 The good thing about isodoc is that the default style of 'A simple letter'
 in the document is more closer to the convention that is used here in
 India. Furthermore package seems 'very recent'.

Yep, last update a couple of months ago.


 I will have isodoc in mind when I get to work on a patch for letter writing
 support in orgmode. The essentials for letter writing support seem to be the
 same - setup key, value pairs (with key being a headline and value being the
 body) and emit them in a way that is expected by the underlying package.

 I would like to hear why you chose to go down the tangling path.

For two reasons:

- because I had not the hope of being able to configure the LaTeX export class
  and/or code in the right way,

- because, in a way, that's quite logical. Here and there, you define stuff.
  At the end, you just arrange them all in a way that fits well the LaTeX
  class demands.

Though, it's not just copying, the way Babel actually does with snippets of
code à la Noweb. Hence, I really need at least the body to be in real Org
plain code, and be automatically converted to LaTeX, so that I can make use of
the tables, and all the Org markup.

I'm sure Babel is able of that, mixing raw code with convertable code. Just
needs more thinking.


 Personally I feel any sort of markup (this includes babel directives)
 distracting.

They're much less distracting as soon as they're properly highlighted.
Question of color-theme. I can provide you (all) with mine, if you're
interested.


 Btw, your approach set me thinking. I think there is a strong case for
 making headlines act as babel srcnames with their body providing content for
 noweb expansion [3]. This behaviour could be controlled by a buffer local
 variable.

That would definitely make sense to me, at least for this particular need.
But, maybe, there is already a parallel way to do such a thing...


 Wondering how babel treats srcnames? Can there be spaces? Is upper and lower
 cases treated one and the same ...

Being a (tiny) part-time Babel user, I wish I could easily answer such
questions. But, as I always try to take as less risks as possible, these are
things I never really looked at.


 Footnotes: 
 [3] It is likely the body of the headline might be run through a custom
 renderer (say latex, html or even emac's own comment-region) before
 finding it's way in to the document generated by tangle.

 Thanks once again for referring me to isodoc.

When someone shares something of value with you and you benefit from it, you
have a moral obligation to share it with others. -- Chinese proverb

I've been as well referred to this excellent package by a friend. Hence, I do
what I have to do...

I now would be pleased to hear what others think, and eventually can do along
this line!

Best regards,
  Seb

-- 
Sébastien Vauban


___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-07 Thread Eric Schulte
Hi,

I'll try to answer some of the Babel related portions of this discussion
below.

I look forward to any potential org-letter export this line of
investigation yields.

Best -- Eric

Sébastien Vauban wxhgmqzgw...@spammotel.com writes:

 Hi Jambunathan,

 Jambunathan K wrote:
[...]
 I would like to hear why you chose to go down the tangling path.

 For two reasons:

 - because I had not the hope of being able to configure the LaTeX export class
   and/or code in the right way,


Hmm, I don't know how complex isodoc is to configure, but I'd think that
defining a custom latex class would be simpler than tangling out LaTeX
code blocks, however maybe this will change once I've looked at and
understood an example application.


 - because, in a way, that's quite logical. Here and there, you define
 stuff.  At the end, you just arrange them all in a way that fits well
 the LaTeX class demands.

 Though, it's not just copying, the way Babel actually does with snippets of
 code à la Noweb. Hence, I really need at least the body to be in real Org
 plain code, and be automatically converted to LaTeX, so that I can make use of
 the tables, and all the Org markup.

 I'm sure Babel is able of that, mixing raw code with convertable code. Just
 needs more thinking.


I've just implemented export of org code blocks to ascii, latex or html,
so the following should now (if I understood) allow the tangling
behavior you've described

--8---cut here---start-8---
** tangle org-mode block
#+source: org-list
#+begin_src org :results latex
  - one
  - two
  - three
#+end_src

#+begin_src emacs-lisp :tangle yes :noweb yes
  
  org-list()
  
#+end_src
--8---cut here---end---8---

tangles to

--8---cut here---start-8---


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



--8---cut here---end---8---

note that the () on the end of the code block name in the noweb syntax
means to insert the results of evaluating the code block (in this case
latex) rather than the body of the code block itself.



 Personally I feel any sort of markup (this includes babel directives)
 distracting.

 They're much less distracting as soon as they're properly highlighted.
 Question of color-theme. I can provide you (all) with mine, if you're
 interested.


 Btw, your approach set me thinking. I think there is a strong case for
 making headlines act as babel srcnames with their body providing content for
 noweb expansion [3]. This behaviour could be controlled by a buffer local
 variable.

 That would definitely make sense to me, at least for this particular need.
 But, maybe, there is already a parallel way to do such a thing...


 Wondering how babel treats srcnames? Can there be spaces? Is upper and lower
 cases treated one and the same ...


Spaces are now allowed, I'm honestly not sure that it will successfully
distinguish between upper and lower cases in code block names (all of
mine are lower-case), but either way I'd say it's poor style to rely on
case to distinguish between different code blocks.

Best -- Eric


 Being a (tiny) part-time Babel user, I wish I could easily answer such
 questions. But, as I always try to take as less risks as possible, these are
 things I never really looked at.


 Footnotes: 
 [3] It is likely the body of the headline might be run through a custom
 renderer (say latex, html or even emac's own comment-region) before
 finding it's way in to the document generated by tangle.

 Thanks once again for referring me to isodoc.

 When someone shares something of value with you and you benefit from it, you
 have a moral obligation to share it with others. -- Chinese proverb

 I've been as well referred to this excellent package by a friend. Hence, I do
 what I have to do...

 I now would be pleased to hear what others think, and eventually can do along
 this line!

 Best regards,
   Seb

___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


Re: [Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-07 Thread Thomas S. Dye

Hi Eric,

Thank you.  This will be very useful.

All the best,
Tom

On Sep 7, 2010, at 2:56 PM, Eric Schulte wrote:


#+begin_src org :results latex
 - one
 - two
 - three
#+end_src



___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode


[Orgmode] Re: Composing letters using Org mode and the LaTeX isodoc class

2010-09-07 Thread Jambunathan K

Eric

Thanks for the changes. I believe I need not work (or for all practical
purposes set aside) working on letter writing support.

Jambu Btw, your approach set me thinking. I think there is a strong
Jambu case for making headlines act as babel srcnames with their body
Jambu providing content for noweb expansion [3]. This behaviour could
Jambu be controlled by a buffer local variable.

Is this suggestion considered and set aside or overlooked? Read on down
below.

Jambu Wondering how babel treats srcnames? Can there be spaces? Is
Jambu upper and lower cases treated one and the same ...

Eric Spaces are now allowed, I'm honestly not sure that it will
Eric successfully distinguish between upper and lower cases in code
Eric block names (all of mine are lower-case)

Good. 

Honoring spaces would be a pre-requisite if one were to allow org's
headlines as implicit srcnames. 

Question on case-handling was intended not as a feature request but more
on clarity of the behaviour.

Eric I've just implemented export of org code blocks to ascii, latex or html,
Eric so the following should now (if I understood) allow the tangling
Eric behavior you've described
Eric
Eric ** tangle org-mode block
Eric #+source: org-list
Eric #+begin_src org :results latex
Eric   - one
Eric   - two
Eric   - three
Eric #+end_src
Eric
Eric #+begin_src emacs-lisp :tangle yes :noweb yes
Eric   
Eric   org-list()
Eric   
Eric #+end_src
Eric
Eric tangles to
Eric
Eric
Eric 
Eric \begin{itemize}
Eric \item two
Eric \item three
Eric \end{itemize}
Eric
Eric
Eric 
Eric
Eric note that the () on the end of the code block name in the noweb syntax
Eric means to insert the results of evaluating the code block (in this case
Eric latex) rather than the body of the code block itself.

If babel supports headlines as srcnames, without requiring additional
begin/end directives one could just write,

* org-list
  - one
  - two
  - three

#+begin_src emacs-lisp :tangle yes :noweb yes
  
  org-list(:fmt latex)
  
#+end_src

and achieve similar results.

Based on my earlier efforts at letter-writing, I have the following
observation.

Letters have a To address and they could be pulled from bbdb. So one
could say,

* To
  [[a bbdb link]]


#+begin_src emacs-lisp :tangle yes :noweb yes
  
  To(:fmt custom)
  
#+end_src

The string custom could be a elisp form or a function pointer that takes
the body of the headline as an argument and does the needful.

Specifically in the above example, 'custom' handler would visit the bbdb
record, fetch the address and return the formatted address (with line
breaks etc etc) as the noweb expansion. [Custom handler would be
implemented by the user himself]

Any thoughts on how this could be achieved ...

Jambunathan K.

___
Emacs-orgmode mailing list
Please use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode