For everyone who is using LaTeX and hasn't tried yet, give it a try. It is actually surprisingly featurefull and surpasses LaTeX in usability by a huge margin.
Pandoc is a ridiculously underrated and powerful tool but it solves a different problem. Someone still has to write typesetters ;)
Typst is a way to define a document. Headers, paragraphs, figures, equations, tables, etc. it is a direct competitor to LaTeX and maybe in some ways similar to Word, which provides a GUI for an XML defined document.
Pandoc is a converter, which given a document in one document description language outputs a document in another document description language.
What is exciting about Typst HTML support is that its goal is that it has first class support for both PDF and HTMl, which is obviously preferable to something like pandoc, which always has to rely on an intermediate representation of the document, before a conversion can happen.
It's a great format to use for editing, since it converts so well to all the other formats (including Typst?).
Which is bad if you want a complex document, since the intermediate representation of pandoc can not represent all typst features.
Also, I do not understand what your argument is. Pandoc and typst are not competing, they are different pieces of software with different goals. Pandocs markdown is also not competing with typst, since they are completely different ways to define a document. Typst is vastly more complex, it even includes its own scripting language. Pandoc also doesn't output PDF, except by calling some external tool, which then compiles a pandoc output format to HTML. It is fundamentally different to typst.
You just need one (large) executable to do everything, whereas with PanDoc you (by default) need to have LaTeX installed if you want to generate PDFs
If you are creating more complex documents, the advantages become more pronounced. Styling in Pandoc means modifying templates, at which point you’re just writing LaTeX, and styling in Typst is much nicer than in LaTeX. You can also hit the limits of Pandoc templates quite easily, at which point you have to write Lua filters. I have found those to be quite cumbersome, and now your document logic is spread out over the Markdown source file, the LaTeX template, and the Lua filters. In Typst you can have a single file with your whole document in a clean modern format, and you can decide for yourself how much you want to separate content and presentation.
- The Typst online editor is proprietary: https://typst.app
- The Typst compiler/CLI is open source: https://github.com/typst/typst
I hear that the online editor is quite good, but personally I've only ever used the CLI.
I originally picked up Typst as yet another replacement for PowerPoint (replacing my use of Marp), but have since used it for a poster and some minor text documents. And I've been very happy the results. I know that a lot of people love using LaTeX for that kind of thing, and with good reasons, but I always forgot most of the details between my (occasional) use of LaTeX, while I've found Typst to be very easy to return to
I've also only used the CLI tool, and didn't miss any features from it. The commercial product was never pushed or promoted to me. I personally have no need for it, and I'm only vaguely aware that it exists. But I'm sure that people who do need the friendlier UI/UX and more advanced features would be willing to pay for it, so I'm glad that the team has a stable source of income that enables them to continue maintaining the project in the long-term.
Looking at the pricing page now... Wow, the plans are quite generous and affordable. Way to go!
Yes, many companies start with good intentions which then change at some point, but there have also been companies that have managed to successfully balance both sides.
Grafana comes to mind, as well as ClickHouse, and TimescaleDB. I'm not as familiar with the latter two, but Grafana is certainly a good example. You can probably find some blemishes even on their record, but overall, I would say they have been excellent stewards of OSS. Especially considering the large amount of products they maintain.
So far, Typst seem to be on the right track as well, which is worthy of praise.
I do find the web version handy to share Typst examples and on occasion work on a document while syncing with private Github repository.
Maybe I was just unlucky or you had better luck with another model. But I was very surprised to here this because Typst is my chief example for a language that LLMs are bad at.
You can't escape hallucinations, of course, but they can be mitigated somewhat. Don't ask it to generate a bunch of code at once. Feed it a snippet of code, and tell it precisely what you want it to do. These are general LLM rules applicable to any language and project, and I've had success with them with Typst. I also used it just to get explanations, or general ideas about how to do something, and then figure out the actual syntax and working code myself. It's strange that you haven't had luck with pasting docs. That has usually worked well for me.
I also think that LLMs don't struggle as much with Typst because the language is relatively simple, and there is little bad and outdated content about it online, so they weren't trained on it. I assume that the API probably hasn't changed as much either and there haven't been many compatibility issues, so it's not as important which version the LLM was trained on.
I did not try Claude though. Perhaps that performs better.
edit: I just prompted chatGPT with this and pasted the result into the Typst editor. 20 compile errors.
>Make a Typst doc with two columns per page and US page dimensions
Same prompt but for Latex and pasted in overleaf. No problems.
Interestingly, I've had the opposite experience. ChatGPT and Claude repeatedly gave me errors, apologized profusely, and then said, "ah, I had the wrong keyword. It's actually <blahblah>"--and that would simply give me another error and a subsequent apology.
At least Gemini had the good taste of telling me that it didn't know how to do what I wanted with typst.
It's certainly possible that I was trying to do something a little too unusual (who knows), but I chalked it up to the LLMs not having a large enough corpus of training text.
On the bright side, the typst documentation is quite good and it was just a matter of adjusting example code that got me on track.
Interestingly, Knuth has stated that his development of Literate Programming:
http://literateprogramming.com/
was more important than TeX --- fortunately, his publishing _TeX: The Program_:
https://www.goodreads.com/book/show/499934.Computers_Typeset...
has been very helpful to folks developing successors and add-ons and new versions, facilitating the creation of web2c and change files which made tools such as pdftex and omega and xetex and luatex possible).
Not alway, but often they required PDF output. Not always, but often they ended up being LaTeX based, with all the nice and some of the ugly consequences. Especially the security story was never great.
Does anyone know how hard it would be to integrate the Typst renderer into an existing Rust product?
I need to generate a 2 page invoice and i can generate it under 100 ms. IIRC, it's easier to integrate with rust. Since the pdf rendered is written in rust
- Using CSS for formatting resulted in a lot of one-off rules, and was a lot noisier and less readable than the equivalent in Typst.
- The use of CSS for formatting also meant that the Marp compiler couldn't catch most of my silly mistakes. With Typst the compiler will catch those mistakes.
- Using a plugin to selectively highlight lines required writing a custom "engine" in JS, which was a pain to get working. Using a package in Typst is extremely simple.
- And I had to use npm to install the plugin in the first place. Typst comes with a package manager built-in.
- Generating PDFs required that I installed Chrome/Chromium. Typst does that out of the box.
The only place, that I can think of, where Marp is ahead of Typst, is with regards to generating HTML based presentations. But that probably won't be the case forever, and I personally always use PDFs for the final presentation, since that means that a lot less can go wrong. Especially so if I am not using my own PC when giving the presentation
I’ve also mainly used it for slides so far. Can recommend Slydst for that.
From what I can tell, Slydst seems intended for more minimalist slides. But it looks nice, so I'll have to keep it in mind for cases where I don't need the above template
But if you mean animations (including animated transitions), then I do not believe that it is possible in Typst, since the output it outputs PDFs. I also do not believe that it is possible to embed multimedia in a document.
https://isitreallyfoss.com/projects/typst/
It seems mostly fine except for this bit:
> The compiler includes a package manager “Typst Universe” that may connect to servers owned and operated by Typst GmbH
I love, and hate, LaTeX and the idea of a LaTeX successor / alternative is incredibly appealing.
And the fact that they are aware that microtypography IS important and that they are working on it is a huge huge plus.
Typst has 50 years of accumulated TeX experiences to learn from, and fit everything people actually want to use into a 45M binary, and maybe you'll download a few dozen K of package scripts.
I have used it for much more than academic publishing (book, brochure, and even card layout) and it's hands-down the best tool ever made for producing documents of any imaginable kind. Procedurally producing layouts from first-class JSON and CSV support is bliss.
The example in this link of character-level justification is incredibly nice (enough to get me to try Typst), but it's not clear at least from this link whether they're actively working on microtypography.
I find myself switching between cli and web app a little more; the web app seems nice to experiment, share experiments especially when you need to demonstrate an issue when getting support, and has good enough git(hub) integration.
I would like Typst to support bounties, because I would throw a bit more towards HTML support.
Wow! That must’ve been quite an effort.
1. Beamer, I create multiple slide decks per week and the out of the box setup that beamer provides with different styles and fonts for different needs are unmatched. The efforts to generate some of this on typst is not there yet.
2. Generating figures using tikz and be able to modify it on the source file. Because I don't bear using GUI tools. And now life is easier that LLM can help you with complex tikz generation.
3. Not that it is actually a point but I am used now to overleaf and I have professional account as CERN member. It is also better on collaboration level and features than typst cloud.
I hope that one day typst will grow into this direction so that I can stop using LaTeX. Until then I have couple of overleaf templates generated for my use.
Reviewing the changes I review in Overleaf in GitHub pull requests would be incredibly painful and introduce a completely new, convoluted and unintuitive (until you're used to it) workflow for collaborative editing.
1) I have been using typst to create slides with some success. Adding special features tends to be simpler than in beamer.
2) cetz (https://github.com/cetz-package/cetz) works quite well and is comparable to tikz in complexity and capability. of course, there is more support for tikz, but it is bound to improve over time.
No they are not already there. As others replied, there are somethings similar but not the same feature completeness. I was specific to talk about beamer not saying "slides" in general.
Cetz has been working very good for me. I was really unsure that it could replace tikz for my applications. But apparently, as long as you have good geometrical primitives (lines, rectangle, circles, etc) you can do a lot. Also it is much nicer to program and make real functions with typst. It is true, the typst options to replace beamer are still not quite there in comparison, but they are definitely in a very useful state. See for example typst-presentate [1].
Typst can actually include gifs, but they don't move for me. I have some hopes that perhaps one could make slides straight in html which could alleviate the issue.
There is one example with Fletcher... I find these also nice: https://typst.app/universe/package/fletcher
[1] https://touying-typ.github.io/ [2] https://typst.app/universe/package/touying-unistra-pristine/
Can't respond to 2 or 3. Used tikz once. I wish there were a de facto programmatic drawing tool (I usually resort to graphviz or matplotlib), but there are a bunch of 80% solutions.
This looks like a great release. Lossless embedding of PDFs seems like it would be useful in many scenarios. I'm surprised with how much better the character-level justified text actually looks. And I wasn't even aware that it supported exporting HTML. Typst—both the tool and the language—are more robust and enjoyable to use IME than something like Markdown, Pandoc, Org mode, and other formats, so I'll definitely consider using it for my next web project.
My only concern is backwards compatibility. How committed is the team to supporting older syntax? What will happen in a year or two from now when I have to generate a PDF from a .typ file written with version 0.13? They mention deprecations in v0.14, so I assume that I should expect breaking issues. I suppose only time will tell how difficult upgrading will be in the future.
This was a big problem for me when using LaTeX, which is why I maintained a TeX Live Docker image with the exact version and dependencies I needed. Upgrading it was always a nerve-racking ordeal. Since Typst is a single binary, this should at least be easier to manage.
This is the risk of being an early adopter.
Once v1.0 is out, I hope it will stabilize for the long term.
This sounds great! Are accessible PDFs possible with LaTeX? Last time I looked, it wasn't a standard feature and there didn't seem to be any easy workaround which is a real problem when there's a requirement to produce accessible PDFs.
Another thing to consider is compatibility of third-party packages: LaTeX packages often require adjustements and many important packages work now but many still don't work, including some big ones like Beamer and tufte-book [3]. I think Typst packages should require fewer adjustments, thanks to the way "show rules" work: a package (or the user) can write a show rule to transform an element for rendering, but Typst automatically retains the semantic meaning of the original element.
[1] https://latex3.github.io/tagging-project/documentation/usage...
[2] https://github.com/typst/typst/pull/7206
[3] https://latex3.github.io/tagging-project/tagging-status/
Now we use typst, both playground (which does not call home, so no document exfiltration) or the compiler. The compiler is super easy to install, as we already have the Rust build chain installed. Compared to Tex, the 40 odd years newer design of typst makes all the difference.
While asciidoc hasn't matched my expectations (went back to Markdown), Typst has.
I'm taking another run at this with Typst. I'm getting a lot further!
Since switching to typst my happiness with my writing tools improved dramatically.
Not trying to make any statement but I'd love to see how this level of alt text detail scales to a diagram that's more than a rectangle pointing to a rectangle
https://github.com/jmpunkt/ox-typst
In case you want to use both org mode and typst.
(Haven't tried it out).
A quick search found:
https://github.com/litProgTypst/ (which I'm mystified by)
and
https://github.com/denkspuren/typst_programming (which hasn't been updated in two years)
Not seeing anything specific at: https://typst.app/docs/reference/scripting
I need to re-write my current project https://github.com/WillAdams/gcodepreview again --- maybe this would be a good fit? The unique feature I am taking advantage of is writing out code blocks in separate files, then concatenating them using .lua so there's no differentiation betwixt tangle/weave, both happen, and since it's Python, no need for a compile step either.
I looked at it a while back and will check it out again.
https://typst.app/universe/package/soviet-matrix
This is a classic Tetris game implemented using Typst!
Here are some notes I wrote when I started out with typst when comparing with LaTeX and some recent additions:
1. It doesn't generate 5 bloody files when compiling.
2. Compiling is instant.
3. Diagnostics are way easier to understand (sort of like Rust compiler suggestion style).
4. List items can be either - item1 - item2, etc. or [item1], [item2]. The latter is way better because you can use anchoring to match on the braces (like "%" in vim), which means navigating long item entries is much easier.
5. In latex you have the \document{...} where you can't specify macros so they need to be at the top, in Typst you can specify the macros close to where you need them. [I've been informed this is actually incorrect and Latex does allow you to specify macros anywhere]
6. It's easier to version control and diff, especially if you use semantic line breaks.
7. Changing page layout, margins, spacing between things, etc., footers with page counters, etc. just seems way easier to do.
8. Compiling with Typst is always one pass.
9. I'm not sure how this would compare with Latex but I'm starting law school in a month and I need to cite using AGLC4 which has a CSL (citationstyles.org) template supported by Typst; I have confirmed the CSL XML is correct but doesn't render properly in Typst. The workaround I found was to hand typeset my own citation and bibliography which sucks.
10. Most of what you need is built in to Typst and I've yet to need to import a package or template; even for the most basic documents with Latex you find you'll need to use many packages (such as fancyhdr for customised headers and footers).
11. Latex distributions can be a monstrosity, gigabytes in size like TexLive, and I acknowledge you can get slimmed down on-demand version such as Miktex. There's just one distribution of Typst and its pretty lean, although it might be nice to have multiple implementations in the future.
As for Typst 0.14 - I'm really happy about Accessible PDF feature and HTML export, will give each a whirl.
This was a question [0] I asked on stack overflow more than 15 years ago, and is to this day the most up votes I've gotten on SO. I still get notifications from it occasionally.
[0] https://tex.stackexchange.com/questions/11123/prevent-pdflat...
So when I read your list, I had these tools in mind, and the only items that made sense to me were:
2. (minor compared to Overleaf) typst compiles faster.
3. Diagnostics are better.
4. (minor and arguable) Lists have 2 simpler syntaxes.
The other points were irrelevant (dependencies), wrong (macros) or really dubious (margins, Git, bibliography). I think Typst has many more interesting features over LaTeX.
¹: https://tectonic-typesetting.github.io/
²: https://docs.overleaf.com/on-premises/installation/using-the...
test^1
https://en.wikipedia.org/wiki/Unicode_subscripts_and_supersc...
I would like to address that you read my point for margins/footers/etc. being difficult in Latex is dubious. (Also not sure why you mention the bibliography thing as dubious as it was a real issue of Typst, but shrug.)
A few years ago I spent many hours trying to figure out why a fancy footer wasn't rendering in a Latex document. I wanted a Page x of y counter in the footer which requires a few extra packages. So I try adding it, using two different methods \fancyfoot and \cfoot that I found on StackOverflow & OverLeaf, yet neither worked. I thought I was doing the incantations incorrectly. Spent endless hours figuring out what was going on, until I broke down and created a minimal example by selectively removing stuff which helped uncover that it was rendering but off page. The culprit was an overly large \fancyfoot that I hacked in to give a long baseline because I wanted to use up a huge chunk of the page due to Latex generous margins.
Yes I got things wrong, but Latex really didn't make this stuff easy, and took many hours to troubleshoot -- though it did improve my Latex troubleshooting skills.
In contrast setting layout parameters such as margins and specifying a footer is effortless in Typst and doesn't have that footskip footgun (at least I didn't encounter it):
#set page(
width: 210mm,
height: 297mm,
margin: (top: 15.875mm, bottom: 25.4mm, left: 15.875mm, right: 15.875mm),
footer: context [
#set align(center)
#set text(size: 10pt)
Page #counter(page).display() of #counter(page).final().first()
]
)
Anyway, that's my justification for that point.I would argue that this isn't minor. At least in my opinion, it makes a big difference.
Overleaf, already 3 pages into a document, with a couple of TikZ figures, was getting slow, as in multiple seconds wait for each save.
Typst, on the other hand (Tinymist in VS Code) is really realtime. Text updating within some tens of milliseconds, and figures included in far below a second. It really _feels_ instant, and to me that changes the experience a lot.
Also, pandoc has fairly good support for Typst so I use that to create a docx (which Draft2Digital converts to epub). I even opened a few issues (https://github.com/jgm/pandoc/issues?q=sort%3Aupdated-desc%2...) for pandoc support and they were almost all resolved pretty quickly.
I got started with typst because I wanted to put my resume in a got repository, for no reason other than to learn git.
One day I want to write a crosswords document using typst. I don't know how yet because I can't get my tables to be squares but one day... (:
(I wanted to look at this at some point for replacing latex for submissions to IEEE confs/corl etc)
Typst: A Possible LaTeX Replacement - https://news.ycombinator.com/item?id=45393842 - Sept 2025 (384 comments)
I wrote my PhD Thesis in Typst - https://news.ycombinator.com/item?id=44350322 - June 2025 (328 comments)
Typst 0.13 is out now - https://news.ycombinator.com/item?id=43105444 - Feb 2025 (60 comments)
TeX and Typst: Layout Models (2024) - https://news.ycombinator.com/item?id=43032697 - Feb 2025 (38 comments)
Using Pandoc and Typst to Produce PDFs - https://news.ycombinator.com/item?id=42271078 - Nov 2024 (19 comments)
Typst 0.12 is just... better - https://news.ycombinator.com/item?id=41888107 - Oct 2024 (4 comments)
Exploring Typst, a new typesetting system similar to LaTeX - https://news.ycombinator.com/item?id=41821361 - Oct 2024 (235 comments)
Typst: An easy to learn alternative for LaTex - https://news.ycombinator.com/item?id=41014941 - July 2024 (187 comments)
Typst – Compose Papers Faster - https://news.ycombinator.com/item?id=38354422 - Nov 2023 (134 comments)
I rewrote my CV in Typst and I'll never look back - https://news.ycombinator.com/item?id=38047224 - Oct 2023 (25 comments)
Typst: Finally a Solid LaTeX Alternative - https://news.ycombinator.com/item?id=35835703 - May 2023 (3 comments)
Typst, a new markup-based typesetting system, is now open source - https://news.ycombinator.com/item?id=35250210 - March 2023 (146 comments)
Typst: A Programmable Markup Language for Typesetting [pdf] - https://news.ycombinator.com/item?id=34423590 - Jan 2023 (53 comments)
Typst: Compose Papers Faster - https://news.ycombinator.com/item?id=32209794 - July 2022 (30 comments)
If you want to handroll this yourself you can probably have your `index` emit some `metadata` [2] which you can then `query` [3] for in your `printindex`. All of this would work inside the typst compiler and there would be no need for running an external `makeindex` command.
[1]: https://typst.app/universe/package/in-dexter
[2]: https://typst.app/docs/reference/introspection/metadata/
I think this should be solved quicker, because if it requires some sort of changes to syntax, we will have problems if the "legacy" syntax becomes entrenched, so this sort of decisions are better to be made sooner than later.
However, most my experiences with typst have been highly positive. It is much, much faster than LaTeX, and way easier. I am looking forward to see it to become more common.
> At this point, we’re more likely to add support for .docx than a markdown language.
[0] https://www.reddit.com/r/typst/comments/1ddlgvg/arxiv_just_a...
If there's interest I can maybe take some PII out of my repo and make it public. Not like there's anything wildly private in there, would just prefer to not get any more spam calls than I already do.
fsh•12h ago
dgacmu•10h ago