Directory macros/latex/contrib/xlistings
xlistings — An extension to listings
This package extends on the listings package, providing an easier front-end to create code blocks of selected languages, support for number highlighting, highlighting, non-selectable line numbers,^1 and more. While it is not compatible with the minted package, it provides a similar interface for code highlighting that can be used as a partial drop-in replacement (see the documentation).
The following describes a list of improvements over the listings package:
- Highlighting of numbers in code blocks:
10_234 + x1 * 0x34 - x2, including hexadecimal digits, exponents, and language sensitive type suffixes (0xdeadBEEF,1e10,10Lin Java,3jin Python,10nin TypeScript) - Support for the
\begin{minted}{<lang>} . . . \end{minted}environment - Wrapper macros like
\bjava{int i}and\cjava{int i}and environments like\begin{plainjava} \xlstb{<lang>}{<code>}for languages whose name cannot be part of a command name, e.g.\xlstb{x86}{mov eax, 0x10}- Language sensitive override:
\xlstlangoverride{latex}{morekeywords=[5]{\\xlstsetstyle}} - Support for (accsupp based) non-selectable line numbers and characters
- Support for blacklisting line numbers with
\xlstblacklistlinenumbers - Support for umlauts and UTF-8 encoding (with the listingsutf8 package)
- Provides
autogobbleto remove leading spaces (with the lstautogobble package) - Comfort key
add to literateto add elements to the literate list \LoadLanguages{<lang>}to load a language or multiple languages on demand- Opinionated language overwrites (see the langs/ folder)
- Opinionated default literates such as
:ldots:,:lan:,:to:, and:c:
The package is set up for l3build: l3build check runs the tests in tests/ and fails if a highlight changes unexpectedly. Each test states the sequence of styles it expects, and the resulting build/test/<name>.pdf shows the verdict together with the typeset sample, so the highlighting can also be inspected visually. A colour that leaks past its segment is invisible to such a trace, so tests/colorbleed.pvt additionally compares the pdf, reduced to the colour every piece of text is drawn in.
a number is truly non-selectable depends on the viewer used. To ensure that they can not be selected would require images, which we currently do not create/use.
Download the contents of this package in one zip archive (284.4k).
xlistings – Opinionated extensions to the listings package
This package extends listings with an easier front-end for code blocks: language-sensitive highlighting of numbers (including hexadecimal literals, exponents and type suffixes), a drop-in minted environment, per-language wrapper macros and environments, non-selectable line numbers based on accsupp, language badges, and opinionated definitions for a set of common languages that are loaded on demand.
| Package | xlistings |
| Support | |
| Repository | |
| Version | 1.0.0 2026-08-17 |
| Licenses | The LaTeX Project Public License 1.3c |
| Copyright | 2024–2026 Florian Sihler |
| Maintainer | Florian Sihler |
| Contained in | TeX Live as xlistings |
| Topics | Listing Verbatim Syntax highlight |