Re: MathJax extension does not work

2023-03-27 Thread chris
On Sunday, 10 October 2021 11:14:24 CEST Rudolf Adamkovič wrote:
> I would like to use the "\mathclap" command from the "mathtools" package in 
> my Org document. In LaTeX, it works. For HTML, I visited the Org manual [1] 
> where I saw the following example:
> 
> #+HTML_MATHJAX: cancel.js noErrors.js
> 
> with a comment "it loads the two MathJax extensions ‘cancel.js’ and 
> ‘noErrors.js’ [132]." (As a side-note, the first link in [132] points to 
> 404.) Thus, I put the following into my Org file
> 
> #+HTML_MATHJAX: mathtools.js
> 

With similar scenario I ended up with:
(and `mathjax` extensions work very well)

```org-mode
#+STARTUP: latexpreview

#+BEGIN_EXPORT html

window.MathJax = {
  loader: {
paths: {unicodeMath:

'https://cdn.jsdelivr.net/npm/@amermathsoc/mathjax-unicode-math@1/browser'},
load: ['[tex]/mathtools', '[unicodeMath]/unicode-math.js']},
tex: {packages: {'[+]': ['mathtools', 'unicode-math']}}};

#+END_EXPORT

\begin{array}{ccc}
  \underset{\longrightarrow}{\lim}^f(\alpha_1 \circ p_1)
  &\overset{\underset{\longrightarrow}{\lim}^f \phi}{\longrightarrow}&
  \underset{\longrightarrow}{\lim}^f(\alpha_2 \circ p_2)
  \\
{}^{\mathllap{\simeq}}\downarrow
&&
\downarrow^{\mathrlap{\simeq}}
\\
\underset{\longrightarrow}{\lim}^f \alpha_1
&\underset{f}{\longrightarrow}&
\underset{\longrightarrow}{\lim}^f \alpha_2
\end{array}

(diagram above from: [[https://ncatlab.org/nlab/show/ind-object][ind-object in 
nLab]])

\(\Bbbc\)

This above uses the other extension, unicode-math.
```

It works when exporting to `latex` and then `pdf`,
it works very well when exporting to `html` via `org-html-export-to-html`,
it almost works with `org-latex-preview`.

Here the relevant part of my `config.org`:

```org-mode
#+begin_src emacs-lisp
  (with-eval-after-load 'org
  (add-to-list 'org-latex-packages-alist '("" "stmaryrd" t))
  (add-to-list 'org-latex-packages-alist '("" "tikz-cd" t))
  (add-to-list 'org-latex-packages-alist '("" "amscd" t))
  (add-to-list 'org-latex-packages-alist '("" "mathtools" t))
  (add-to-list 'org-latex-packages-alist '("" "unicode-math" t))
  ;; (add-to-list 'org-latex-packages-alist '("" "breqn" t))
  (add-to-list 'org-latex-packages-alist '("" "thisisastupidtestfile" t))
  (setq org-latex-create-formula-image-program 'dvisvgm)
  (setq org-format-latex-options
(plist-put org-format-latex-options :scale 0.80)))
#+end_src
```

`thisisastupidtestfile.sty` contains a few straightforward macro of the sort of 
`\newcommand{\calT}{\mathcal{T}}`.

Everything works save `unicode-math` which doesn't work with anything `dvi`.

I use `dvisvgm` because it allows `tikz` to work with `org-latex-preview`.

Cheers,
Chris


> but it seems to do nothing; the exported HTML code not even contain the word 
> "mathtools".
> 
> A file that demonstrates the problem:
> 
> #+LATEX_HEADER: \usepackage{mathtools}
> #+HTML_MATHJAX: mathtools.js
> 
> \begin{equation*}
> \begin{aligned}
> \lim_{R\to0}F_1
> =\lim_{R\to0}\frac{2PR}{P+R}
> =\lim_{R\to0}\frac{2\cdot0\cdot{}R}{0+R}
> =\lim_{R\to0}\frac{0}{R},
> =\underbrace{\lim_{R\to0}\frac{0}{1}}_{\mathclap{\text{by L'Hôpital's Rule 
> with $\frac{d}{dR}R=1$}}}
> =\lim_{R\to0}0
> =0.
> \end{aligned}
> \end{equation*}
> 
> Rudy
> 
> [1] https://orgmode.org/manual/Math-formatting-in-HTML-export.html
> 
> 







Re: MathJax extension does not work

2021-10-10 Thread Rudolf Adamkovič
Daniel Fleischer  writes:

> […] the mathtools.js library was introduced in mathjax 3.2 but org provided 
> version 2.7 […]
> You can just change the "path" in 'org-html-mathjax-options'.

I see. I tried the following and it worked:

(with-eval-after-load 'ox-html
  (add-to-list 'org-html-mathjax-options
   '(path 
"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js;)))

> Secondly, mathtools is not autoloaded so you need to call it; for
> example you can put it in org using "export" block.
>
> #+begin_src HTML

The "export" blocks did not work for me, but the following did:

(setq-default org-html-head "
  
  window.MathJax = {
loader: {load: ['[tex]/mathtools']},
tex: {packages: {'[+]': ['mathtools']}}
  };
  ")

> After that it worked.
> Not sure why the "#+HTML_MATHJAX: mathtools.js" doesn't do anything.

All the above makes using MathJax extensions impractical. I would have to 
include HTML hacks in my Org documents or tie the documents to my Emacs 
configuration, if I understand everything. Neither sounds right, and thus I 
will avoid using "modern" MathJax until Org switches to it and HTML_MATHJAX 
actually works.

P.S. I wonder why Org uses MathJax 2.x when other popular tools, such as 
Pandoc, use the latest one.

Thank you for your help!

Rudy

-- 
"'Contrariwise,' continued Tweedledee, 'if it was so, it might be; and if it 
were so, it would be; but as it isn't, it ain't. That's logic.'" -- Lewis 
Carroll, Through the Looking Glass

Rudolf Adamkovič 
Studenohorská 25
84103 Bratislava
Slovakia

[he/him]



Re: MathJax extension does not work

2021-10-10 Thread Daniel Fleischer
Daniel Fleischer  writes:

> Not sure why the "#+HTML_MATHJAX: mathtools.js" doesn't do anything.
> Need further investigation. 

After examining the function 'org-html--build-mathjax-config' in
'ox-html.el' and also looking at the default values of

- 'org-html-mathjax-options'
- 'org-html-mathjax-template'

I don't see any code that loads mathjax extensions; which means
the documentation in

https://orgmode.org/manual/Math-formatting-in-HTML-export.html

is not accurate. That's my understanding.

-- 

Daniel Fleischer



Re: MathJax extension does not work

2021-10-10 Thread Daniel Fleischer
Rudolf Adamkovič  writes:

> I would like to use the "\mathclap" command from the "mathtools" package in 
> my Org document. In LaTeX, it works. For

Hi, there are 2 problems: first the mathtools.js library was introduced in
mathjax 3.2 but org provided version 2.7 as can be seen in the HTML

#+begin_src html
https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML";>
#+end_src

One can use the newer mathjax by replacing this with
#+begin_src html
https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js";>

#+end_src

as seen in https://docs.mathjax.org/en/latest/web/start.html.

You can just change the "path" in 'org-html-mathjax-options'.


Secondly, mathtools is not autoloaded so you need to call it; for
example you can put it in org using "export" block. 

#+begin_src HTML

window.MathJax = {
  loader: {load: ['[tex]/mathtools']},
  tex: {packages: {'[+]': ['mathtools']}}
};

#+end_src

After that it worked.

Not sure why the "#+HTML_MATHJAX: mathtools.js" doesn't do anything.
Need further investigation. 

-- 

Daniel Fleischer



MathJax extension does not work

2021-10-10 Thread Rudolf Adamkovič
I would like to use the "\mathclap" command from the "mathtools" package in my 
Org document. In LaTeX, it works. For HTML, I visited the Org manual [1] where 
I saw the following example:

#+HTML_MATHJAX: cancel.js noErrors.js

with a comment "it loads the two MathJax extensions ‘cancel.js’ and 
‘noErrors.js’ [132]." (As a side-note, the first link in [132] points to 404.) 
Thus, I put the following into my Org file

#+HTML_MATHJAX: mathtools.js

but it seems to do nothing; the exported HTML code not even contain the word 
"mathtools".

A file that demonstrates the problem:

#+LATEX_HEADER: \usepackage{mathtools}
#+HTML_MATHJAX: mathtools.js

\begin{equation*}
\begin{aligned}
\lim_{R\to0}F_1
=\lim_{R\to0}\frac{2PR}{P+R}
=\lim_{R\to0}\frac{2\cdot0\cdot{}R}{0+R}
=\lim_{R\to0}\frac{0}{R},
=\underbrace{\lim_{R\to0}\frac{0}{1}}_{\mathclap{\text{by L'Hôpital's Rule with 
$\frac{d}{dR}R=1$}}}
=\lim_{R\to0}0
=0.
\end{aligned}
\end{equation*}

Rudy

[1] https://orgmode.org/manual/Math-formatting-in-HTML-export.html

-- 
"Logic is a science of the necessary laws of thought, without which no 
employment of the understanding and the reason takes place." -- Immanuel Kant, 
1785

Rudolf Adamkovič 
Studenohorská 25
84103 Bratislava
Slovakia

[he/him]