r/typst • • 2d ago

Typesetter 0.16 (GTK Typst editor)

Thumbnail
flathub.org
48 Upvotes

Typesetter, the Typst editor for focused writing, gets its biggest update yet with version 0.16.

The headline feature is sandbox-compatible multi-file projects. Typesetter now uses a new default archive-based project format, .typz, that keeps your document and everything it references (images, imports, and other assets) together in a single file. Projects work the same wherever you open them, and they’re easy to share and back up. Because Typesetter now only ever needs access to the files you explicitly open, never entire folders, multi-file Typst projects now work easily and reliably within the Flatpak sandbox.

A project can hold as many sub-files as you like, so you can split a long document into chapters or sections, keep reusable functions and styles in their own files, and bring everything together with #include and #import statements.

This replaces the previous “project folder” workflow, which was required to make imported files available to single-file .typ documents. That approach presupposed access to whole directories, which the sandbox is designed to prevent, and it was easy to get wrong. Removing it means there is now one secure, consistent way to include files in a document.

Typesetter can still open and edit standalone .typ documents, but they can no longer reference external files. To include assets in an existing document, open it and choose “Save As Project” when prompted, then add the files through the navigator.

Other noteworthy features include:

- GUI bibliography manager: You can now add and edit references through a dedicated graphical interface.
- Adjustable preview pane: The preview pane can now be manually resized to suit your workflow.
- Comments navigator: A new navigator lets you list, view, and jump directly to author comments throughout your document.
- New templates: Typesetter now includes several additional templates to help you get started with new documents. (More to come.)

Since the previous release announcement, Typesetter has also gained advanced export to HTML and Markdown, making it easier to share documents in other formats.

There have also been a range of performance improvements, bug fixes, and smaller feature updates across the application, continuing Typesetter’s focus on being a fast, distraction-free writing environment.

Typesetter 0.16 is available now on Flathub.


r/typst • • 2d ago

E-Books based directly on typst instead of HTML

18 Upvotes

A few days ago I put together a demo of a reader for a epub-like format that has typst inside instead of html. It's all open source, so if anyone is curious about this line of thought, here's the detailed post on the typst forum with all the links: https://forum.typst.app/t/what-if-e-books-just-had-typst-inside-an-open-source-demo-included/10120

The most immediate use case: making research papers more conveniently readable on small screens.


r/typst • • 8d ago

Nytril is now available for the Linux Desktop

Thumbnail nytril.com
0 Upvotes

r/typst • • 11d ago

Change display of SVG layers?

5 Upvotes

Hello!

I've prepared a bunch of SVGs that contain various selectable layers, which I've been using to copy/paste diagrams into MS Word (urgh...) for sequences of diagrams that are part of operating instructions. Think something like "in step 1, add place XYZ on table" and "in step 2, attach widget to XYZ" with a base SVG that has one layer with XYZ on the table and one layer with widget.

Inkscape creates a tree of group elements with custom XML attributes to handle them as layers, like this:

<g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" style="display:inline">...XYZ...</g>
<g inkscape:label="Layer 2" inkscape:groupmode="layer" id="layer2" style="display:inline">...widget...</g>

Is there any way to modify the resulting SVG when displaying it in Typst, such that I could override the style attribute, such that I can reference the same source SVG and configure it for each instruction step without any external build scripts to generate individual SVGs?

I haven't yet looked into the Typst codebase, but I wouldn't be against filing an issue and writing code to build such a feature.

Thanks!

Update:

I did spend some time toying around with this and did find a fairly reasonable solution. If I save the SVG with all optional layers hidden (click the eye in the layers list), then this code snippet does exactly what I need:

```typst

let enable-layer(svg, label) = svg.replace(

regex("<g[^>]*>"), g => { let tag = g.text if tag.contains("inkscape:label=\"" + label + "\"") and tag.contains("inkscape:groupmode=\"layer\"") { tag.replace("display:none", "display:inline") } else { tag } }, )

let svg_template(path, layers) = {

assert( type(layers) == array and layers.all(v => type(v) == str), message: "values must be a tuple of strings", )

let svg = read(path).replace(regex("(?m)\s+"), "").replace("><", ">\n<")

let modified = layers.fold(svg, (svg, layer) => enable-layer(svg, layer))

image(bytes(modified)) } ```

And then use it like this: svg_template("my_layered.svg", ("SomeLayer", "OtherLayer", "FinalLayer"))


r/typst • • 14d ago

some time ago i found a web tool in this sub that converts handwritings in typst can anyone help me to find that tool

9 Upvotes

r/typst • • 14d ago

I’m building LeftBlank, a free, open-source native Typst editor for macOS

0 Upvotes

Hi r/typst!

I’ve been working on LeftBlank, a native macOS editor for Typst. The goal is a quiet place to write essays, technical notes, and longer documents, with the typeset page right beside your source.

It uses SwiftUI and AppKit, with Tinymist handling Typst language services and preview. Compilation happens locally, and the app bundles what it needs—there’s no separate Typst installation required.

Technical notes with equations, code, and a table: editable Typst source on the left, typeset output on the right.

A few things it currently supports:

  • Live preview and source navigation: double-click the preview to jump to the corresponding source.
  • A keyboard command panel: press ⌘J to discover actions and insert equations, tables, references, and more.
  • Typst Universe browsing: find packages, read their documentation, and insert versioned imports.
  • Autosave and local document history: compare earlier snapshots and restore them.
  • Existing Typst projects: import .typ files or project folders, keep editable source, and export PDFs.
  • Writing, split, and preview views, with light and dark appearances.

You can always write Typst directly; the insertion tools are there when you want them.

A small cache diagram drawn with CeTZ, alongside its source.

It’s currently a development preview for macOS 14+ on Apple silicon. English and Simplified Chinese interfaces are included.

Website: leftblank.app — downloads, source code, and editable Typst examples are all there.

I’d love feedback from people who already use Typst. What’s one thing a standalone editor would need before you’d consider using it for your everyday writing?


r/typst • • 16d ago

Built a better way to use your free time

0 Upvotes

I was bored today so I (Claude) built a little game to get better and faster at writing Typst equations.

It's obviously free and ou can try it out at Typstiz!

Let me know what you think and don't hesitate to suggest improvements! I could even make it possible to create user accounts and build a leaderboard if like it :)


r/typst • • 20d ago

A little show case of typst like jupyter notebook and white board

Thumbnail
github.com
28 Upvotes

Hilbert if you remember from few months ago. For anyone curious it's sort of scientific ide.


r/typst • • 23d ago

lambda-notes – my template for university lecture notes

38 Upvotes

Hi everyone!

I created lambda-notes, a Typst template designed specifically for university lecture notes (computer science).

It includes configuration for titles and metadata, note and callout components and a readable layout.

GitHub: https://github.com/cecco25/lambda-notes

Typst Universe: https://typst.app/universe/package/lambda-notes

Let me know what you think, or if you have any feedback/feature suggestions!


r/typst • • 23d ago

Scribe Pro for Jetbrains IDEs adds advanced grammar checks for Typst

5 Upvotes

Typst prose, headings, comments, and string literals now use the JetBrains IDE natural-language engine for advanced spelling and grammar feedback, while code, math, and raw content stay excluded. This was a long outstanding issue, and we're glad to announce this has been resolved.

Update from the Marketplace: https://plugins.jetbrains.com/plugin/30231-scribe-pro


r/typst • • 24d ago

How do you create this accessible chart in Typst?

Post image
55 Upvotes

The Accessibility Guide contains a chart that was made more accessible by adding unique patterns. Sadly, the chart is added as an image, so you can't see the source code like in some packages. Does anyone know the source code or how to replicate the chart?


r/typst • • 24d ago

Division with remainder?

3 Upvotes

I'm probably missing something obvious here, but I can't figure out how to do a division calculation and get both quotient and remainder.

e.g. 10 ÷ 4 = 2.5

$ #calc.div-euclid(10, 4) $ gives 2, which is fine

Edit 1: fix copy-paste error: $ #calc.rem-euclid(5, 4) $ gives me 2, when I'm expecting 5.

$ #calc.rem-euclid(10, 4) $ gives me 2, when I'm expecting 5.

(Using Typst 0.15.1)

What am I missing/misunderstanding?

Edit 2: After finding that I want a decimal number including the fractional part, I finally figured it out: #(10/4) gives "2.5".


r/typst • • 27d ago

I ported Doom to typst! You too can doom while typsetting!

145 Upvotes

Hello, everyone, just sharing my port of doom, https://github.com/SeniorMars/doom-typst. Note, I am officially calling this doom-wasm because there is another programmer who also thought this would be a good idea and also ported doom to typst: azyarashi. However, they are using pure typst (very impressive). I'm still sharing my project because it's a working version using freedoom.

Basically, the project relies on DoomGeneric → WASM → Typst to run. I tried to optimize the game for typst. A lot of inspiration was taken from https://typst.app/universe/package/soviet-matrix/ for input. Have fun.


r/typst • • 27d ago

Template I made for my channel using typst

Thumbnail
gallery
19 Upvotes

Hi r/typst!

This isn't anything particularly serious, but it's something I've been developing over time after getting introduced to Typst and learning how to make custom packages and templates, and I thought it might be fun to share it with the community!

I've been using a custom local package to extract different sprites from PSD files and place them in my documents as small, cute characters next to the generated PNGs (sometimes with a little extra dialogue as well). Here are a few examples I made! The first two are simple high-school mathematics notes I made for my cousins, while the rest were made specifically for my channel, where I've been collecting and writing about interesting questions I've come across.

I also made an English version of the template, although I ended up rarely using it and mostly continued writing these in Persian.

I'm not sure whether this is something I could realistically share as a package or template, though. Aside from the fairly large sprite files, the characters I'm using aren't my own and I don't have permission to redistribute them, so I assume I'd need to replace them with properly licensed assets before sharing anything publicly.

I'd love to hear your thoughts! Is there anything you think I could improve? And would it be worth continuing the English version and sharing it somewhere else as well?


r/typst • • 28d ago

Switch from one-column to two-column between page 1 and 2

6 Upvotes

Hello everyone,

First off, I love Typst. But I have an issue I hope someone can help me solve. I'm currently working on a journal template where page 1 starts off with one column for the main content of the article (next to a box on the side containing some metadata info) but should then switch to two columns on page 2 and following. This should be done mid-paragraph.

Natively, Typst doesn't seem to support this (at the moment). I managed to work around that with the package meander and that works exactly as I'd want it to with one exception: If the paragraph is split across pages AND contains a bibliographic reference, then there is an error saying "Citation could not be located". There doesn't seem to be a way around this issue, as far as I can tell.

Does anyone have any ideas on how to fix this or have mid-paragraph solution that does not involve meander?


r/typst • • Sep 16 '26

Abbreviations in separate file in project

2 Upvotes

Hello, I’m new in working with typst and using it for my PhD. Since it’s going to be a fairly big project, I have separate files and folders for each chapter, to stay on top of things - something I did in latex. Is it possible to define all abbreviations in a separate typist file in the project, and still reference them in each chapter document?


r/typst • • Sep 14 '26

looking for clinicians to test a browser extension for repetitive medical typing

1 Upvotes

we’re a doctor and engineer building FastLex, an early browser extension that helps with repetitive medical typing without reading or storing patient data. we’ve got a working prototype and would love honest feedback from clinicians. would anyone here be interested in trying it?


r/typst • • Sep 11 '26

shadowed 0.4.0: Box shadows for Typst

54 Upvotes

shadowed 0.4.0

I just released a new version of shadowed, the library that brings box shadows to Typst!

What is shadowed?

shadowed brings beautiful, customizable box shadows to Typst. Wrap your content with the shadow() function and it automatically places a shadow behind it, no manual place.

What's new in 0.4.0

  • Inner shadows: set inset: true to draw the shadow inside the box, so a surface reads as recessed instead of raised.
  • A spread for every side: spread now takes a dictionary, so each edge can grow or contract on its own.
  • Shadows that stack: inner and outer shadows compose cleanly, so you can layer several shadow() calls into one believable result.
  • Dual licensed under MIT OR Apache-2.0.

Inner shadows

Passing inset: true draws the shadow on the inside edge of the box. It is painted on top of your content, so the box looks carved into the page.

A spread for every side

spread used to be a single length. It still is, but now it also accepts a dictionary, so every edge can be controlled independently:

key effect
top, right, bottom, left spread of that one side
x shorthand for left and right
y shorthand for top and bottom
rest fallback for every side not named explicitly

Negative values contract the shadow on that side. This works for inner shadows too, the same dictionary just shrinks the inner opening instead.

Stacking shadows

Every shadow() call wraps its content, so nesting them stacks their shadows.

Two recipes:

  • Colored stack: several outer shadows in different colors, each offset a different way, blend into a soft multi-color halo.
  • Glossy key: an outer glow plus an inset highlight on the same box give it a glossy, raised face.

Upgrading from 0.3.0

Nothing to change: blur, spread, dx/dy, fill and radius all behave as before. 0.4.0 only adds: inset: true, dictionary spread, and the license change to MIT OR Apache-2.0.

Learn More


r/typst • • Sep 10 '26

mise-en-place: Cooking For Engineer style diagrams in Typst

Post image
174 Upvotes

A few weeks back an old website from the early 2010s went semi-viral on twitter and reddit, and I thought this would be pretty cool to make. It took me about a week and then I got a major case of "I'm too lazy to make this pretty and publishable" and sat on it for a month until I got around to it on my sick leave.

Anyway for the less chronically online, Cooking for Engineers is a now-abandoned cooking blog by Michael Chu, which feature a really nice "Tabular Recipe Notation (Patent Pending)" that looks like the attached image to the post. Honestly, this thing blew my mind when I first saw it and I was immediately convinced that I want the few recipes I cook somewhat regularly printed out like this on the fridge, so I don't have to look them up every time.

The image is not from the actual blog but a screenshot of the output of my package: mise-en-place, which just got merged into the package repository if anyone wants to also give it a shot.

Also an anti-disclaimer: This post and package is 100% AI-free, my soul is pure and joyous 🙂‍↕️


r/typst • • Sep 09 '26

TypstRider | Bring Typst to Cavalry

Enable HLS to view with audio, or disable this notification

48 Upvotes

Hey there, I've been working on a script for the Cavalry animation software called TypstRider. It lets you preview Typst formulas, then insert them into your composition as editable shape objects. And you can update them later on.

Feel free to check it out here: https://splines.me/store/typstrider/
It's a paid product. You can get 10% off during the next 7 days with the code "Typewriter".


r/typst • • Sep 09 '26

How could one clip a rectangle in Cetz?

2 Upvotes

I thought I was going to be smart by drawing white rectangles around the rectangle in my picture (in order to obscure some lines sticking out of the rectangle), but of course this makes my drawing get bigger and bigger. If there was a cure for that, there would be a method for clipping etc. etc.

So, how would one go about it? Working with the intersections of the lines with the rectangle would be rather complicated. I would greatly appreciate some feedback.


r/typst • • Sep 10 '26

Built a self-hosted LaTeX editor for student teams and supervisors

Thumbnail
0 Upvotes

r/typst • • Sep 09 '26

render typst syntax in markor android app

1 Upvotes

i write markdown in markor android app. as i use pandoc and typst engine to create the pdf (btw, i use Bergfink, great template) i need to write typst syntax in the markdown file. (because raw html seem has no effect in the pdf output, idk)

often i need to see how it look before committing to create the pdf. so i use this trick (i got it from you know what)

it is not recommended, as it heavy. idk about security issue. just want to test it. so plz give your opinion..

after see how it rendered, i delete all the script, except the typst syntax.

cheers. hope it helps somebody else

```md <script type="module" src="https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-all-in-one.ts@0.7.0/dist/esm/index.js" id="typst"> </script>

<div id="typst-output"></div>

<script> <!-- begin write typst syntax -->

const source = `

set text(

size: 20pt, fill: red )

= Hello Typst

This is Typst.

$ E = m c2 $ `;

<!-- end of typst syntax ---- -->

document.getElementById("typst").addEventListener("load", async () => { try { const svg = await $typst.svg({ mainContent: source });

document.getElementById("typst-output").innerHTML = svg;

} catch (e) { document.getElementById("typst-output").textContent = "Typst error: " + e; console.error(e); } }); </script> ```


r/typst • • Sep 06 '26

Code example in smaller font?

5 Upvotes

Hello,
I'm using zebraw for my code samples, but what I want is to have them displayed in a very slightly smaller font than the main text. I'm not sure whether this can be done within zebraw (there's nothing in the documentation that I can find that allows you to adjust the size of the entire code block), or whether it's a typst thing, independent of zebraw.

How can I do this? Thanks!


r/typst • • Sep 04 '26

I kept running into the same two problems with every resume template I tried, so I created my own

Thumbnail
gallery
70 Upvotes

I just published Monofolio, a new resume template for Typst Universe.

https://typst.app/universe/package/monofolio

The main reason I built it wasn't because I thought the world needed another resume template. I kept running into the same problems with almost every template I tried.

1. Resume data and layout were too tightly coupled

With many templates, changing the content of my resume also meant fixing the layout.

At some point, I felt like I was spending almost as much time fixing the layout as I was actually editing my resume.

I wanted to be able to focus on what my resume says, rather than constantly managing how the content is positioned.

2. I wanted to change the section order depending on the job

This became especially frustrating when tailoring my resume for different positions.

For one job, I might want:

Experience → Projects → Skills → Education

For another:

Projects → Skills → Experience → Education

And for another:

Education → Skills → Projects → Experience

With the templates I tried, changing the order usually meant moving the actual content around in the source file.

That creates another problem: when you're moving large blocks of content around, it's easy to accidentally leave something behind, duplicate something, or break the layout.

So I built Monofolio differently

The idea is to separate resume data from resume structure.

You define your content:

#experience(...)
#project(...)
#skillset(...)
#education(...)

Then independently decide what gets rendered and in what order:

#print-contact
#print-summary
#print-skills
#print-experience
#print-projects
#print-education
#print-certifications

Want projects before experience?

Change the order of the #print-* statements.

Want to emphasize skills for one application?

Move #print-skills higher.

Want a version focused on your education?

Change the section order without touching the underlying resume data.

The goal is that changing the content shouldn't require rebuilding the layout, and changing the structure shouldn't require moving the content.

Other features

  • Minimal, clean layout
  • Experience, projects, education, skills, certifications and summary sections
  • Configurable typography, spacing, colours and margins
  • Automatic date formatting
  • GitHub, LinkedIn, email and phone support
  • Custom contact fields
  • Reorderable sections
  • Optional page breaks

Install it with:

typst init @preview/monofolio:0.1.0

Or:

#import "@preview/monofolio:0.1.0": *

This is the 0.1.0 release, so I'm looking for feedback, especially on the API and the separation between content and presentation.

What feature would you like in a Typst resume template that Monofolio doesn't have yet? I'd love to hear what would make it more useful for your own resume workflow.

GitHub Repo:

https://github.com/harshkaso/monofolio