The following does what I want : export ln a LaTeX block to latex and beamer, export as a raw LaTeX snippet in HTML and ODT, no export otherwise :

#+property: header-args:sage :session
#+options: tex:t toc:nil author:nil
#+begin_src emacs-lisp :exports none
  ;; (customize-set-variable
  ;;  'org-latex-to-mathml-convert-command
  ;;  "latexmlmath \"%i\" --presentationmathml=%o")
  (custom-set-variables
   '(org-latex-to-mathml-convert-command
      "java -jar %j -unicode -force -df %o %I")
   '(org-latex-to-mathml-jar-file
      "/usr/local/bin/mathtoweb.jar"))
#+end_src

#+RESULTS:

Current exporter src_emacs-lisp[:results raw]{org-export-current-backend}.

A printing auxilliary :

#+name: printme
#+begin_src emacs-lisp :exports both :var data=()
  (if data
      (cond ((memq org-export-current-backend '(latex beamer))
	     (format "#+begin_export latex\n%s\n#+end_export" data))
	    ((memq org-export-current-backend '(odt html))
	     data)
	    (t data))
    "")
#+end_src

A "normal" function call with filtered result...

#+name: foo
#+begin_src emacs-lisp :exports both :results value raw :post printme(data=*this*)
  "Pseudo-function returning a LaTeX pseudo-result."
  "\\[\\displaystyle{\\sin\\left(\\frac{a}{b}\\right)}\\]"
#+end_src

Real-life test :

#+name: gee
#+begin_src sage :exports both :results raw :post printme(data=*this*)
  a, b = var("a, b")
  R = str(LatexExpr("\\[\\displaystyle{%s}\\]"%latex(tan(a+b) == tan(a+b).trig_expand())))
  R += "\n\n"
  R += str(LatexExpr("\\[\\displaystyle{%s}\\]"%latex(tan(a-b) == tan(a-b).trig_expand())))
  LatexExpr(R)
#+end_src

But this still has snags : you must not have evaluated results in the buffer. Which is problematic if you want to use caching... Exporting LaTeX blocks to ODT/HTML would be a better solution...

Ideas ?

Le dimanche 04 juillet 2021 à 14:10 -0400, John Kitchin a écrit :
Can you declare the output as org so they will just be latex snippets?

On Sun, Jul 4, 2021 at 3:46 AM Emmanuel Charpentier <emm.charpentier@free.fr> wrote:
Dear list,

Org-mode offers the ability to create functions returning LaTeX results : such occurrences are frequent with Sagemath, Maxima, Mathematica, R, and even emacs's Calc...

Such functions can be declared has having LaTeX output, and the resulting  =#+begin_export latex ...  #+end_export latex= block is exported as LaTeX and end up in the PDF versin.

But such blocks seem to export *only* to LaTeX/PDF ; more specically, they do not export to HTML nor ODT. In order to insert those results at export, one *has* to print them *raw*. See the attached examples, and compare PDF, HTML and ODT outputs of the enclosed zip archive (necessary to avoid the wrath of the spam filter of my provider ;-)...)..

Unless I am mistaken, this is the *only* way to export LaTeX exports to HTML/ODT ; I am not aware of any option allowing to force such exports. So a couple questions :
  • Am I mistaken ?
  • Are there more steamlined ways to get LaTeX in HTML/ODF/whatever-but-not-LaTeX ?
  • Wouldn't an option to allow these exports be a welcome addition to the export structure (or possibly to the various exporters) ?

Thanks in advance,