Je crée des cahiers R qui contiennent des équations. J'utilise RStudio 1.2.5033 sur Windows 10, R 3.5.1 et rmarkdown 2.1. Lorsque mes cahiers R sont rendus au format HTML, MathJax (v2.7.2) utilise le processeur de sortie "HTML-CSS" pour rendre les équations. Mais je pense que la sortie du processeur de sortie "CommonHTML" est meilleure. Je souhaite donc inclure une directive, dans mes cahiers R, qui oblige MathJax à utiliser le processeur de sortie CommonHTML. Comment puis-je faire cela ?

Si je rendais un document R Markdown ordinaire avec le format de sortie html_document, je pourrais résoudre le problème via l'option mathjax dans mon en-tête YAML. Par exemple, lorsque le fichier suivant est rendu au format HTML, MathJax utilisera le processeur de sortie CommonHTML :

---
title: "Trouble with MathJax"
output: 
  html_document:
    mathjax: "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_CHTML.js"
    self_contained: false    
---

\begin{equation}
  R_3 = \alpha
\end{equation}

Mais cette solution ne fonctionne pas bien lorsque je change le format output de html_document à html_notebook. Dans ce cas, j'obtiens une sortie qui ressemble à ceci :

capture d'écran montrant un problème avec le rendu html_notebook

L'équation est rendue avec CommonHTML, mais il y a beaucoup de bêtises en haut de la page (notez les quatre puces), et le CSS R Notebook par défaut ne semble pas être implémenté.

Le problème semble être général au rendu des ordinateurs portables R avec self_contained: FALSE, comme suggéré dans Les notebooks R ne s'affichent pas correctement lorsque "self_contained" est FALSE car le répertoire "files" est supprimé après le rendu. Mais je ne vois pas de bonne solution de contournement pour ce problème.


Impasses

La documentation MathJax semble indiquer que je peux spécifier le processeur de sortie en ajoutant le tableau jax dans un appel à MathJax.Hub.Config(). Mais quand j'ai fait cela, mes équations sont toujours affichées via le processeur de sortie HTML-CSS. Voici un exemple minimal d'un document R Markdown qui présente le problème :

---
title: 'Trouble with MathJax'
output: html_notebook
---

<script type="text/x-mathjax-config"> 
  MathJax.Hub.Config({ 
    jax: ["input/TeX", "output/CommonHTML"],
  });
</script>

\begin{equation}
  R_3 = \alpha
\end{equation}

L'appel à MathJax.Hub.Config() semble ne rien faire ici. Dans Chrome et Edge, l'équation est rendue via HTML-CSS, pas CommonHTML. Comment puis-je modifier le rendu en HTML commun ?


Articles Similaires

2
user697473 9 févr. 2020 à 18:17

1 réponse

Meilleure réponse

La solution consiste simplement à omettre la ligne self_contained dans l'en-tête YAML ou, de manière équivalente, à définir self_contained sur true. Voici un exemple minimal de notebook R pour lequel l'utilisateur a choisi le moteur de rendu mathjax :

---
title: "Self-contained notebook with non-default Mathjax config"
output:
  html_notebook:
    mathjax: "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_CHTML.js"
---

$R_3 = 2$.

Lorsque le fichier est rendu au format HTML, l'équation est affichée avec CommonHTML, pas avec HTML-CSS. Et le script Mathjax est contenu dans le fichier "nb.html" qui est produit.

J'ai été surpris que cela fonctionne, car la documentation de rmarkdown::html_document() indique que "même pour les documents autonomes, MathJax est toujours chargé en externe (cela est nécessaire en raison de sa taille)". Mais la Section 3.1.8 du livre R Markdown indique que la restriction s'applique uniquement lorsque Mathjax est chargé à partir d'un fichier local. Alors peut-être que cela ne devrait pas être une surprise.

Remarque : la configuration Mathjax par défaut utilisée par le package rmarkdown est donnée par rmarkdown:::mathjax_config(). Depuis rmarkdown v2.1, la fonction renvoie "MathJax.js?config=TeX-AMS-MML_HTMLorMML".

0
user697473 12 févr. 2020 à 14:06