* is there a macro to have backend-specific behavior?
@ 2018-02-01 9:58 Alan Schmitt
2018-02-01 12:02 ` Nicolas Goaziou
2018-03-03 17:33 ` Adonay Felipe Nogueira
0 siblings, 2 replies; 4+ messages in thread
From: Alan Schmitt @ 2018-02-01 9:58 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 627 bytes --]
Hello,
Is there a way to define a macro that has different behaviors depending
on export backend? I have macros that use the @@latex:foo@@ syntax, but
in that case I "foo" is supposed to be literal latex.
My use case is this one: I have a link to a custom id, and I want to
export it as [[#id]] in latex and [[file:file.org::#id]] for html
*before* link resolution happens (so that the custom id in the latex
export is substituted with the correct label).
Is this possible?
Thanks,
Alan
--
OpenPGP Key ID : 040D0A3B4ED2E5C7
Monthly Athmospheric CO₂, Mauna Loa Obs. 2017-12: 406.82, 2016-12: 404.42
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 528 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: is there a macro to have backend-specific behavior?
2018-02-01 9:58 is there a macro to have backend-specific behavior? Alan Schmitt
@ 2018-02-01 12:02 ` Nicolas Goaziou
2018-02-01 13:46 ` Alan Schmitt
2018-03-03 17:33 ` Adonay Felipe Nogueira
1 sibling, 1 reply; 4+ messages in thread
From: Nicolas Goaziou @ 2018-02-01 12:02 UTC (permalink / raw)
To: Alan Schmitt; +Cc: emacs-orgmode
Hello,
Alan Schmitt <alan.schmitt@polytechnique.org> writes:
> Is there a way to define a macro that has different behaviors depending
> on export backend? I have macros that use the @@latex:foo@@ syntax, but
> in that case I "foo" is supposed to be literal latex.
>
> My use case is this one: I have a link to a custom id, and I want to
> export it as [[#id]] in latex and [[file:file.org::#id]] for html
> *before* link resolution happens (so that the custom id in the latex
> export is substituted with the correct label).
>
> Is this possible?
Could you simply preprocess the document to export with a function doing
the change above? Functions in `org-export-before-parsing-hook' are
called with the back-end as the sole argument.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: is there a macro to have backend-specific behavior?
2018-02-01 12:02 ` Nicolas Goaziou
@ 2018-02-01 13:46 ` Alan Schmitt
0 siblings, 0 replies; 4+ messages in thread
From: Alan Schmitt @ 2018-02-01 13:46 UTC (permalink / raw)
To: Nicolas Goaziou; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 774 bytes --]
On 2018-02-01 13:02, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes:
>> My use case is this one: I have a link to a custom id, and I want to
>> export it as [[#id]] in latex and [[file:file.org::#id]] for html
>> *before* link resolution happens (so that the custom id in the latex
>> export is substituted with the correct label).
>>
>> Is this possible?
>
> Could you simply preprocess the document to export with a function doing
> the change above? Functions in `org-export-before-parsing-hook' are
> called with the back-end as the sole argument.
Thank you for the suggestion, I think this is the simplest solution.
Best,
Alan
--
OpenPGP Key ID : 040D0A3B4ED2E5C7
Monthly Athmospheric CO₂, Mauna Loa Obs. 2017-12: 406.82, 2016-12: 404.42
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 528 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: is there a macro to have backend-specific behavior?
2018-02-01 9:58 is there a macro to have backend-specific behavior? Alan Schmitt
2018-02-01 12:02 ` Nicolas Goaziou
@ 2018-03-03 17:33 ` Adonay Felipe Nogueira
1 sibling, 0 replies; 4+ messages in thread
From: Adonay Felipe Nogueira @ 2018-03-03 17:33 UTC (permalink / raw)
To: emacs-orgmode
> Is there a way to define a macro that has different behaviors depending
> on export backend? I have macros that use the @@latex:foo@@ syntax, but
> in that case I "foo" is supposed to be literal latex.
Perhaps this might do something similar to what you expect:
--8<---------------cut here---------------start------------->8---
#+macro: make-hyperlink-to-custom-id (eval (cond ((org-export-derived-backend-p org-export-current-backend 'html) (concat "[[file:" (buffer-file-name) ":$1]]")) ((org-export-derived-backend-p org-export-current-backend 'latex) "[[$1]]") (t "[[$1]]")))
--8<---------------cut here---------------end--------------->8---
It could have been shorter, some other people might be able to help out.
There is a flaw though, since the branch from the 'html conditional
returns an absolute path, and I don't know if this is what you want, and
it of course refers to the Org mode original document as you asked ---
that is: it won't link to the object in the HTML that actually has that
custom identity.
I hope this helps.
--
- https://libreplanet.org/wiki/User:Adfeno
- Palestrante e consultor sobre /software/ livre (não confundir com
gratis).
- "WhatsApp"? Ele não é livre. Por favor, veja formas de se comunicar
instantaneamente comigo no endereço abaixo.
- Contato: https://libreplanet.org/wiki/User:Adfeno#vCard
- Arquivos comuns aceitos (apenas sem DRM): Corel Draw, Microsoft
Office, MP3, MP4, WMA, WMV.
- Arquivos comuns aceitos e enviados: CSV, GNU Dia, GNU Emacs Org, GNU
GIMP, Inkscape SVG, JPG, LibreOffice (padrão ODF), OGG, OPUS, PDF
(apenas sem DRM), PNG, TXT, WEBM.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-03-03 17:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-01 9:58 is there a macro to have backend-specific behavior? Alan Schmitt
2018-02-01 12:02 ` Nicolas Goaziou
2018-02-01 13:46 ` Alan Schmitt
2018-03-03 17:33 ` Adonay Felipe Nogueira
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).