Compiler Settings
Tinymist uses an embedded Typst compiler for editing, previewing, and exporting. This document guides you on how to configure fonts, packages, roots, or other supported compiler arguments.
For a guided VS Code walkthrough, see VS Code frontend. For the generated settings reference, see Configuration Reference.
If you want preview and export output to stay stable across machines, start by turning off host font discovery and pointing Tinymist at explicit font paths:
With tinymist.systemFontstinymist.systemFonts set to falsefalse, Tinymist stops scanning the operating system’s font directories. That removes host-specific surprises and makes the compiler rely on the fonts you intentionally provide.
tinymist.fontPathstinymist.fontPaths accepts files or directories. Relative paths are resolved from the Typst root directory, while VS Code also lets you use variables such as ${workspaceFolder}${workspaceFolder} before the LSP sees the final path.
tinymist.typstExtraArgstinymist.typstExtraArgs entries. tinymist.systemFontstinymist.systemFonts overrides --ignore-system-fonts--ignore-system-fonts. tinymist.fontPathstinymist.fontPaths overrides --font-path--font-path. tinymist.rootPathtinymist.rootPath overrides --root--root.Tinymist always keeps the embedded typst-assetstypst-assets font bundle available, even when tinymist.systemFontstinymist.systemFonts is falsefalse. The current docs inventory is generated from typst-assetstypst-assets v0.14.2, so it tracks the same source Tinymist resolves at runtime.
The bundled fonts are:
- DejaVu Sans Mono (
DejaVuSansMono.ttfDejaVuSansMono.ttf) - DejaVu Sans Mono Bold (
DejaVuSansMono-Bold.ttfDejaVuSansMono-Bold.ttf) - DejaVu Sans Mono Bold Oblique (
DejaVuSansMono-BoldOblique.ttfDejaVuSansMono-BoldOblique.ttf) - DejaVu Sans Mono Oblique (
DejaVuSansMono-Oblique.ttfDejaVuSansMono-Oblique.ttf) - Libertinus Serif Bold (
LibertinusSerif-Bold.otfLibertinusSerif-Bold.otf) - Libertinus Serif Bold Italic (
LibertinusSerif-BoldItalic.otfLibertinusSerif-BoldItalic.otf) - Libertinus Serif Italic (
LibertinusSerif-Italic.otfLibertinusSerif-Italic.otf) - Libertinus Serif Regular (
LibertinusSerif-Regular.otfLibertinusSerif-Regular.otf) - Libertinus Serif Semibold (
LibertinusSerif-Semibold.otfLibertinusSerif-Semibold.otf) - Libertinus Serif Semibold Italic (
LibertinusSerif-SemiboldItalic.otfLibertinusSerif-SemiboldItalic.otf) - New Computer Modern 10 Bold (
NewCM10-Bold.otfNewCM10-Bold.otf) - New Computer Modern 10 Bold Italic (
NewCM10-BoldItalic.otfNewCM10-BoldItalic.otf) - New Computer Modern 10 Italic (
NewCM10-Italic.otfNewCM10-Italic.otf) - New Computer Modern 10 Regular (
NewCM10-Regular.otfNewCM10-Regular.otf) - New Computer Modern Math Bold (
NewCMMath-Bold.otfNewCMMath-Bold.otf) - New Computer Modern Math Book (
NewCMMath-Book.otfNewCMMath-Book.otf) - New Computer Modern Math Regular (
NewCMMath-Regular.otfNewCMMath-Regular.otf)
The official Typst app experience additionally bundles the extra Twitter emoji font. Tinymist’s binary does not embed that extra emoji font, so emoji rendering can differ unless you add one yourself.
To get similar emoji coverage, place an emoji font in a tracked directory and add it through tinymist.fontPathstinymist.fontPaths or --font-path--font-path. For example:
Preview and export use the same package search paths, package cache, root directory, and certificate settings as the editor.
Use the dedicated tinymist.rootPathtinymist.rootPath setting when you want the editor to own the Typst root, and use tinymist.typstExtraArgstinymist.typstExtraArgs for the CLI-shaped package and certificate options that Tinymist parses today:
If you commit local packages or private certificates alongside your project, pairing them with an explicit root and explicit font paths makes preview and export behavior much easier to reproduce on CI and on teammates’ machines.
There is a global configuration tinymist.typstExtraArgstinymist.typstExtraArgs to pass extra arguments to tinymist LSP, like what you usually do with typst-clitypst-cli CLI. For example, you can set it to ["--input=awa=1", "--input=abaaba=2", "main.typ"]["--input=awa=1", "--input=abaaba=2", "main.typ"] to configure sys.inputssys.inputs and entry for compiler, which is equivalent to make LSP run like a typst-clitypst-cli with such arguments:
Tinymist parses a supported subset of Typst CLI arguments instead of acting as an unrestricted passthrough. Use the CLI spelling in tinymist.typstExtraArgstinymist.typstExtraArgs, but keep the list to the options Tinymist understands today:
Supported arguments:
-
entry file: The last positional argument string in the array will be treated as the entry file.
- This is used to specify the default entry file for the compiler, which may be overridden by other settings.
--input=key=value--input=key=valueadds values tosys.inputssys.inputs.--features=<feature>--features=<feature>(or--features--features,<feature><feature>) adds Typst features to the compiler, for example--features=html--features=html.--root--rootsets the Typst project root.--font-path--font-pathadds explicit font paths.--ignore-system-fonts--ignore-system-fontsdisables system-font discovery.--package-path--package-pathand--package-cache-path--package-cache-pathcontrol where Typst looks for packages.--creation-timestamp--creation-timestampsets a reproducible document timestamp.--cert--certpoints Typst at a CA certificate file for network package access.
Example:
Note: Fix entry to main.typmain.typ may help multiple-file projects but you may lose diagnostics and autocompletions in unrelated files.
Note: Please use tinymist.typstExtraArgstinymist.typstExtraArgs for the remaining CLI-shaped inputs only if you don’t find a dedicated tinymist setting. For example, --root--root has a corresponding dedicated tinymist.rootPathtinymist.rootPath setting.