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 - Support for the
\begin{minted}{<lang>} . . . \end{minted}environment - Wrapper macros like
\bjava{int i}and\cjava{int i}and environments like\begin{plainjava} - 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:
Footnotes
-
If 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. ↩