¿Cómo puedo mostrar el código LaTeX en un cuaderno de IPython?
¿Cómo puedo mostrar el código LaTeX en un cuaderno de IPython?
Respuestas:
Esto surgió en una búsqueda que estaba haciendo, encontré una mejor solución con un poco más de búsqueda, los portátiles IPython ahora tienen una %%latex
magia que hace que toda la celda sea Latex sin el $$
envoltorio para cada línea.
Consulte el recorrido del cuaderno para el Sistema de pantalla enriquecida
El cuaderno de IPython usa MathJax para renderizar LaTeX dentro de html / markdown. Simplemente ponga sus matemáticas de LaTeX adentro $$
.
$$c = \sqrt{a^2 + b^2}$$
O puede mostrar la salida de LaTeX / Math de Python, como se ve al final del recorrido del cuaderno :
from IPython.display import display, Math, Latex
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
LaTeX
escribiendo %%latex
la primera línea en una celda de texto.
El blog de Udacity tiene el mejor manual de LaTeX que he visto: ¡muestra claramente cómo usar los comandos de LaTeX de manera fácil de leer y recordar! Muy recomendable .
¡Este enlace tiene excelentes ejemplos que muestran tanto el código como el resultado representado!
Puede usar este sitio para aprender rápidamente cómo escribir LaTeX por ejemplo.
Y aquí hay una referencia rápida para los comandos / símbolos de LaTeX .
en línea, envuelva en: $
The equation used depends on whether the the value of
$Vmax$ is R, G, or B.
bloque, envolver en: $$
$$H← 0 + \frac{30(G−B)}{Vmax−Vmin} , if Vmax = R$$
bloquear, envolver:\begin{equation}
y\end{equation}
\begin{equation}
H← 60 + \frac{30(B−R)}{Vmax−Vmin} , if Vmax = G
\end{equation}
bloquear, envolver:\begin{align}
y\end{align}
\begin{align}
H←120 + \frac{30(R−G)}{Vmax−Vmin} , if Vmax = B
\end{align}
Celda LaTex: el %%latex
comando mágico convierte la celda completa en una celda 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}
Objeto matemático para pasar en una cadena de LaTeX sin procesar :
from IPython.display import Math
Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx')
Clase de látex . Nota: debe incluir los delimitadores usted mismo. Esto le permite usar otros modos de LaTeX como 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}""")
(lo siento, no hay ejemplo aquí, solo los documentos)
Celdas sin formato Las celdas sin formato proporcionan un lugar en el que puede escribir la salida directamente. Las celdas sin procesar no son evaluadas por el cuaderno. Cuando se pasan
nbconvert
, las celdas sin procesar llegan en el formato de destino sin modificaciones. Por ejemplo, esto le permite escribir LaTeX completo en una celda sin procesar , que solo será procesada por LaTeX después de la conversiónnbconvert
.
Para Markdown Cells, como se cita de los documentos de Jupyter Notebook :
Dentro de las celdas Markdown, también puede incluir las matemáticas de una manera directa, utilizando la notación LaTeX estándar: $ ... $ para las matemáticas en línea y $$ ... $$ para las matemáticas que se muestran . Cuando se ejecuta la celda Markdown, las porciones de LaTeX se representan automáticamente en la salida HTML como ecuaciones con tipografía de alta calidad. Esto es posible gracias a MathJax, que admite un gran subconjunto de funcionalidades de LaTeX
Los entornos matemáticos estándar definidos por LaTeX y AMS-LaTeX (el paquete amsmath) también funcionan, como \ begin {ecation} ... \ end {ecation} y \ begin {align} ... \ end {align} . Las nuevas macros de LaTeX se pueden definir utilizando métodos estándar, como \ newcommand, colocándolos en cualquier lugar entre delimitadores matemáticos en una celda de Markdown. Estas definiciones están disponibles en todo el resto de la sesión de IPython.
Use $$ si desea que sus matemáticas aparezcan en una sola línea, por ejemplo,
$$a = b + c$$ (line break after the equation)
Si no necesita un salto de línea después de las matemáticas, use un solo signo de dólar $, por ejemplo,
$a = b + c$ (no line break after the equation)
Puede elegir una celda para que sea rebajada, luego escribir código de látex que mathjax interprete, como dice uno de los que respondieron anteriormente.
Alternativamente, la sección Latex del tutorial del cuaderno iPython explica esto bien.
Puedes hacer lo siguiente:
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}""")
o haz esto:
%%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}
Más información encontrada en este enlace
Desarrollé prettyPy , que ofrece una buena manera de imprimir ecuaciones. Desafortunadamente, no es eficiente y necesita pruebas.
Ejemplo:
Por supuesto, sympy es una gran alternativa y, aunque prettyPy no permite evaluar expresiones, no se requiere inicialización de variables.
Como no pude usar todos los comandos de látex en Code incluso después de usar la palabra clave %% latex o el limitador $ .. $, instalé las nbextensions a través de las cuales podía usar los comandos de latex en Markdown. Después de seguir las instrucciones aquí: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md y luego reinicie Jupyter y luego localhost: 8888 / nbextensions y luego active "Latex Environment para Jupyter ", podría ejecutar muchos comandos de Latex. Los ejemplos están aquí: 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}
Como puede ver, todavía no puedo usar usepackage. Pero tal vez se mejorará en el futuro.
La respuesta dada por minrk (incluida para completar) es buena, pero hay otra forma en que me gusta aún más.
También puede representar una celda completa LaTeX
escribiendo %%latex
la primera línea en una celda de texto. Esto es útil si usted
La respuesta de minrk :
El cuaderno de IPython usa MathJax para renderizar LaTeX dentro de html / markdown. Simplemente ponga sus matemáticas de LaTeX adentro
$$
.$$c = \sqrt{a^2 + b^2}$$
O puede mostrar la salida de LaTeX / Math de Python, como se ve al final del recorrido del cuaderno :
from IPython.display import display, Math, Latex display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
Si su objetivo principal es hacer matemáticas, SymPy proporciona un enfoque excelente para las expresiones funcionales de látex que se ven geniales.
Escribí cómo escribir LaTeX en Jupyter Notebook en este artículo.
Debe encerrarlos en signos de dólar ($).
$P(A)=\frac{n(A)}{n(U)}$
$$P(A)=\frac{n(A)}{n(U)}$$
Utilizar \limits
para \lim
, \sum
y \int
para agregar límites a la parte superior y la parte inferior de cada signo.
Use una barra invertida para escapar de palabras especiales de LaTeX como símbolos matemáticos, palabras latinas, texto, etc.
Prueba este.
$$\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}
$$
El código anterior creará esto.
Si desea saber cómo agregar numeración a ecuaciones y alinear ecuaciones, lea este artículo para obtener más detalles .
Usar la sintaxis de LaTeX directamente en una celda Markdown funciona para mí. Estoy usando Jypiter 4.4.0.
No tengo que usar el %%latex
comando mágico, insisto, simplemente una celda de reducción:
\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}
Renders a:
Encontré este problema algún día usando colab. Y creo que la forma más sencilla es ejecutar este código antes de imprimirlo. Todo funciona como encanto entonces.
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()
El resultado se ve así:
Estoy usando los cuadernos Jupyter. Tuve que escribir
%%latex
$sin(x)/x$
para obtener una fuente LaTex.