318 votes

Comment écrire LaTeX dans IPython Notebook ?

Comment puis-je afficher du code LaTeX dans un IPython Notebook ?

4 votes

@duffymo Quelle que soit votre opinion sur LaTeX, c'est une bonne question. Jetez un coup d'œil à ce qu'est réellement IPython notebook. Peut-être que cela vous aidera si je vous dis que c'est un peu comme orgmode sur des 'roids (mais malheureusement sans un éditeur agréable, et avec Markdown au lieu de LaTeX, d'où la question du PO).

1 votes

Je l'ignore, merci pour l'instruction, Konrad.

2 votes

Et, juste pour être clair, je amour LaTeX. (Je l'ai utilisé pour la composition de ma thèse.) Pas d'objection, je n'ai pas compris le problème.

299voto

minrk Points 10008

Le carnet de notes IPython utilise MathJax pour rendre LaTeX à l'intérieur de html/markdown. Il suffit de mettre vos mathématiques LaTeX dans $$ .

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

sqrt

Vous pouvez également afficher le résultat de LaTeX / Maths à partir de Python, comme on peut le voir vers la fin de la page visite du carnet de notes :

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

integral

22 votes

Je pense que l'OP veut utiliser LaTeX. au lieu de Markdown et pas seulement pour les équations. Je comprends la demande - bien que j'aime Markdown, pour les documents complexes, j'utiliserais toujours LaTeX.

17 votes

J'ai compris. La meilleure solution pour l'instant serait d'utiliser des cellules "brutes" au lieu de markdown, et de taper LaTeX comme vous le feriez. Ensuite, utilisez nbconvert pour transformer l'ipynb en TeX (code, figures et tout), et exécuter latex pour rendre le tout en PDF, etc. Vous n'obtenez pas un rendu TeX en direct dans le navigateur comme c'est le cas avec MathJax / Markdown, mais vous avez toujours TeX / code dans un seul document.

1 votes

Même question mais dans qtconsole

174voto

hochopeper Points 211

J'ai trouvé une meilleure solution en cherchant un peu plus, les carnets de notes IPython ont maintenant une fonction %%latex magie qui fait de la cellule entière du Latex sans le $$ pour chaque ligne.

Reportez-vous à la visite du carnet de notes pour Système d'affichage riche

39 votes

Dans Jupyter, cela ne fonctionne pas dans une cellule markdown mais cela fonctionne dans une cellule de code.

2 votes

Maintenant, il travaille sur Jupiter. Je mets %%latex dans une cellule, et j'importe les from IPython.display import Latex . Après cela, le carnet Jupyter reconnaît la notation Latex.

35voto

user2956795 Points 71

Utilisez $$ si vous voulez que vos mathématiques apparaissent sur une seule ligne, par exemple,

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

Si vous n'avez pas besoin d'un retour à la ligne après les calculs, utilisez le signe dollar simple $, par exemple,

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

24voto

T D Points 56

Vous pouvez choisir une cellule pour être markdown, puis écrire du code latex qui sera interprété par mathjax, comme le dit l'un des intervenants ci-dessus.

Alternativement, la section Latex du tutoriel iPython notebook explique bien cela.

Vous pouvez soit le 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 ça :

%%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'informations sur ce site enlace

4 votes

Votre lien est maintenant rompu

1 votes

15voto

Charlie Points 89

J'ai développé prettyPy qui offre un moyen agréable d'imprimer une équation. Malheureusement, il n'est pas performant et doit être testé.

Exemple :

enter image description here

Accordé, symphonie est une excellente alternative et bien que prettyPy ne permette pas d'évaluer les expressions, l'initialisation des variables n'est pas nécessaire.

2 votes

Je voulais simplement laisser entendre que c'est moi qui ai développé le paquet. J'ai ajusté ma réponse pour l'indiquer explicitement.

1 votes

Félicitations pour avoir mis le code dans le domaine public. Je vais supprimer mon commentaire (maintenant) obsolète.

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