Cómo escribir LaTeX en IPython Notebook?


¿Puede alguien compartir el camino, cómo escribir código LaTeX en IPython Notebook?

Author: hooy, 2012-11-03

9 answers

Esto surgió en una búsqueda que estaba haciendo, encontré una mejor solución con un poco más de búsqueda, los cuadernos IPython ahora tienen una %%latex magia que hace que toda la celda sea látex sin la envoltura $$ para cada línea.

Consulte el recorrido del cuaderno para El Sistema de visualización Enriquecido

 94
Author: hochopeper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-18 12:36:50

IPython notebook utiliza MathJax para renderizar LaTeX dentro de html/markdown. Simplemente pon tus matemáticas de LaTeX dentro de $$.

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

sqrt

O puede mostrar la salida LaTeX / Math de Python, como se ve hacia el 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'))

integral

 227
Author: minrk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-08 14:38:10

Referencias de látex:

El blog de Udacity tiene el Mejor Imprimación de Látex He visto: Muestra claramente cómo usar los comandos de LaTeX de manera fácil de leer y fácil de recordar.! Muy recomendable.

Este Enlace tiene Excelentes Ejemplos mostrando tanto el código, y el resultado representado !
Puede utilizar este sitio para aprender rápidamente cómo escribir LaTeX por ejemplo.

Y, aquí hay una referencia rápida para LaTeX comandos/símbolos.


Para resumir: varias formas de indicar LaTeX en Jupyter/IPython:{[41]]}

Ejemplos para celdas de Rebaja:

En línea, envolver en: $

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

Bloquear, envolver: $$

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

Bloquear, envolver: \begin{equation} y \end{equation}

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

Bloquear, envolver: \begin{align} y \end{align}

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

Ejemplos para las Celdas de Código:

Látex Cell: %%latex el comando mágico convierte la celda completa en una Celda de látex

%%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 Math para pasar una cadena LaTeX sin procesar :

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

Clase Latex . Nota: debe incluir los delimitadores usted mismo. Esto le permite usar otros modos 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}""")

Docs for Células en Bruto:

(lo siento, no hay ejemplo aquí, solo los documentos)

Células sin procesar Crudo las celdas proporcionan un lugar en el que puede escribir la salida directamente. Las celdas sin procesar no son evaluadas por el cuaderno. Cuando se pasa a través de nbconvert, las celdas raw llegan en el formato de destino sin modificar. Por ejemplo, esto le permite escribir LaTeX completo en una celda raw, que solo será renderizada por LaTeX después de la conversión por nbconvert.

Documentación adicional:

Para las celdas de rebaja, como se cita de Jupyter Notebook docs :

Dentro Markdown celdas, también puede incluir matemáticas de una manera sencilla, utilizando la notación LaTeX estándar: }... mathematics para matemáticas en línea y $ $...mathematics for displayed mathematics . Cuando se ejecuta la celda Markdown, las porciones LaTeX se representan automáticamente en la salida HTML como ecuaciones con tipografía de alta calidad. Esto es posible gracias a MathJax, que soporta un gran subconjunto de funcionalidad LaTeX

Entornos matemáticos estándar definidos por LaTeX y AMS-LaTeX (el paquete amsmath) también funciona, como \begin{equation}...\end{equation}, and \begin{align}...\end{align}. Las nuevas macros LaTeX se pueden definir utilizando métodos estándar, como \newcommand, colocándolas en cualquier lugar entre delimitadores matemáticos en una celda de marcado. Estas definiciones están disponibles durante el resto de la sesión de IPython.

 34
Author: SherylHohman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-18 19:33:53

Use 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 el signo de dólar único$, por ejemplo,

$a = b + c$   (no line break after the equation)
 28
Author: linbianxiaocao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-25 19:18:48

Puede elegir una celda para ser markdown, luego escribir código latex que es interpretado por mathjax, como uno de los respondedores dice anteriormente.

Alternativamente, la sección Latex del tutorial del cuaderno de IPython explica esto bien.

Puedes hacer:

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 en este enlace

 20
Author: T D,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-02 21:06:33

No puedo negar que no estoy sesgado, pero prefiero usar prettyPy en lugar de escribir expresiones LaTeX completas.

Ejemplo:

introduzca la descripción de la imagen aquí

Concedido, sympy es una gran alternativa y aunque prettyPy no permite evaluar expresiones, no se requiere inicialización variable.

 8
Author: Charles,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-17 01:50:29

Desde entonces, no pude usar todos los comandos latex en el Código incluso después de usar la palabra clave %%latex o el $.. lim limiter, instalé las nbextensions a través de las cuales podía usar los comandos latex en Markdown. Después de seguir las instrucciones aquí: https://github.com/ipython-contrib/IPython-notebook-extensions/blob/master/README.md y luego reiniciar el Jupyter y luego localhost: 8888 / nbextensions y luego activar "Entorno Latex para Jupyter", podría ejecutar muchos Latex comando. 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 ves, todavía no puedo usar usepackage. Pero tal vez se mejorará en el futuro.

introduzca la descripción de la imagen aquí

 6
Author: infoclogged,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-03-07 10:19:01

La respuesta dada por minrk (incluida para completar) es buena, pero hay otra manera que me gusta aún más.

También puede representar una celda completa como LaTeX escribiendo %%latex como la primera línea en una celda de texto. Esto es útil si

  • quieren más control,
  • quiere algo más que un entorno matemático,
  • o si vas a escribir muchas matemáticas en una celda.

Respuesta de Minrk :


IPython notebook utiliza MathJax para renderizar LaTeX dentro de html / markdown. Solo tienes que poner tu LaTeX math dentro de $$.

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

sqrt

O puede mostrar la salida LaTeX / Math de Python, como se ve hacia el final del cuaderno tour:

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

integral

 4
Author: Toke Faurby,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:33:24

Si su objetivo principal es hacer matemáticas, SymPy proporciona un excelente enfoque para expresiones latex funcionales que se ven geniales.

 2
Author: Eron Lloyd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-22 21:58:49