Comment afficher le code LaTeX dans un bloc-notes IPython?
Comment afficher le code LaTeX dans un bloc-notes IPython?
Réponses:
Ceci est apparu dans une recherche que je faisais, a trouvé une meilleure solution avec un peu plus de recherche, les cahiers IPython ont maintenant une %%latex
magie qui rend la cellule entière en Latex sans le $$
wrapper pour chaque ligne.
Reportez-vous à la visite du bloc-notes pour Rich Display System
Le bloc-notes IPython utilise MathJax pour rendre LaTeX dans html / markdown. Mettez simplement vos calculs LaTeX à l'intérieur $$
.
$$c = \sqrt{a^2 + b^2}$$
Ou vous pouvez afficher la sortie LaTeX / Math de Python, comme vu vers 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 i k} dx'))
LaTeX
en tapant %%latex
comme première ligne dans une cellule de texte.
Le blog d'Udacity a le meilleur apprêt LaTeX que j'ai vu: il montre clairement comment utiliser les commandes LaTeX d'une manière facile à lire et à retenir !! Hautement 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 comment écrire LaTeX par exemple.
Et, voici une référence rapide pour les commandes / symboles LaTeX .
en ligne, enveloppez: $
The equation used depends on whether the the value of
$Vmax$ is R, G, or B.
bloquer, envelopper: $$
$$H← 0 + \frac{30(G−B)}{Vmax−Vmin} , if Vmax = R$$
bloquer, envelopper:\begin{equation}
et\end{equation}
\begin{equation}
H← 60 + \frac{30(B−R)}{Vmax−Vmin} , if Vmax = G
\end{equation}
bloquer, envelopper:\begin{align}
et\end{align}
\begin{align}
H←120 + \frac{30(R−G)}{Vmax−Vmin} , if Vmax = B
\end{align}
LaTex Cell: %%latex
commande magique transforme la cellule entière en une LATEX cellulaire
%%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 à passer dans une chaîne brute LaTeX :
from IPython.display import Math
Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')
Cours 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 les documents)
Cellules brutes Les cellules brutes fournissent un emplacement dans lequel vous pouvez écrire directement la sortie. Les cellules brutes ne sont pas évaluées par l'ordinateur portable. Lorsqu'elles sont transmises
nbconvert
, les cellules brutes arrivent au format de destination non modifiées. Par exemple, cela vous permet de taper LaTeX complet dans une cellule brute , qui ne sera rendue par LaTeX qu'après conversion parnbconvert
.
Pour les cellules Markdown, telles que citées dans les documents Jupyter Notebook :
Dans les cellules Markdown, vous pouvez également inclure les mathématiques de manière simple, en utilisant la notation LaTeX standard: $ ... $ pour les mathématiques en ligne 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 prend en charge un large 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 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 le signe dollar simple $, 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'un des répondants l'a dit ci-dessus.
Alternativement, la section Latex du didacticiel du bloc-notes iPython l'explique 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 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'informations trouvées dans ce lien
J'ai développé prettyPy , qui offre une belle façon d'imprimer une équation. Malheureusement, ce n'est pas performant et doit être testé.
Exemple:
Certes, sympy est une excellente alternative et bien que prettyPy ne permette pas d'évaluer les expressions, l'initialisation des variables n'est pas requise.
Depuis, je n'ai pas pu 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 grâce auxquelles je pouvais utiliser les commandes latex dans Markdown. Après avoir suivi les instructions ici: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md puis redémarrer Jupyter puis localhost: 8888 / nbextensions puis activer "Latex Environment for Jupyter ", j'ai pu exécuter de nombreuses commandes Latex. Des 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 il sera peut-être 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 que j'aime encore plus.
Vous pouvez également afficher une cellule entière LaTeX
en tapant %%latex
comme première ligne dans une cellule de texte. C'est utile si vous
Le bloc-notes IPython utilise MathJax pour rendre LaTeX dans html / markdown. Mettez simplement vos calculs LaTeX à l'intérieur
$$
.$$c = \sqrt{a^2 + b^2}$$
Ou vous pouvez afficher la sortie LaTeX / Math de Python, comme vu vers 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 i k} dx'))
Si votre objectif principal est de faire des mathématiques, SymPy fournit une excellente approche des expressions fonctionnelles en latex qui ont fière allure.
J'ai écrit comment écrire LaTeX dans Jupyter Notebook dans cet article.
Vous devez les entourer de signes dollar ($).
$P(A)=\frac{n(A)}{n(U)}$
$$P(A)=\frac{n(A)}{n(U)}$$
Utilisez \limits
pour \lim
, \sum
et \int
d'ajouter des limites vers le haut et le bas de chaque signe.
Utilisez une barre oblique inverse pour échapper aux mots spéciaux LaTeX tels que les symboles mathématiques, les mots latins, le texte, etc.
Essaye celui-là.
$$\overline{x}=\frac{\sum \limits _{i=1} ^k f_i x_i}{n} \text{, where } n=\sum \limits _{i=1} ^k f_i $$
$$
\begin{align}
\text{Probability density function:}\\
\begin{cases}
\frac{1}{b-a}&\text{for $x\in[a,b]$}\\
0&\text{otherwise}\\
\end{cases}
\\
\text{Cumulative distribution function:}\\
\begin{cases}
0&\text{for $x<a$}\\
\frac{x-a}{b-a}&\text{for $x\in[a,b)$}\\
1&\text{for $x\ge b$}\\
\end{cases}
\end{align}
$$
Le code ci-dessus va créer cela.
Si vous voulez savoir comment ajouter une numérotation aux équations et aligner les équations, veuillez lire cet article pour plus de détails .
L'utilisation de la syntaxe LaTeX directement dans une cellule Markdown fonctionne pour moi. J'utilise Jypiter 4.4.0.
Je n'ai pas besoin d'utiliser %%latex
la commande magique, j'insiste, simplement une cellule de démarque:
\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 à:
J'ai rencontré ce problème un jour en utilisant colab. Et je trouve que le moyen le plus indolore consiste simplement à exécuter ce code avant d'imprimer. Tout fonctionne alors comme un charme.
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 Jupyter Notebooks. Je devais écrire
%%latex
$sin(x)/x$
pour obtenir une police LaTex.