Skip to content


Repository files navigation

Shiki LaTeX

A Shiki renderer for LaTeX. Compatible with minted, replacing Pygments.

Source Package Continuous Integration


Shiki Pygments
Shiki Pygments


Install Node.js and run:

$ npm install shiki-latex

Using with minted



Choose a theme with the \usemintedstyle{} command.

You may refer to a built-in Shiki theme by name, for example:


You may refer to a theme file that you download and put next to your LaTeX source (don’t put it under a folder because minted doesn’t support it); for example, to use the SynthWave '84 theme, download synthwave-color-theme.json and add the following to your LaTeX source:


Note: Some themes may not look as good on a PDF as they do on a webpage. It’s part of the game: LaTeX renders things differently from a browser. It’s a hit-and-miss situation.

Using Programmatically

import { getHighlighter } from "shiki";
import { renderToLaTeX } from "shiki-latex";

(async () => {
  const highlighter = await getHighlighter({ theme: "light_plus" });
  const lines = highlighter.codeToThemedTokens(
    `const name = "Leandro Facchinetti";`,

The package comes with type definitions for TypeScript.


The renderToLaTeX() function accepts a second argument with options that control the rendering, for example:

renderToLaTeX(lines, { defaultColor: "#FF0000" });

The available options are the following:

defaultColor: string (default #000000): The color to use when the theme doesn’t specify a color for a part of the highlighted program.

mathescape: boolean (default false): Enable LaTeX math mode escape ($___$) in comments.