Comment écrire LaTeX dans IPython Notebook?

Quelqu’un peut-il partager le chemin, comment écrire du code LaTeX dans IPython Notebook?

    Ceci est apparu dans une recherche que je venais de faire, a trouvé une meilleure solution avec un peu plus de recherche, les carnets IPython ont maintenant une magie de %%latex qui rend la cellule entière Latex sans le wrapper $$ pour chaque ligne.

    Référer la visite de bloc-notes pour le système d’affichage riche

    Le bloc-notes IPython utilise MathJax pour rendre LaTeX dans html / markdown. Il suffit de mettre vos maths LaTeX dans $$ .

     $$c = \sqrt{a^2 + b^2}$$ 

    sqrt

    Ou vous pouvez afficher la sortie LaTeX / Math à partir de Python, comme indiqué à la fin de la visite du bloc – notes :

     from IPython.display import display, Math, Latex display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi ik} dx')) 

    intégral

    Références LaTeX:

    Le blog d’Udacity a le meilleur Primer LaTeX que j’ai vu: il montre clairement comment utiliser les commandes LaTeX de manière facile à lire et facile à retenir! Fortement recommandé

    Ce lien a d’excellents exemples montrant à la fois le code et le résultat rendu!
    Vous pouvez utiliser ce site pour apprendre rapidement à écrire LaTeX par exemple.

    Et voici une référence rapide pour les commandes / symboles LaTeX .


    Pour résumer: différentes manières d’indiquer LaTeX dans Jupyter / IPython:

    Exemples de cellules Markdown:

    en ligne, envelopper: $

     The equation used depends on whether the the value of $V​max​​$ is R, G, or B. 

    bloquer, envelopper: $$

     $$H← ​​​​​0 ​+​ \frac{​​30(G−B)​​}{Vmax−Vmin} ​​, if V​max​​ = R$$ 

    bloquer, envelopper: \begin{equation} et \end{equation}

     \begin{equation} H← ​​​60 ​+​ \frac{​​30(B−R)​​}{Vmax−Vmin} ​​, if V​max​​ = G \end{equation} 

    bloquer, envelopper: \begin{align} et \end{align}

     \begin{align} H←120 ​+​ \frac{​​30(R−G)​​}{Vmax−Vmin} ​​, if V​max​​ = B \end{align} 

    Exemples de cellules de code:

    La commande LaTex Cell: %%latex magie transforme la cellule entière en cellule LaTeX

     %%latex \begin{align} \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{align} 

    Objet Math à transmettre dans une chaîne LaTeX brute :

     from IPython.display import Math Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi ik} dx') 

    Classe de latex Remarque: vous devez inclure les délimiteurs vous-même. Cela vous permet d’utiliser d’autres modes LaTeX tels que eqnarray :

     from IPython.display import Latex Latex(r"""\begin{eqnarray} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{eqnarray}""") 

    Docs pour Raw Cells:

    (désolé, pas d’exemple ici, juste les docs)

    Cellules brutes Les cellules brutes fournissent un emplacement dans lequel vous pouvez écrire directement les sorties. Les cellules brutes ne sont pas évaluées par le bloc-notes. Lorsqu’elles passent par nbconvert , les cellules brutes arrivent dans le format de destination sans modification. Par exemple, cela vous permet de taper LaTeX complet dans une cellule brute , qui ne sera rendue que par LaTeX après conversion par nbconvert .

    Documentation supplémentaire:

    Pour Markdown Cells, cité par Jupyter Notebook docs :

    Dans les cellules Markdown, vous pouvez également inclure les mathématiques de manière simple, en utilisant la notation standard LaTeX: $ … $ pour les mathématiques en ligne et $$ … $$ pour les mathématiques affichées . Lorsque la cellule Markdown est exécutée, les portions LaTeX sont automatiquement restituées dans la sortie HTML sous forme d’équations avec une typographie de haute qualité. Ceci est rendu possible par MathJax, qui prend en charge un grand sous-ensemble de fonctionnalités LaTeX

    Les environnements mathématiques standard définis par LaTeX et AMS-LaTeX (le package amsmath) fonctionnent également, tels que \ begin {equation} … \ end {equation} et \ begin {align} … \ end {align} . Les nouvelles macros LaTeX peuvent être définies à l’aide de méthodes standard, telles que \ newcommand, en les plaçant entre des délimiteurs mathématiques dans une cellule Markdown. Ces définitions sont alors disponibles tout au long de la session IPython.

    Utilisez $$ si vous voulez que vos calculs apparaissent sur une seule ligne, par exemple

     $$a = b + c$$ (line break after the equation) 

    Si vous n’avez pas besoin d’un saut de ligne après le calcul, utilisez le signe dollar $, par exemple,

     $a = b + c$ (no line break after the equation) 

    Vous pouvez choisir une cellule à marquer, puis écrire un code latex interprété par mathjax, comme l’a dit l’un des intervenants ci-dessus.

    Alternativement, la section Latex du didacticiel du cahier iPython explique bien cela.

    Vous pouvez soit faire:

     from IPython.display import Latex Latex(r"""\begin{eqnarray} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{eqnarray}""") 

    ou faites ceci:

     %%latex \begin{align} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{align} 

    Plus d’infos sur ce lien

    Je ne peux pas nier que je ne suis pas partial, mais je préfère utiliser prettyPy plutôt que d’écrire des expressions LaTeX complètes.

    Exemple:

    entrer la description de l'image ici

    Certes, sympy est une excellente alternative et bien que prettyPy ne permette pas d’évaluer les expressions, l’initialisation des variables n’est pas requirejse.

    Comme je ne pouvais pas utiliser toutes les commandes latex dans Code même après avoir utilisé le mot-clé %% latex ou le limiteur $ .. $, j’ai installé les nbextensions par lesquelles je pouvais utiliser les commandes latex dans Markdown. Après avoir suivi les instructions ici: https://github.com/ipython-consortingb/IPython-notebook-extensions/blob/master/README.md , puis redémarré Jupyter, puis localhost: 8888 / nbextensions, puis activé “Latex Environment for Jupyter “, je pourrais lancer beaucoup de commandes en latex. Les exemples sont ici: https://rawgit.com/jfbercher/latex_envs/master/doc/latex_env_doc.html

     \section{First section} \textbf{Hello} $ \begin{equation} c = \sqrt{a^2 + b^2} \end{equation} $ \begin{itemize} \item First item \item Second item \end{itemize} \textbf{World} 

    Comme vous le voyez, je ne peux toujours pas utiliser usepackage. Mais peut-être que cela sera amélioré à l’avenir.

    entrer la description de l'image ici

    La réponse donnée par minrk (incluse pour être complet) est bonne, mais il y a une autre façon que j’aime encore plus.

    Vous pouvez également rendre une cellule entière en tant que LaTeX en tapant %%latex comme première ligne dans une cellule de texte. Ceci est utile si vous

    • veulent plus de contrôle,
    • veux plus qu’un environnement mathématique,
    • ou si vous allez écrire beaucoup de maths dans une cellule.

    La réponse de minrk :


    Le bloc-notes IPython utilise MathJax pour rendre LaTeX dans html / markdown. Il suffit de mettre vos maths LaTeX dans $$ .

     $$c = \sqrt{a^2 + b^2}$$ 

    sqrt

    Ou vous pouvez afficher la sortie LaTeX / Math à partir de Python, comme indiqué à la fin de la visite du bloc – notes :

     from IPython.display import display, Math, Latex display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi ik} dx')) 

    intégral

    Si votre objective principal est de faire des maths, SymPy fournit une excellente approche pour les expressions de latex fonctionnelles qui ont fière allure.