Introduction to Writing LaTeX in Jupyter

Writing LaTeX in Jupyter notebooks can be a fantastic way to create and share documents that include mathematical equations, diagrams, and other forms of scientific communication. LaTeX is a high-quality typesetting system that is widely used in academic and scientific publishing. Jupyter notebooks, on the other hand, are a powerful tool for interactive computing and data analysis. Here, we will explore how to write LaTeX in Jupyter notebooks, focusing on both the basics and some advanced techniques.
Setting Up Your Jupyter Notebook
Before you start writing LaTeX in your Jupyter notebook, ensure you have Jupyter installed. You can install it via pip:
pip install jupyter
For LaTeX rendering, you might also want to install MathJax
or ensure that you have a LaTeX distribution installed on your system if you plan to export your notebooks to PDF.
1. Basic LaTeX Equations

To write LaTeX equations in a Jupyter notebook, you can use the Markdown cell type and enclose your LaTeX code within dollar signs $
for inline equations or double dollar signs $$
for display equations.
For example, to write the famous equation E=mc^2, you would write:
The equation $E=mc^2$ shows the relationship between energy and mass.
For a display equation, such as Einstein’s field equations, you would use:
$$R_{\mu\nu} - \frac{1}{2}Rg_{\mu\nu} = \frac{8\pi G}{c^4}T_{\mu\nu}$$
2. Advanced LaTeX Techniques
For more complex documents, you might want to use advanced LaTeX features like tables, figures, or even TikZ diagrams directly within your Jupyter notebook. However, direct support for these features is limited in standard Jupyter notebooks. Instead, you can write the LaTeX code for these elements and then use the !latex
command in a code cell to compile a .tex
file, which you can then convert to PDF.
Example of Compiling a LaTeX Document
import subprocess
# Your LaTeX code here
latex_code = """
\\documentclass{article}
\\begin{document}
\\section{Introduction}
This is an example document.
\\end{document}
"""
# Write the LaTeX code to a file
with open("example.tex", "w") as f:
f.write(latex_code)
# Compile the LaTeX document
subprocess.run(["pdflatex", "example.tex"])
3. Using Markdown Cells for LaTeX
Markdown cells in Jupyter notebooks support LaTeX for typesetting mathematical equations via MathJax. This is the most straightforward way to include LaTeX in your notebooks.
## Mathematical Expressions
The *Navier-Stokes Equations* for a Newtonian fluid are given by:
$$
\frac{\partial \mathbf{u}}{\partial t} + \mathbf{u} \cdot \nabla \mathbf{u} = -\frac{1}{\rho}\nabla p + \nu \nabla^2 \mathbf{u}
$$
4. LaTeX in Code Cells

While Markdown cells are ideal for text and equations, you might sometimes want to generate LaTeX code dynamically within a code cell, especially when working with data that you want to visualize or include in a LaTeX document.
from IPython.display import display, Math
# Dynamic LaTeX equation
equation = "x^2 + 3x - 4 = 0"
display(Math(equation))
5. Exporting to LaTeX
Jupyter notebooks can be exported to LaTeX/PDF using the nbconvert
command with the --to pdf
option. This allows you to create professional-looking documents that include your code, equations, and visualizations.
jupyter nbconvert --to pdf your_notebook.ipynb
Key Points
- LaTeX in Markdown Cells: Use dollar signs
$
for inline equations and double dollar signs$$
for display equations. - Dynamic LaTeX: Use code cells with libraries like
MathJax
for dynamic equation rendering. - Compiling LaTeX Documents: Use the
!latex
command orsubprocess
module in Python to compile.tex
files. - Exporting Notebooks: Use
nbconvert
to export Jupyter notebooks to PDF. - Advanced Features: For complex documents, consider writing the LaTeX code directly and compiling it outside the notebook.
FAQ Section
How do I write LaTeX equations in a Jupyter notebook?
+To write LaTeX equations, use Markdown cells and enclose your LaTeX code within dollar signs $
for inline equations or double dollar signs $$
for display equations.
Can I compile LaTeX documents directly from a Jupyter notebook?
+Yes, you can use the !latex
command in a code cell or the subprocess
module in Python to compile a .tex
file.
How do I export a Jupyter notebook to PDF?
+Use the nbconvert
command with the --to pdf
option to export your Jupyter notebook to PDF.