Re: [O] [new exporter] ignoring a headline on export to PDF?via?latex

2013-03-10 Thread Suvayu Ali
Hi Charles,

On Wed, Mar 06, 2013 at 07:11:48AM +, Charles Berry wrote:
> I added to org-hacks.org at the bottom of ** Exporting org files. I tried to
> push to worg but got a permission error - its been years since I last pushed
> anything, so something on my end probably needs to be updated.
> 

You probably your keys were not moved to the new machine that hosts
Worg.  An email to Bastien and/or Jason should fix that.

> I've posted the file at:
> 
> https://raw.github.com/chasberry/orgmode-accessories/master/filter-markup.org
> 
> If you would like to put it in org-hacks, I'd appreciate it.

I had missed your email, I put your writeup with some minor formatting
changes under the new exporters directory on Worg.  Please have a look
and let me know if they are in order.




Here are the commits:




Thanks a lot for your contribution.

:)

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-06 Thread Eric S Fraga
Charles Berry  writes:

[...]

> If you just want the latex to have "\section{}" you can do this

[...]

Chuck,

thanks for this.  It makes sense and I will give it a try.  This
approach still does require creating a new backend.  The implications of
this are not clear to me but I will play with this to see.

Thanks again,
eric
-- 
: Eric S Fraga, GnuPG: 0xC89193D8FFFCF67D
: in Emacs 24.3.50.1 and Org release_7.9.3f-1199-g3a0e55




Re: [O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-06 Thread Eric S Fraga
Nicolas Goaziou  writes:

[...]

> Indeed, this won't work anymore: `org-latex-translate-alist' has been
> removed. The equivalent would just be to use a defadvice:
>
> #+begin_src emacs-lisp
> (defadvice org-latex-headline (around my-latex-skip-headlines
>   (headline contents info) activate)
>   (if (member "ignoreheading" (org-element-property :tags headline))
>   (setq ad-return-value contents)
> ad-do-it))
> #+end_src
>
> Another approach is, as mentioned by Charles Berry, to remove the first
> line of transcoded headline when it contains "ignoreheading".
>
> #+begin_src emacs-lisp
> (defun org-latex-ignore-heading-filter-headline (headline backend info)
> "Strip headline from HEADLINE. Ignore BACKEND and INFO."
> (when (and (org-export-derived-backend-p backend 'latex)
>(string-match "\\`.*ignoreheading.*\n" headline))
>   (replace-match "" nil nil headline)))
> (add-to-list 'org-export-filter-headline-functions
>  'org-latex-ignore-heading-filter-headline)
> #+end_src

Nicolas,

this is exactly what I was looking for.  It works perfectly.  Many thanks!

eric
-- 
: Eric S Fraga, GnuPG: 0xC89193D8FFFCF67D
: in Emacs 24.3.50.1 and Org release_7.9.3f-1199-g3a0e55




Re: [O] [new exporter] ignoring a headline on export to PDF via?latex

2013-03-05 Thread Charles Berry
Suvayu Ali  gmail.com> writes:

> 
> On Tue, Mar 05, 2013 at 08:58:28PM +, Charles Berry wrote:
> 
> [...]
> 
> > FWIW, I defun'ed filters like the above for all of the filter functions

[...]

> > if anyone is interested, I can post or upload somewhere.
> 
> That would be wonderful!
> 
> You could put them up on Worg.  This section on org-hacks would be
> appropriate: .  If you
> do not have access to Worg, you can post the content in Org format on
> the list and I can add it.

I added to org-hacks.org at the bottom of ** Exporting org files. I tried to
push to worg but got a permission error - its been years since I last pushed
anything, so something on my end probably needs to be updated.

I've posted the file at:

https://raw.github.com/chasberry/orgmode-accessories/master/filter-markup.org

If you would like to put it in org-hacks, I'd appreciate it.







Re: [O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-05 Thread Nicolas Goaziou
Hello,

Eric S Fraga  writes:

> I used to use the following to ignore a headline when exporting to PDF:
>
> #+begin_src emacs-lisp
> (defun my-e-latex-headline (headline contents info)
>   (if (member "ignoreheading" (org-element-property :tags headline)) contents
> (org-latex-headline headline contents info)))
> (add-to-list 'org-latex-translate-alist '(headline . my-e-latex-headline))
> #+end_src
>
> With the new exporter, this no longer works.
>
> On the mailing list, I found this thread from a couple of months ago:
>
> http://comments.gmane.org/gmane.emacs.orgmode/62742
>
> but I do not want to create a new backend just for this.  Is there an
> equivalent solution to the above with the new exporter?  Nicolas, you do
> imply that there is but you leave it as an exercise for the reader.  As
> much as I appreciate the pedagogical nature of your response, this
> reader is not up to the task and a solution would be greatly
> appreciated!

Indeed, this won't work anymore: `org-latex-translate-alist' has been
removed. The equivalent would just be to use a defadvice:

#+begin_src emacs-lisp
(defadvice org-latex-headline (around my-latex-skip-headlines
  (headline contents info) activate)
  (if (member "ignoreheading" (org-element-property :tags headline))
  (setq ad-return-value contents)
ad-do-it))
#+end_src

Another approach is, as mentioned by Charles Berry, to remove the first
line of transcoded headline when it contains "ignoreheading".

#+begin_src emacs-lisp
(defun org-latex-ignore-heading-filter-headline (headline backend info)
"Strip headline from HEADLINE. Ignore BACKEND and INFO."
(when (and (org-export-derived-backend-p backend 'latex)
   (string-match "\\`.*ignoreheading.*\n" headline))
  (replace-match "" nil nil headline)))
(add-to-list 'org-export-filter-headline-functions
 'org-latex-ignore-heading-filter-headline)
#+end_src


Regards,

-- 
Nicolas Goaziou



Re: [O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-05 Thread Nicolas Goaziou
Hello,

Eric S Fraga  writes:

> Suvayu Ali  writes:
>
> [...]
>
>> Try using your function with a filter.  This filter might work:
>> org-export-filter-headline-functions.  Of course it goes without saying
>> you will have to update your function.
>
> Thanks Suvayu.  It is this update that I need help with!  The
> documentation of that variable is close to impenetrable to me 

A TYPE filter is called each time transcoding process is over of an
element of type TYPE. Here, each time a headline is transcoded (along
with its contents), functions in `org-export-filter-headline-functions'
are called with the resulting string as the first argument (i.e. the
LaTeX code for the headline and all its contents).

There's a filter for each type of element/object, and a couple of
special filters.

> (e.g. what is a /communication channel/?).

The communication channel is basically a plist containing data available
for all transcoding functions. 99% of its properties have constant
values during export process (like export options, or pre-computed
values from the parse tree).

Nevertheless, it can be used to store some data at some point in time
and retrieve it from another transcoding function later, effectively
allowing communication between parts of the export system.


Regards,

-- 
Nicolas Goaziou



Re: [O] [new exporter] ignoring a headline on export to PDF via?latex

2013-03-05 Thread Suvayu Ali
On Tue, Mar 05, 2013 at 08:58:28PM +, Charles Berry wrote:

[...]

> FWIW, I defun'ed filters like the above for all of the filter functions that 
> can
> take (text backend info) as arguments. Then using a derived backend like the
> above `latex3', I can see where the filterable elements are. It is trivial to
> do, but if anyone is interested, I can post or upload somewhere.

That would be wonderful!

You could put them up on Worg.  This section on org-hacks would be
appropriate: .  If you
do not have access to Worg, you can post the content in Org format on
the list and I can add it.

Cheers,

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-05 Thread Charles Berry
Suvayu Ali  gmail.com> writes:

> 
> On Tue, Mar 05, 2013 at 01:25:03PM -0500, Nick Dokos wrote:
> > Eric S Fraga  ucl.ac.uk> wrote:
> > 
> > > Suvayu Ali  gmail.com> writes:
> > > 
> > > [...]
> > > 
> > > > Try using your function with a filter.  This filter might work:
> > > > org-export-filter-headline-functions.  Of course it goes without saying
> > > > you will have to update your function.
> > > 
> > > Thanks Suvayu.  It is this update that I need help with!  The
> > > documentation of that variable is close to impenetrable to me (e.g. what
> > > is a /communication channel/?).
> > > 
> > 
> > Reading the commentary in ox.el might help, at least to shed light on
> > some terminology.
> 
> As far as know, it is a property list returned by the parser.  Look in
> lisp/ox.el:1094.  Beyond that my understanding is also a bit hazy.  I
> think I have gone through that bit of the comments at least once, but it
> is a little difficult to follow for me (my lack of understanding of lisp
> is probably to blame :-p).

If you just want the latex to have "\section{}" you can do this


#+BEGIN_SRC emacs-lisp
  (defun org-latex-ignore-heading-filter-headline
(headline backend info)
"Strip headline from HEADLINE. Ignore BACKEND and INFO."
(replace-regexp-in-string
 "^[\\]section\\[.*\\textsc{ignoreheading}}$"
 "\\section{}" headline nil t))
#+END_SRC

#+BEGIN_SRC emacs-lisp
  (require 'ox-latex)
  (org-export-define-derived-backend latex3 latex
:filters-alist (
(:filter-headline . 
org-latex-ignore-heading-filter-headline))) 
#+END_SRC


then (org-export-to-buffer 'latex3 "a-buffer-name")

should do it.


The so-called 'headline' is actually a lot more than I would have thought.

If you use this filter instead:

#+BEGIN_SRC emacs-lisp
  (defun filter-headline-show
(text back-end info)
(format "%s" text))
#+END_SRC

you will see that the headline --- enclosed in 

 <\hdln>

will typically contain within it an entire "section" (in exporter
`:filter-section' terms - not latex's \section{})

FWIW, I defun'ed filters like the above for all of the filter functions that can
take (text backend info) as arguments. Then using a derived backend like the
above `latex3', I can see where the filterable elements are. It is trivial to
do, but if anyone is interested, I can post or upload somewhere.

Chuck







Re: [O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-05 Thread Suvayu Ali
On Tue, Mar 05, 2013 at 01:25:03PM -0500, Nick Dokos wrote:
> Eric S Fraga  wrote:
> 
> > Suvayu Ali  writes:
> > 
> > [...]
> > 
> > > Try using your function with a filter.  This filter might work:
> > > org-export-filter-headline-functions.  Of course it goes without saying
> > > you will have to update your function.
> > 
> > Thanks Suvayu.  It is this update that I need help with!  The
> > documentation of that variable is close to impenetrable to me (e.g. what
> > is a /communication channel/?).
> > 
> 
> Reading the commentary in ox.el might help, at least to shed light on
> some terminology.

As far as know, it is a property list returned by the parser.  Look in
lisp/ox.el:1094.  Beyond that my understanding is also a bit hazy.  I
think I have gone through that bit of the comments at least once, but it
is a little difficult to follow for me (my lack of understanding of lisp
is probably to blame :-p).

Good Luck,

-- 
Suvayu

Open source is the future. It sets us free.



Re: [O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-05 Thread Nick Dokos
Eric S Fraga  wrote:

> Suvayu Ali  writes:
> 
> [...]
> 
> > Try using your function with a filter.  This filter might work:
> > org-export-filter-headline-functions.  Of course it goes without saying
> > you will have to update your function.
> 
> Thanks Suvayu.  It is this update that I need help with!  The
> documentation of that variable is close to impenetrable to me (e.g. what
> is a /communication channel/?).
> 

Reading the commentary in ox.el might help, at least to shed light on
some terminology.

Nick

> I can manage without this feature for the moment so I'm not panicking
> but I do hope to find a solution eventually.
> 
> Thanks again,
> eric
> -- 
> : Eric S Fraga, GnuPG: 0xC89193D8FFFCF67D
> : in Emacs 24.3.50.1 and Org release_7.9.3f-1199-g3a0e55
> 
> 



Re: [O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-05 Thread Eric S Fraga
Suvayu Ali  writes:

[...]

> Try using your function with a filter.  This filter might work:
> org-export-filter-headline-functions.  Of course it goes without saying
> you will have to update your function.

Thanks Suvayu.  It is this update that I need help with!  The
documentation of that variable is close to impenetrable to me (e.g. what
is a /communication channel/?).

I can manage without this feature for the moment so I'm not panicking
but I do hope to find a solution eventually.

Thanks again,
eric
-- 
: Eric S Fraga, GnuPG: 0xC89193D8FFFCF67D
: in Emacs 24.3.50.1 and Org release_7.9.3f-1199-g3a0e55




Re: [O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-05 Thread Suvayu Ali
On Tue, Mar 05, 2013 at 02:43:30PM +, Eric S Fraga wrote:
> Hello,
> 
> I used to use the following to ignore a headline when exporting to PDF:
> 
> #+begin_src emacs-lisp
> (defun my-e-latex-headline (headline contents info)
>   (if (member "ignoreheading" (org-element-property :tags headline)) contents
> (org-latex-headline headline contents info)))
> (add-to-list 'org-latex-translate-alist '(headline . my-e-latex-headline))
> #+end_src
> 
> With the new exporter, this no longer works.
> 

Try using your function with a filter.  This filter might work:
org-export-filter-headline-functions.  Of course it goes without saying
you will have to update your function.

A very simple test tells me this is probably going to be backend
specific.  I have had this query about filters for a while now, how to
write filters that are backend agnostic.  I think I'll start a new
thread once I have formulated my question more clearly.

Hope this helps,

-- 
Suvayu

Open source is the future. It sets us free.



[O] [new exporter] ignoring a headline on export to PDF via latex

2013-03-05 Thread Eric S Fraga
Hello,

I used to use the following to ignore a headline when exporting to PDF:

#+begin_src emacs-lisp
(defun my-e-latex-headline (headline contents info)
  (if (member "ignoreheading" (org-element-property :tags headline)) contents
(org-latex-headline headline contents info)))
(add-to-list 'org-latex-translate-alist '(headline . my-e-latex-headline))
#+end_src

With the new exporter, this no longer works.

On the mailing list, I found this thread from a couple of months ago:

http://comments.gmane.org/gmane.emacs.orgmode/62742

but I do not want to create a new backend just for this.  Is there an
equivalent solution to the above with the new exporter?  Nicolas, you do
imply that there is but you leave it as an exercise for the reader.  As
much as I appreciate the pedagogical nature of your response, this
reader is not up to the task and a solution would be greatly
appreciated!

Thanks,
eric

-- 
Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D)