* 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
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 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.