LaTeX Code Listings: Display Programming Code Beautifully
Date Published

Code Listings in LaTeX
Display programming code beautifully in your LaTeX documents with syntax highlighting.
The listings Package
The most common solution for code in LaTeX:
\usepackage{listings}
Basic Usage
\begin{lstlisting} def hello(): print("Hello, World!") \end{lstlisting}
Specify Language
\begin{lstlisting}[language=Python] import numpy as np x = np.array([1, 2, 3]) \end{lstlisting}
Inline Code
\lstinline|print("hello")|
Supported Languages
The listings package supports 100+ languages:
- Python, Java, C, C++ - JavaScript, TypeScript - HTML, CSS - SQL, Bash - And many more
Customizing Appearance
Global Settings
\lstset{ basicstyle=\ttfamily\small, keywordstyle=\color{blue}, commentstyle=\color{green}, stringstyle=\color{red}, numbers=left, numberstyle=\tiny, frame=single, breaklines=true }
Key Options
- basicstyle — font for code - keywordstyle — keywords formatting - commentstyle — comments formatting - stringstyle — strings formatting - numbers — line numbers (left, right, none) - frame — border (none, single, shadowbox) - breaklines — wrap long lines - tabsize — spaces per tab - showstringspaces — show spaces in strings
The minted Package
More powerful syntax highlighting using Pygments:
\usepackage{minted}
Basic Usage
\begin{minted}{python} def factorial(n): return 1 if n <= 1 else n * factorial(n-1) \end{minted}
Inline Code
\mintinline{python}{print("hello")}
Minted Options
\begin{minted}[linenos, frame=lines, fontsize=\small]{python}
Note: minted requires Python and Pygments installed, and compilation with -shell-escape.
Verbatim Environment
For simple, unformatted code:
\begin{verbatim} This is verbatim text. All characters are literal. \end{verbatim}
Inline Verbatim
\verb|special chars: $#%|
Including External Files
With listings
\lstinputlisting[language=Python]{script.py}
With minted
\inputminted{python}{script.py}
Algorithm Pseudocode
For pseudocode (not real code), use algorithm2e or algorithmicx packages instead.
Styling Tips
Choose Readable Fonts
\usepackage{inconsolata} — nice monospace font
Color Schemes
Popular combinations: - Dark keywords, gray comments - Blue keywords, green strings - Match your IDE theme
Consistent Sizing
Use \small or \footnotesize for long code to fit page width.
Common Issues
Problem: Special characters break Solution: Use mathescape=true and escape with $...$
Problem: Long lines overflow Solution: Set breaklines=true
Problem: Wrong language detection Solution: Always specify language=... explicitly
Display Code with Octree
Octree handles code beautifully:
- Easy listings/minted setup - Preview syntax highlighting - AI helps with formatting - Export polished PDFs
Try it at https://useoctree.com