Complete Guide to Using LaTeX in Jupyter Notebook

Nov 18, 2025 · Programming · 20 views · 7.8

Keywords: Jupyter Notebook | LaTeX | MathJax | Mathematical Formulas | IPython

Abstract: This article provides a comprehensive overview of rendering LaTeX mathematical formulas in Jupyter Notebook, covering inline and block formulas in Markdown cells, MathJax display in code cells, the %%latex magic command, and usage of the Latex class. Based on high-scoring Stack Overflow answers and official documentation, it offers complete code examples and best practices to help users choose appropriate LaTeX rendering methods for different scenarios.

Introduction

Jupyter Notebook (formerly IPython Notebook), as a crucial tool in data science and academic research, has built-in robust support for LaTeX. Through the MathJax library, users can elegantly display mathematical formulas and symbols in notebooks. This article systematically introduces various methods for using LaTeX in Jupyter Notebook, covering different scenarios in both Markdown cells and code cells.

LaTeX Rendering in Markdown Cells

In Markdown cells, LaTeX formulas can be directly embedded using simple delimiters. For inline formulas, use single dollar signs $...$; for independently displayed block formulas, use double dollar signs $$...$$. For example:

The Pythagorean theorem formula is $c = \sqrt{a^2 + b^2}$, which describes the relationship between the sides of a right triangle.

The above code will render as: The Pythagorean theorem formula is $c = \sqrt{a^2 + b^2}$, which describes the relationship between the sides of a right triangle.

Using Standard LaTeX Environments

Jupyter Notebook supports standard LaTeX math environments such as equation and align. These environments can automatically number and align multi-line formulas. For example:

\begin{equation}
H = 60 + \frac{30(B - R)}{V_{max} - V_{min}}, \quad \text{if } V_{max} = G
\end{equation}

Using the align environment provides better handling of multi-line formula alignment:

\begin{align}
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\
\nabla \times \vec{\mathbf{E}} + \frac{1}{c} \frac{\partial \vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}}
\end{align}

LaTeX Display in Code Cells

In code cells, LaTeX formulas can be rendered through IPython's display system. The %%latex magic command treats the entire cell content as LaTeX code:

%%latex
\begin{align}
F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx
\end{align}

This method is particularly suitable for scenarios requiring dynamically generated complex formulas.

Using Math and Latex Classes

For finer control, use the Math and Latex classes from the IPython.display module. The Math class automatically adds math mode delimiters:

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

The Latex class requires manual specification of delimiters and supports more complex LaTeX environments:

from IPython.display import Latex
Latex(r"""\begin{eqnarray}
\nabla \times \vec{\mathbf{B}} - \frac{1}{c} \frac{\partial \vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\
\nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho
\end{eqnarray}""")

Usage of Raw Cells

Raw Cells provide another way to use LaTeX. The content of these cells is not computed by Jupyter but retains complete LaTeX code when converted via nbconvert. This is particularly useful for documents requiring subsequent LaTeX processing.

Best Practices and Considerations

When using LaTeX, it is recommended to: use raw strings to avoid escape issues, appropriately choose formula environments to ensure correct alignment, and utilize LaTeX for formatting labels and titles in visualizations. Mastering these techniques can significantly enhance the professionalism and readability of Jupyter Notebook documents.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.