emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Publish to HTML and LaTeX/PDF with cross-file links?


From: Tim Cross
Subject: Re: Publish to HTML and LaTeX/PDF with cross-file links?
Date: Thu, 16 Jun 2022 09:55:14 +1000
User-agent: mu4e 1.7.27; emacs 28.1.50

Jens Lechtenboerger <lechten@wi.uni-muenster.de> writes:

> Hi all,
>
> I publish OER (https://oer.gitlab.io/) from Org sources and wonder
> about links to local files as documented at [1].  That page only
> talks about HTML export.  How can I achieve similar behavior for
> LaTeX/PDF export?
>
> More precisely: For HTML export, a link like
> [[file:foo.org::#custom-id][elsewhere]] turns into a hyperlink to
> “foo.html#custom-id”, which is what I want.
>
> However, for LaTeX/PDF export, the hyperlink points to the source
> file “foo.org”, which in my case is a broken link.  I would like
> that to be “foo.pdf” (or even something pointing at the proper
> section in the PDF file).
>
> Is this (easily) possible?
>

I think what you need is an export filter function for links in latex
exports. Have a look at the docstring for variable 
org-export-filter-link-functions. 

As a very basic example, the following should work


(defun my-latex-link-filter (text backend info)
  "Replace link to org files with pdf version."
  (when (org-export-derived-backend-p backend 'latex)
    (replace-regexp-in-string "\\.org" ".pdf" text)))

(add-to-list 'org-export-filter-link-functions
             'my-latex-link-filter)
             
Note that the above example is likely too 'basic'. For example, you need
to be wary of the file path if the exported PDF is going to be moved to
a different location. This is one of the limitations of file links. 

If you have a sufficiently complex publishing requirement, you might
find the org-publish module useful as it can provide a convenient way to
put all your publishing configuration into a single easier to manage
variable. (see org manual section on publishing). 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]