This is a Quarto extension that allows to highlight text in a document for various format: HTML, LaTeX, Typst, and Docx.
quarto add mcanouil/quarto-highlight-text
This will install the extension under the _extensions
subdirectory.
If you're using version control, you will want to check in this directory.
To use the extension, add the following to your document's front matter:
filters:
- highlight-text
Then you can use the span syntax markup to highlight text in your document, e.g.:
[Red]{colour="#b22222" bg-colour="#abc123"} # UK
[Blue]{color="#0000FF" bg-color="#ABC123"} # US
You can also use the shorter syntax (v1.1.1):
[Red]{fg="red" bg="primary"}
Using colours from _brand.yml
(v1.1.0):
color:
palette:
red: "#b22222"
primary: "#abc123"
[Red]{colour="brand-color.red" bg-colour="brand-color.primary"}
Using colours from light/dark themes with Quarto CLI >=1.7.28 (v1.2.0):
-
From document front matter:
brand: light: color: palette: fg: "#ffffff" bg: "#b22222" dark: color: palette: fg: "#b22222" bg: "#ffffff"
-
From
_quarto.yml
and_brand.yml
filebrand: dark: _brand.yml
[Light: White/Red | Dark: Red/White]{colour="brand-color.fg" bg-colour="brand-color.bg"}
Note
Only the html
support light/dark mode switching.
The other formats will use the light mode colours if available or the dark mode colours otherwise.
LaTeX \colorbox
command does not support wrapping/line breaks in the text to be highlighted.
This means that the above example will not work well in LaTeX output.
In order to get a slightly better result, you can use the par=true
attribute to add \parbox{\linewidth}
:
[Red]{colour="#b22222" bg-colour="#abc123" par=true}
Here is the source code for a minimal example: example.qmd
.
Outputs of example.qmd
:
- HTML
- Typst/PDF
- LaTeX/PDF
- Word/Docx (only supports plain text, i.e., no URLs)
- Reveal.js
- Beamer/PDF
- PowerPoint/Pptx (only supports plain text, i.e., no URLs)