emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Filter not working (org 8.0.3)
@ 2013-09-05 15:53 Roger Mason
  2013-09-05 16:18 ` Nicolas Goaziou
  0 siblings, 1 reply; 7+ messages in thread
From: Roger Mason @ 2013-09-05 15:53 UTC (permalink / raw)
  To: org-mode

Hello,

I have this at the top of an org file in order to put graphics in the 
margin:

#+LATEX_HEADER: \usepackage[right=2in,left=0.5in]{geometry} 
\usepackage{parskip}

#+BEGIN_SRC emacs-lisp
(defun margin-graphics (contents backend info)
   (when (eq backend 'latex)
     (replace-regexp-in-string "\\`\\\\includegraphics.+\\({.+}\\)"
"\\\\marginpar{\\\\includegraphics[width=0.9\\\\marginparwidth]\\1} " 
contents)))

(add-to-list 'org-export-filter-link-functions 'margin-graphics)
#+END_SRC

C-e lp produces a pdf document, but the filter is not applied (org 8.0.3).

Can someone show me what I'm doing wrong?

Thanks,
Roger

This electronic communication is governed by the terms and conditions at
http://www.mun.ca/cc/policies/electronic_communications_disclaimer_2012.php

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Filter not working (org 8.0.3)
  2013-09-05 15:53 Filter not working (org 8.0.3) Roger Mason
@ 2013-09-05 16:18 ` Nicolas Goaziou
  2013-09-05 17:05   ` Roger Mason
  0 siblings, 1 reply; 7+ messages in thread
From: Nicolas Goaziou @ 2013-09-05 16:18 UTC (permalink / raw)
  To: Roger Mason; +Cc: org-mode

Hello,

Roger Mason <rmason@mun.ca> writes:

> I have this at the top of an org file in order to put graphics in the 
> margin:
>
> #+LATEX_HEADER: \usepackage[right=2in,left=0.5in]{geometry} 
> \usepackage{parskip}
>
> #+BEGIN_SRC emacs-lisp
> (defun margin-graphics (contents backend info)
>    (when (eq backend 'latex)
>      (replace-regexp-in-string "\\`\\\\includegraphics.+\\({.+}\\)"
> "\\\\marginpar{\\\\includegraphics[width=0.9\\\\marginparwidth]\\1} " 
> contents)))
>
> (add-to-list 'org-export-filter-link-functions 'margin-graphics)
> #+END_SRC
>
> C-e lp produces a pdf document, but the filter is not applied (org 8.0.3).
>
> Can someone show me what I'm doing wrong?

I think you need to tell Babel to actually execute the code (e.g.
with :exports both). You may also want to make
`org-export-filter-link-functions' local to the buffer, too.


Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Filter not working (org 8.0.3)
  2013-09-05 16:18 ` Nicolas Goaziou
@ 2013-09-05 17:05   ` Roger Mason
  2013-09-05 18:45     ` Nicolas Goaziou
  0 siblings, 1 reply; 7+ messages in thread
From: Roger Mason @ 2013-09-05 17:05 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: org-mode

Hello again,

On 09/05/2013 01:48 PM, Nicolas Goaziou wrote:
> Hello,
>
> Roger Mason <rmason@mun.ca> writes:
>
>> I have this at the top of an org file in order to put graphics in the
>> margin:
>>
>> #+LATEX_HEADER: \usepackage[right=2in,left=0.5in]{geometry}
>> \usepackage{parskip}
>>
>> #+BEGIN_SRC emacs-lisp
>> (defun margin-graphics (contents backend info)
>>     (when (eq backend 'latex)
>>       (replace-regexp-in-string "\\`\\\\includegraphics.+\\({.+}\\)"
>> "\\\\marginpar{\\\\includegraphics[width=0.9\\\\marginparwidth]\\1} "
>> contents)))
>>
>> (add-to-list 'org-export-filter-link-functions 'margin-graphics)
>> #+END_SRC
>>
>> C-e lp produces a pdf document, but the filter is not applied (org 8.0.3).
>>
>> Can someone show me what I'm doing wrong?
> I think you need to tell Babel to actually execute the code (e.g.
> with :exports both). You may also want to make
> `org-export-filter-link-functions' local to the buffer, too.
>
>
> Regards,
>
Thanks for the reply.

Unfortunately, :exports both does not make any difference.  Looking at 
the generated LaTeX file I see that it contains:

\begin{verbatim}
(defun margin-graphics (contents backend info)
   (when (eq backend 'latex)
     (replace-regexp-in-string "\\`\\\\includegraphics.+\\({.+}\\)"
"\\\\marginpar{\\\\includegraphics[width=0.9\\\\marginparwidth]\\1} " 
contents)))

(add-to-list 'org-export-filter-link-functions 'margin-graphics)
\end{verbatim}

which seems odd.

Thanks for the help.

Roger

This electronic communication is governed by the terms and conditions at
http://www.mun.ca/cc/policies/electronic_communications_disclaimer_2012.php

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Filter not working (org 8.0.3)
  2013-09-05 17:05   ` Roger Mason
@ 2013-09-05 18:45     ` Nicolas Goaziou
  2013-09-05 19:04       ` Roger Mason
  0 siblings, 1 reply; 7+ messages in thread
From: Nicolas Goaziou @ 2013-09-05 18:45 UTC (permalink / raw)
  To: Roger Mason; +Cc: org-mode

Roger Mason <rmason@mun.ca> writes:

> Unfortunately, :exports both does not make any difference.  Looking at
> the generated LaTeX file I see that it contains:
>
> \begin{verbatim}
> (defun margin-graphics (contents backend info)
>   (when (eq backend 'latex)
>     (replace-regexp-in-string "\\`\\\\includegraphics.+\\({.+}\\)"
> "\\\\marginpar{\\\\includegraphics[width=0.9\\\\marginparwidth]\\1} "
> contents)))
>
> (add-to-list 'org-export-filter-link-functions 'margin-graphics)
> \end{verbatim}
>
> which seems odd.

It is to be expected since ":exports both" is meant to leave source code
behind.

Anyway, the following works for me (I had to tweak your regexp):

--8<---------------cut here---------------start------------->8---
  #+LATEX_HEADER: \usepackage[right=2in,left=0.5in]{geometry}
  #+LATEX_HEADER: \usepackage{parskip}

  * Setup                                                                 :noexport:
  #+BEGIN_SRC emacs-lisp :exports both
  (defun margin-graphics (contents backend info)
      (when (eq backend 'latex)
        (replace-regexp-in-string "\\`\\\\includegraphics.*?\\({.+}\\)"
  "\\\\marginpar{\\\\includegraphics[width=0.9\\\\marginparwidth]\\1} "
  contents)))

  (add-to-list (make-local-variable 'org-export-filter-link-functions) 'margin-graphics)
  #+END_SRC

  * Document

  [[file:~/Documents/work/2-data/images/2-echantillonnage-1-fluctuations-fig1.png]]
--8<---------------cut here---------------end--------------->8---

I suggest to use `make-local-variable' to keep global filters list
clean.


Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Filter not working (org 8.0.3)
  2013-09-05 18:45     ` Nicolas Goaziou
@ 2013-09-05 19:04       ` Roger Mason
  2013-09-05 19:09         ` Nicolas Goaziou
  0 siblings, 1 reply; 7+ messages in thread
From: Roger Mason @ 2013-09-05 19:04 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: org-mode

Hello,

On 09/05/2013 04:15 PM, Nicolas Goaziou wrote:
> #+LATEX_HEADER: \usepackage[right=2in,left=0.5in]{geometry}
>    #+LATEX_HEADER: \usepackage{parskip}
>
>    * Setup                                                                 :noexport:
>    #+BEGIN_SRC emacs-lisp :exports both
>    (defun margin-graphics (contents backend info)
>        (when (eq backend 'latex)
>          (replace-regexp-in-string "\\`\\\\includegraphics.*?\\({.+}\\)"
>    "\\\\marginpar{\\\\includegraphics[width=0.9\\\\marginparwidth]\\1} "
>    contents)))
>
>    (add-to-list (make-local-variable 'org-export-filter-link-functions) 'margin-graphics)
>    #+END_SRC
That got rid of the verbatim output.  Thanks.

Unfortunately the replacement of \includegraphics... by \marginpar... 
still does not work:

#+CAPTION: Acicular
[[../images/acicular.eps]]

produces

\begin{figure}[htb]
\centering
\includegraphics[width=.9\linewidth]{../images/acicular.eps}
\caption{Acicular}
\end{figure}

I'm using org Emacs 24.3.1 (Org mode 8.0.3).

Please don't spend any more time on this on my account:  I'll use 
ConTeXt instead.

Cheers,
Roger


This electronic communication is governed by the terms and conditions at
http://www.mun.ca/cc/policies/electronic_communications_disclaimer_2012.php

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Filter not working (org 8.0.3)
  2013-09-05 19:04       ` Roger Mason
@ 2013-09-05 19:09         ` Nicolas Goaziou
  2013-09-05 19:35           ` Roger Mason
  0 siblings, 1 reply; 7+ messages in thread
From: Nicolas Goaziou @ 2013-09-05 19:09 UTC (permalink / raw)
  To: Roger Mason; +Cc: org-mode

Roger Mason <rmason@mun.ca> writes:

> On 09/05/2013 04:15 PM, Nicolas Goaziou wrote:
>> #+LATEX_HEADER: \usepackage[right=2in,left=0.5in]{geometry}
>>    #+LATEX_HEADER: \usepackage{parskip}
>>
>>    * Setup                                                                 :noexport:
>>    #+BEGIN_SRC emacs-lisp :exports both
>>    (defun margin-graphics (contents backend info)
>>        (when (eq backend 'latex)
>>          (replace-regexp-in-string "\\`\\\\includegraphics.*?\\({.+}\\)"
>>    "\\\\marginpar{\\\\includegraphics[width=0.9\\\\marginparwidth]\\1} "
>>    contents)))
>>
>>    (add-to-list (make-local-variable 'org-export-filter-link-functions) 'margin-graphics)
>>    #+END_SRC
> That got rid of the verbatim output.  Thanks.
>
> Unfortunately the replacement of \includegraphics... by \marginpar... 
> still does not work:
>
> #+CAPTION: Acicular
> [[../images/acicular.eps]]
>
> produces
>
> \begin{figure}[htb]
> \centering
> \includegraphics[width=.9\linewidth]{../images/acicular.eps}
> \caption{Acicular}
> \end{figure}

In this case, you need to remove "\\`" from your regexp.


Regards,

-- 
Nicolas Goaziou

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Filter not working (org 8.0.3)
  2013-09-05 19:09         ` Nicolas Goaziou
@ 2013-09-05 19:35           ` Roger Mason
  0 siblings, 0 replies; 7+ messages in thread
From: Roger Mason @ 2013-09-05 19:35 UTC (permalink / raw)
  To: Nicolas Goaziou; +Cc: org-mode

Hello,

On 09/05/2013 04:39 PM, Nicolas Goaziou wrote:
> In this case, you need to remove "\\`" from your regexp. Regards, 
That fixed it.

Many thanks.

Roger

This electronic communication is governed by the terms and conditions at
http://www.mun.ca/cc/policies/electronic_communications_disclaimer_2012.php

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-09-05 19:36 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-05 15:53 Filter not working (org 8.0.3) Roger Mason
2013-09-05 16:18 ` Nicolas Goaziou
2013-09-05 17:05   ` Roger Mason
2013-09-05 18:45     ` Nicolas Goaziou
2013-09-05 19:04       ` Roger Mason
2013-09-05 19:09         ` Nicolas Goaziou
2013-09-05 19:35           ` Roger Mason

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).