Comment puis-je afficher le code LaTeX dans un bloc-notes IPython?
Ceci est apparu dans une recherche que je venais de faire, a trouvé une meilleure solution avec davantage de recherche. Les ordinateurs portables IPython ont maintenant une magie %%latex
qui rend toute la cellule Latex sans le wrapper $$
pour chaque ligne.
Se reporter au carnet de notes pour Rich Display System
Le cahier IPython utilise MathJax pour rendre LaTeX à l'intérieur de HTML/Markdown. Il suffit de mettre votre calcul LaTeX dans $$
.
$$c = \sqrt{a^2 + b^2}$$
Ou vous pouvez afficher la sortie LaTeX/Math de Python, comme on le voit vers la fin du visite du portable :
from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
Le blog d'Udacity contient le Meilleuramorce LaTeX Je l'ai déjà vu: il montre clairement comment utiliser les commandes LaTeX de manière simple à lire et à mémoriser manière !! 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 un rapide référence pour LaTeX commandes/symboles.
inline, wrap in: _$
_
_The equation used depends on whether the the value of
$Vmax$ is R, G, or B.
_
block, wrap in: _$$
_
_$$H← 0 + \frac{30(G−B)}{Vmax−Vmin} , if Vmax = R$$
_
block, wrap in: _\begin{equation}
_ et _\end{equation}
_
_\begin{equation}
H← 60 + \frac{30(B−R)}{Vmax−Vmin} , if Vmax = G
\end{equation}
_
block, wrap in: _\begin{align}
_ et _\end{align}
_
_\begin{align}
H←120 + \frac{30(R−G)}{Vmax−Vmin} , if Vmax = B
\end{align}
_
Cellule LaTex:%%latex
une commande magique transforme le cellule entière en LaTeX Cell =
_%%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ématique pour passer un chaîne de caractères LaTeX brut:
_from IPython.display import Math
Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} 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}""")
_
(désolé, pas d'exemple ici, juste la documentation)
Cellules brutes Les cellules brutes fournissent un emplacement dans lequel vous pouvez écrire directement une sortie. Les cellules brutes ne sont pas évaluées par le bloc-notes. Lorsqu'elles sont transmises via
nbconvert
, les cellules brutes arrivent dans le format de destination non modifiées. Par exemple, cela vous permet de taper Full LaTeX dans une cellule brute, qui ne sera restitué que par LaTeX après conversion parnbconvert
.
Pour les cellules de démarcation, citées de documents Jupyter Notebook :
Dans les cellules de Markdown, vous pouvez également inclure les mathématiques de manière simple, en utilisant la notation LaTeX standard: $ ... $ pour les mathématiques intégrées et $$ ... $$ pour les mathématiques affichées. Lorsque la cellule Markdown est exécutée, les parties LaTeX sont automatiquement rendues dans la sortie HTML sous forme d'équations avec une typographie de haute qualité. Ceci est rendu possible par MathJax, qui supporte un large sous-ensemble de fonctionnalités LaTeX
Les environnements mathématiques standard définis par LaTeX et AMS-LaTeX (le paquet 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 n'importe où entre les délimiteurs mathématiques dans une cellule Markdown. Ces définitions sont ensuite disponibles dans le reste de la session IPython.
Utilisez $$ si vous souhaitez 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 un seul signe dollar $, par exemple,
$a = b + c$ (no line break after the equation)
Vous pouvez choisir une cellule à démarquer, puis écrire du code latex qui sera interprété par mathjax, comme l’a dit l’un des répondants ci-dessus.
Alternativement, la section Latex du didacticiel de l’ordinateur portable iPython explique cela très bien.
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 faire 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'informations trouvées dans ce lien
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:
Accordé, sympy est une excellente alternative et bien que prettyPy ne permette pas l'évaluation d'expressions, l'initialisation de variable n'est pas requise.
Depuis, je n’étais pas capable d’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 à travers lesquelles je pouvais utiliser les commandes latex dans Markdown. Après avoir suivi les instructions suivantes: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md puis redémarrez Jupyter puis localhost: 8888/nbextensions puis en activant "Latex Environment for Jupyter", je pouvais exécuter de nombreuses commandes Latex. Voici des exemples: 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 sera-t-il amélioré à l'avenir.
La réponse donnée par minrk (inclus pour être complet) est bonne, mais il y a une autre façon qui me plait encore plus.
Vous pouvez également rendre une cellule entière sous la forme LaTeX
en tapant %%latex
en tant que première ligne d'une cellule de texte. Ceci est utile si vous
minrk la réponse de:
Le cahier IPython utilise MathJax pour rendre LaTeX à l'intérieur de HTML/Markdown. Il suffit de mettre votre calcul LaTeX dans
$$
.$$c = \sqrt{a^2 + b^2}$$
Ou vous pouvez afficher la sortie LaTeX/Math de Python, comme on le voit vers la fin du visite du portable :
from IPython.display import display, Math, Latex display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
Si votre objectif principal est de faire des calculs, SymPy fournit ne excellente approche des expressions fonctionnelles en latex qui ont fière allure.
Utiliser la syntaxe LaTeX directement dans une cellule de Markdown me convient. J'utilise Jypiter 4.4.0.
Je n'ai pas besoin d'utiliser la commande magique %%latex
, j'insiste, simplement une cellule de démarquage:
\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}
Rend à:
Je suis tombé sur ce problème un jour en utilisant colab. Et je trouve que le moyen le plus simple est d’exécuter ce code avant l’impression. Tout fonctionne comme un charme alors.
from IPython.display import Math, HTML
def load_mathjax_in_cell_output():
display(HTML("<script src='https://www.gstatic.com/external_hosted/"
"mathjax/latest/MathJax.js?config=default'></script>"))
get_ipython().events.register('pre_run_cell', load_mathjax_in_cell_output)
import sympy as sp
sp.init_printing()
Le résultat ressemble à ceci:
J'utilise des cahiers Jupyter. Je devais écrire
%%latex
$sin(x)/x$
obtenir une police LaTex.