Utiliser MathJax avec Jekyll

J’ai un blog Jekyll et je veux utiliser MathJax avec, en ce sens que je veux pouvoir taper quelque chose comme

$$\sum_{n=1}^\infty 1/n^2 = \frac{\pi^2}{6}$$ 

dans mes fichiers de démarquage et que l’expression correcte de LaTeX est générée avec MathJax, de la même manière que pour math.stackexchange .

Quelle est la manière la plus simple de faire ça? Actuellement, j’ai le fichier jsmath.js (GitHub gist) dans mon répertoire, et je pensais pouvoir avoir un fichier simple nommé mathjs dans mon répertoire _includes avec la ligne

  

et inclure que dans chaque poste via

 {% include mathjs %} 

mais cela ne semble pas fonctionner – lorsque je lance jekyll --server la page est générée, mais aucun contenu n’est visible.

Est-ce que je vais à ce sujet de la bonne façon? Existe-t-il un meilleur moyen d’utiliser MathJax avec Jekyll?

    Vous pouvez certainement utiliser mathjax avec Jekyll. Pour que cela fonctionne, assurez-vous que

    1. Si vous écrivez votre message dans markdown, votre interpréteur de démarques ne gêne pas votre entrée mathjax. Le meilleur moyen de le protéger est de toujours placer les éléments graphiques dans les éléments

      et les calculs en ligne dans les éléments , que la plupart des interpréteurs de démarques laisseront seuls.

    2. La ligne javascript s’affiche-t-elle correctement dans le source HTML? Je trouve plus facile et plus rapide de pointer vers le CDN mathjax plutôt que de fournir ma propre copie. Essayez d’utiliser la ligne

    (Ces options de configuration vous permettent d’utiliser plus de notation tex pour démarrer votre environnement mathématique, tel que \begin{equation} , etc.).

    Il y a peut-être un problème avec votre script jsmath.js ; la version CDN sera plus rapide et probablement plus fiable. (J’ai le javascript chargé dans mon pied de page sur chaque page, mais bien sûr, votre stratégie avec include est logique si vous ne voulez pas charger le javascript quand vous n’en avez pas besoin.)

    Nous pourrions aider plus si vous nous donnez un lien vers votre blog? Vous pouvez voir quelques exemples sur mon blog (a également un lien vers la configuration de Jekyll sur github).

    Si vous maîsortingsez suffisamment le processus de publication (par exemple, vous exécutez vous-même Jekyll), une solution simple consiste à passer l’parsingur de démarques à un autre qui prend en charge TeX. Par exemple, en utilisant kramdown :

     gem install kramdown 

    Changer la ligne de _config.yml dans _config.yml à

     markdown: kramdown 

    et append quelque chose comme

      

    à _layouts/default.html . Maintenant, vous pouvez simplement marquer les mathématiques dans vos messages avec $$ .

    J’ai écrit un article sur la création de MathJax il y a quelque temps: Magic Latex Math

    Essentiellement, vous devez arrêter le Markdown de jouer avec le MathJax.

    J’ai fini par utiliser des blocs de code, ce qui a bien fonctionné pour moi. Donc, soit en utilisant au moins 4 espaces avant d’écrire quelque chose ou en utilisant le symbole aigu: ` ; Malheureusement, MathJax ignore les balises par défaut car il ne veut pas convertir le code qu'il ne devrait pas.

    Donc, quelque part dans votre fichier de mise en page principal, vous devez append un petit code javascript:

     MathJax.Hub.Config({ tex2jax: { skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'] } }); 

    De plus, nous devons dire à MathJax d'ignorer les blocs de code non-latex ou les blocs de code normaux:

     MathJax.Hub.Queue(function() { var all = MathJax.Hub.getAllJax(), i; for(i=0; i < all.length; i += 1) { all[i].SourceElement().parentNode.className += ' has-jax'; } }); 

    A son point, tous nos blocs de code latex auront la chaîne has-jax dans leur nom de classe. Par conséquent, nous pouvons appliquer un style simple dans nos feuilles CSS pour lui donner notre propre style.

     code.has-jax {font: inherit; font-size: 100%; background: inherit; border: inherit;} 

    Ce n'est peut-être pas la meilleure approche, mais cela a fonctionné pour mon blog ces dernières années et je n'ai jamais rencontré de problème supplémentaire.

    Si vous utilisez kramdown comme saveur de démarque, c’est facile. Kramdown a un support mathjax pour mathjax .

    1. Ajoutez ceci avant la dans votre mise en page par défaut.

        
    2. Définissez ceci sur true à _config.yml , après la ligne de markdown: kramdown .

       mathjax: true 
    3. Terminé. Pour renvoyer Mathjax

      • inline, utilisez \( ... \) ,
      • bloquer, utilisez \[ ... \] .

        La seule chose à surveiller est l’échappée de la barre oblique inverse lors de l’utilisation du démarquage, les délimiteurs deviennent alors \\( ... \\) et \\[ ... \\] pour les calculs en ligne et en blocs, respectivement.

    4. Voici un exemple de rendu inline MathJax \\( 1/x^{2} \\) , et voici un rendu en bloc: \\[ \frac{1}{n^{2}} \\] .

    Je l’utilise sur mon blog.

    Vous pouvez essayer mon générateur de blog statique: Jekyde . Jekyde est similaire à Jekyll, mais il prend bien soin de LaTeX dans le fichier Markdown. Il vous suffit de mettre vos formules dans $ … $ et $$ … $$. Jekyde contient également un éditeur de démarques dans le navigateur avec prévisualisation LaTeX.