Re: [O] is there a macro to have backend-specific behavior?

2018-03-03 Thread Adonay Felipe Nogueira
> 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.



Re: [O] is there a macro to have backend-specific behavior?

2018-02-01 Thread Alan Schmitt
On 2018-02-01 13:02, Nicolas Goaziou  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


signature.asc
Description: PGP signature


Re: [O] is there a macro to have backend-specific behavior?

2018-02-01 Thread Nicolas Goaziou
Hello,

Alan Schmitt  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



[O] is there a macro to have backend-specific behavior?

2018-02-01 Thread Alan Schmitt
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


signature.asc
Description: PGP signature