Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including shiki-latex with all npm packages installed. Try it out:

var shikiLatex = require("shiki-latex")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

shiki-latex v1.3.0

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

Shiki LaTeX

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

Source Package Continuous Integration

Comparison

ShikiPygments
ShikiPygments

Installation

Install Node.js and run:

$ npm install shiki-latex

Using with minted

\usepackage{minted}
\renewcommand{\MintedPygmentize}{node_modules/.bin/shiki-minted}

Themes

Choose a theme with the \usemintedstyle{} command.

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

\usemintedstyle{nord}

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:

\usemintedstyle{synthwave-color-theme.json}

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";`,
    "ts"
  );
  console.log(renderToLaTeX(lines));
})();

The package comes with type definitions for TypeScript.

Options

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.

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free