Florian Beck <f...@miszellen.de> writes: > Ok, I tried this. There is a problem, however. This is what I came up > with: > > #+BEGIN_SRC emacs-lisp > (defun fb/org-latex-headline (headline contents info) > (let* ((full-section (org-latex-headline headline contents info))
I suggest (org-export-with-backend 'latex headline contents info) to not depend on the actual name of the translator. > (toc-title (if (plist-get info :toc-title) > (org-element-property :toc-title headline))) There's no :toc-title property in the communication channel. The exhaustive list of its properties is written in ox.el, at "The Communication Channel" section. > (section-regex "\\`\\\\\\(sub\\)*\\(section\\|paragraph\\){") > (new-section > (when (and toc-title > (string-match section-regex full-section)) > (let ((subs (match-string 1 full-section)) > (section (match-string 2 full-section)) > (rest (substring full-section (match-end 0)))) > (concat > "\\" subs section "[" > ;; replace brackets (from `org-latex-headline') > (replace-regexp-in-string > "\\[" "(" > (replace-regexp-in-string > "\\]" ")" > toc-title)) > "]{" rest))))) > (or new-section > full-section))) > #+END_SRC > > As you can see, the solution is much more convoluted. Because you're not using the proper tool. If you just want to modify the string returned by the `latex' back-end, use a filter. You will have access to the transcoded headline (in LaTeX format, as a string) and the communication channel. #+begin_src emacs-lisp (defun fb/my-headline-transformation (headline backend info) (when (eq backend 'latex) ;; Here HEADLINE is the output from `latex' back-end, as a string. ... )) (add-to-list 'org-export-filter-headline-functions 'fb/my-headline-transformation) #+end_src What I suggest gives you access to the headline as parsed data. This is much more powerful, but a completely different task. > IMO, the probem is this: the translation is (mostly) application of > content to a template (a format string), but these templates are build > (mostly, sectioning is actually an exception) inside the default > translation functions. It would be much easier, when this template would > be accessible from "outside", like this: There are already many ways to alter output from a back-end. It's just a matter of using the right tool. Regards, -- Nicolas Goaziou