web-dev-qa-db-fra.com

Quelle est la meilleure façon d'intégrer LaTeX dans une page Web?

Je ne demande pas de convertir un document LaTeX en html.

Ce que j'aimerais pouvoir faire, c'est avoir un moyen d'utiliser les commandes mathématiques de LaTeX dans un document html et de les faire apparaître correctement dans un navigateur. Cela pourrait être fait côté serveur ou client.

44
Phenwoods

MediaWiki peut faire ce que vous cherchez. Il utilise Texvc ( http://en.wikipedia.org/wiki/Texvc ) qui "valide (AMS) les expressions mathématiques LaTeX et les convertit en graphiques HTML, MathML ou PNG". Cela ressemble à ce que vous recherchez.

Consultez l'article de Wikipedia sur la façon dont ils gèrent les équations mathématiques ici: http://en.wikipedia.org/wiki/Help:Formula . Ils ont également une référence complète sur LaTeX et les avantages/inconvénients des différents types de rendu (PNG/MathML/HTML).

MediaWiki utilise un sous-ensemble de balisage TeX, y compris certaines extensions de LaTeX et AMS-LaTeX, pour les formules mathématiques. Il génère soit des images PNG, soit un simple balisage HTML, selon les préférences de l'utilisateur et la complexité de l'expression. À l'avenir, comme de plus en plus de navigateurs sont plus intelligents, il sera capable de générer du HTML amélioré ou même du MathML dans de nombreux cas. (Voir blahtex pour plus d'informations sur les travaux en cours sur l'ajout de la prise en charge de MathML.)

Plus précisément, MediaWiki filtre le balisage via Texvc, qui à son tour transmet les commandes à TeX pour le rendu réel. Ainsi, seule une partie limitée du langage TeX complet est prise en charge; voir ci-dessous pour plus de détails. ...

Avantages du HTML

  • Les formules HTML en ligne s'alignent toujours correctement avec le reste du texte HTML.
  • L'arrière-plan, la taille de police et le visage de la formule correspondent au reste du contenu HTML et l'apparence respecte les paramètres CSS et du navigateur.
  • Les pages utilisant HTML se chargeront plus rapidement.

Avantages de TeX

  • TeX est sémantiquement supérieur au HTML. Dans TeX, "x" signifie "variable mathématique x", alors qu'en HTML "x" pourrait signifier n'importe quoi. Des informations ont été irrévocablement perdues. Cela présente de multiples avantages:
    1. TeX peut être transformé en HTML, mais pas vice-versa. Cela signifie que du côté serveur, nous pouvons toujours transformer une formule, en fonction de sa complexité et de son emplacement dans le texte, des préférences de l'utilisateur, du type de navigateur, etc. Par conséquent, si possible, tous les avantages du HTML peuvent être conservés, ainsi que avantages de TeX. Il est vrai que la situation actuelle n'est pas idéale, mais ce n'est pas une bonne raison de supprimer des informations/contenus. C'est plus une raison pour aider à améliorer la situation.
    2. TeX peut être converti en MathML pour les navigateurs qui le supportent, gardant ainsi sa sémantique et lui permettant d'être rendu sous forme de vecteur.
  • TeX a été spécialement conçu pour la composition de formules, donc l'entrée est plus facile et plus naturelle, et la sortie est plus esthétique.
  • Lors de l'écriture dans TeX, les éditeurs n'ont pas à se soucier de la prise en charge du navigateur, car il est rendu en image par le serveur. Les formules HTML, en revanche, peuvent finir par devenir incohérentes (ou pas du tout) des intentions de l'éditeur, par certains navigateurs ou des versions plus anciennes d'un navigateur.
15
ine

Je préfère MathJax aux solutions qui choisissent de rendre les images (ce qui provoque des problèmes d'alias).

MathJax est un moteur de rendu Javascript open source pour les mathématiques. Il utilise CSS et Webfonts au lieu d'images ou de flash et peut rendre LaTeX ou MathML. De cette façon, vous n'avez pas de problèmes avec le zoom et il est même compatible avec le lecteur d'écran.

20
user1433688

J'ai déjà développé un plugin jQuery qui fait en fait ceci: jsLaTeX

Voici l'exemple le plus simple de la façon dont il peut être utilisé:

$(".latex").latex();


<div class="latex">  
    \int_{0}^{\pi}\frac{x^{4}\left(1-x\right)^{4}}{1+x^{2}}dx =\frac{22}{7}-\pi  
</div>

Ce qui précède générera l'équation LaTeX suivante sur votre page:

Equation

La Page de démonstration du plugin contient plus d'exemples de code et de démos.

14
Andreas Grech

Si vous souhaitez intégrer les mathématiques sous forme d'images, vous pouvez jeter un œil à MathTran .

Si vous préférez que les mathématiques soient insérées dans la page principalement sous forme de texte (en utilisant des images uniquement lorsque cela est nécessaire), jsMath peut être ce que vous recherchez.

10
godbyk

Historiquement, le rendu du LaTeX et l'extraction d'une image ont été votre meilleur pari pour les trucs mathématiques multiplateformes et multi-navigateurs. De plus en plus, MathML devient une alternative raisonnable. Voici un convertisseur en ligne qui émettra MathML à partir du balisage Tex, que vous pourrez ensuite intégrer dans votre page Web. Je sais que les navigateurs basés sur Gecko comme Firefox et Camino jouent Nice avec MathML, tout comme Opera. IE ne fonctionne pas par défaut, mais il existe des plugins disponibles (comme celui-ci ).

Texvc est une excellente trouvaille! La sortie HTML de Vanilla devrait bien fonctionner si vous êtes principalement intéressé par les exposants/indices/italiques/symboles communs, mais pour les choses plus complexes, sachez que les sites mathématiques les plus populaires (par exemple Wolfram =) générer des images, donc vous ne pouvez pas faire grand-chose si vous êtes intéressé par la compatibilité entre les navigateurs :-(

4
Matt J

J'ai lu toutes les réponses ici, et je suis surpris que personne n'ait mentionné la conversion de PDF en HTML. Si vous utilisez pdf2htmlEX il le fera créez des pages web parfaites à partir d'un pdf . Il vous suffit de compiler votre latex en pdf (pdflatex).

Par défaut, il génère un seul fichier html, avec le contenu de votre PDF composé de CSS, javascript et html. J'ai essayé beaucoup d'outils pour convertir le latex en html et c'est de loin le meilleure et plus simple solution que j'ai trouvée .

3
Anoyz

Vous pouvez essayer LaTexRenderer . Je ne sais pas si c'est le meilleur, mais ça marche.

1
eduffy

Je commence à me pencher là-dessus et il semble que les choses aient évolué. J'ai rencontré this démo de comparaison de KaTeX et MathJax .


Longue histoire courte (au moment d'écrire ces lignes):

  • Les fractions à l'intérieur d'une matrice se rencontrent dans KaTeX, mais pas dans MathJax (voir "produit croisé")
  • À l'intérieur du symbole racine carrée (ou nième), les exposants et les racines carrées imbriquées semblent se heurter à la ligne supérieure horizontale (voir "Fractions répétitives" et "racine nième".)
  • MathJax a une police légèrement plus audacieuse et plus grande, KaTeX est légèrement plus léger.

Mais peut-être le plus décisif de tous, j'ai trouvé que le traitement MathJax total pour la page était en moyenne de 1674 ms pour trois exécutions. En revanche, KaTeX a en moyenne 128 ms , ce qui est un ordre de grandeur mieux!


Il y a d'autres points de comparaison à considérer lors de la consultation de leurs sites Web respectifs:

  • Le site Web principal de KaTeX prétend prendre en charge la plupart, mais pas la totalité, de LaTeX. Ils listent leurs fonctions prises en charge ici . MathJax exprime également certaines de ses limitations . Bien qu'il soit difficile de savoir à partir d'un survol rapide de ceux-ci qui, au final, ont un "meilleur" soutien. Certains blogs que j'ai consultés disent que KaTeX a moins de support, mais d'autres ont dit que KaTeX a considérablement amélioré le support ces dernières années.
  • Le site Web MathJax annonce la prise en charge de MathML pour les entrées et les sorties. Certains problèmes KaTeX sur son github site ici et ici indiquent qu'ils prennent en charge MathML pour la sortie, mais pas pour l'entrée (je ne sais pas grand-chose à propos de MathML, mais cela semble au moins important si vous voulez aider les utilisateurs ayant une déficience visuelle).
  • KaTeX rend de manière synchrone , donc il ne redistribue pas la page (une partie de ce qui la rend plus rapide). Mais en échange, il verrouille temporairement le navigateur.
  • StackOverflow est partenaire de MathJax (voir ici ). Il est utilisé sur certains sites StackExchange, mais pas sur StackOverflow lui-même en raison des performances de temps de chargement des pages. En revanche, KaTeX a été développé par Kahn Academy.
1
pwilcox

Vous pouvez utiliser tex2gif . Il prend un extrait de LaTeX, exécute LaTeX et produit un PNG (ou GIF). Facile à intégrer, facile à écrire. Ça marche pour moi.

Vous pouvez également vérifier tex2png .

0
sastanin

Je vous encouragerais certainement à regarder MathML si cela correspond à ce que vous recherchez, mais un peu de travail avec JsTeX pourrait vous donner tout ce dont vous avez besoin.

0
Joe Liversedge