emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Emmanuel Charpentier <emm.charpentier@free.fr>
To: John Kitchin <jkitchin@andrew.cmu.edu>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: LaTeX-producing code : how to export results to HTML/ODT ?
Date: Sun, 04 Jul 2021 23:11:01 +0200	[thread overview]
Message-ID: <ef3b46bb2064de5ab63dbe399afafba7db55a5a6.camel@free.fr> (raw)
In-Reply-To: <CAJ51ETqYY7FT1PXHTZ1BQ_QTb3XrxaXpVSRWQQKjNhfN=j2hmg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3239 bytes --]

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,


[-- Attachment #2: Type: text/html, Size: 4526 bytes --]

      parent reply	other threads:[~2021-07-04 21:11 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-04  7:45 LaTeX-producing code : how to export results to HTML/ODT ? Emmanuel Charpentier
2021-07-04 18:10 ` John Kitchin
2021-07-04 18:51   ` Emmanuel Charpentier
2021-07-04 19:04     ` John Kitchin
2021-07-04 21:13       ` Emmanuel Charpentier
2021-07-14  6:41       ` Timothy
2021-07-14  8:16         ` Emmanuel Charpentier
2021-07-04 21:11   ` Emmanuel Charpentier [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ef3b46bb2064de5ab63dbe399afafba7db55a5a6.camel@free.fr \
    --to=emm.charpentier@free.fr \
    --cc=emacs-orgmode@gnu.org \
    --cc=jkitchin@andrew.cmu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).