52 votes

Les mathématiques dans reStructuredText avec LaTeX

J'aimerais utiliser un langage de balisage léger pour prendre des notes dans mes cours à l'université.

Mon éditeur de choix est gedit, et j'ai trouvé Outils reStructuredText pour Gedit qui exécutera le processeur reStructuredText et rendra le HTML dans un volet de gedit. C'est génial, et c'est à 80% le cas.

Mais pour beaucoup de mes cours, j'ai besoin d'inclure des équations mathématiques ou des caractères grecs dans mes notes. Bien que je ne sois pas très familier avec LaTeX, je crois savoir qu'il possède ces capacités.

Comment utiliser LaTeX dans un document reST ? Le document reST doit-il être traité en LaTeX, puis rendu en HTML, ou existe-t-il une meilleure méthode ? Le format markdown faciliterait-il les choses ? Je peux modifier le plugin gedit si nécessaire.

Enfin, est-ce que quelqu'un fait cela ? Avez-vous d'autres suggestions pour prendre des notes de cours dans un éditeur de texte brut ?

Merci !

72voto

devsnd Points 2718

Depuis la version 0.8, il est pris en charge en mode natif : Vous ne devez plus utiliser de solution de contournement. La syntaxe est également très simple. C'est la même que celle des mathématiques de latex, mais sans l'entourage $$

Vous pouvez donc simplement écrire ce qui suit pour un bloc mathématique

.. math::

   \frac{ \sum_{t=0}^{N}f(t,k) }{N}

Ou si vous voulez écrire en ligne, vous pouvez utiliser ceci :

:math:`\frac{ \sum_{t=0}^{N}f(t,k) }{N}`

remarquez les backticks de délimitation ici.


UPDATE :

dans les versions plus récentes, il semble nécessaire d'utiliser une double barre oblique inversée pour les éléments mathématiques, de sorte qu'il s'agit de \\frac et non \frac

31voto

Günter Milde Points 281

Il existe un support natif pour un rôle et une directive " maths (utilisant la syntaxe d'entrée LaTex) depuis la version 0.8 (2011-07-07).

25voto

gozzilli Points 1474

C'est ce que je fais :

  1. Ajoutez un rôle pour les mathématiques au début de votre document reST :

    .. role:: raw-math(raw)
        :format: latex html
  2. Écrivez vos maths comme

    :raw-math:`$$ \frac{s}{\sqrt{N}} $$`

    (utiliser $$ ... $$ si vous le voulez dans un bloc, ou $ ... $ si vous le voulez en ligne).

  3. Générer une sortie html comme ceci :

    rst2html --stylesheet=/path/to/my_beautiful_stylesheet.css my_file.rst \
    | tidy -q | /path/to/itex2MML > my_file.xhtml

    Cela génère le html avec rst2html , fait le ménage avec tidy et convertit ensuite les mathématiques de latex en MathML avec itex2MML et la sortie sur un fichier xhtml.

Notes :

  1. La feuille de style est facultative
  2. Pour itex2MML, allez aquí .
  3. L'extension de votre fichier html doit être xhtml ou xml, sinon les calculs ne s'afficheront pas dans votre navigateur.

9voto

Mike DeSimone Points 20059

LaTeX et ReST sont deux solutions au même problème (le balisage de tout le document), et je ne suis pas sûr que l'une soit heureuse de vivre dans l'autre.

  • LaTeX d'abord, puis ReST : LaTeX a besoin de positionner précisément les éléments typographiques afin de mettre en page les équations (et tout le reste). ReST ne prendrait pas la sortie LaTeX (PostScript ou similaire) comme entrée.
  • ReST d'abord, puis LaTeX : Il faudrait écrire un formateur de sortie pour ReST qui produise du code LaTeX, et définir des extensions dans ReST pour l'empêcher de mal interpréter vos équations ou autres TeX explicites. Votre sortie de LaTeX sera toujours quelque chose qui ressemble à du PostScript ou du PDF.

J'ai vu du code permettant d'utiliser un sous-ensemble de TeX pour générer une équation graphique qui est ensuite extraite en HTML ou similaire (par exemple, La macro de formule LaTeX de Trac ), ce qui peut constituer la meilleure solution disponible.

5voto

Philipp Points 21479

Le problème est que reST n'a pas vraiment de plugins. Vous pourriez choisir un framework extensible tel que Sphinx ; un plugin pour JSMath est déjà inclus, et un plugin pour MathJax est également possible. En outre, Sphinx utilise LaTeX pour créer directement des documents PDF.

Une autre solution plus légère consiste à modifier le modèle reST pour y inclure MathJax, de sorte que vous puissiez simplement utiliser la syntaxe de MathJax (semblable à LaTeX) dans le document.

Mais en général, j'utilise directement LaTeX pour tout ce qui est sérieux - les capacités de personnalisation de ces langages de balisage légers ne sont pas assez complètes pour tout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X