Typst: a Possible Latex Replacement
Posted3 months agoActive3 months ago
lwn.netTechstoryHigh profile
supportivepositive
Debate
40/100
TypstLatexTypesettingDocument Preparation
Key topics
Typst
Latex
Typesetting
Document Preparation
The Hacker News community discusses Typst, a potential LaTeX replacement, praising its simplicity, ergonomics, and performance, while also raising concerns about its maturity and potential commercial control.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
29m
Peak period
119
0-6h
Avg / period
16
Comment distribution160 data points
Loading chart...
Based on 160 loaded comments
Key moments
- 01Story posted
Sep 27, 2025 at 3:31 AM EDT
3 months ago
Step 01 - 02First comment
Sep 27, 2025 at 4:00 AM EDT
29m after posting
Step 02 - 03Peak activity
119 comments in 0-6h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 30, 2025 at 6:33 AM EDT
3 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45393842Type: storyLast synced: 11/22/2025, 11:17:55 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
Almost nobody wants to learn something new when they already know something similar.
Creates a heck of a momentum effect, not just from the practitioners resisting the change, but also available resources and so on.
I think it depends on what the thing is. I use LaTeX for occasional documentation, a better version would save me a maximum of 5 minutes a year. I probably won't be an early Typst adopter.
But, I spend loads of time for example, working with dataframes in Python. I got into Polars fairly early because improvements in that space can massively affect my productivity.
If you're routinely using LaTeX to write papers, the time spent learning something new isn't comparably large.
I don't know. By then aren't you quite comfortable with LaTeX?
It may be Stockholm syndrome and sunk costs speaking, but I'm using LaTeX all the time: I quite like it and I don't feel any need for something else to replace it...
I suspect it is actually worse than that and that they are actually subject to the Lindy effect ( https://en.wikipedia.org/wiki/Lindy_effect ).
My point is, that creating a proper latex document, specific to one's use case can consume many hours of time.
Our basis vectors are very much wide of the mark.
Yeah, I wrote a paper using typst - which was much more pleasant to draft. But for the final version submitted to the journal, we ended up converting it to latex because that's what the journal wanted.
I think it'll be hard to dislodge latex for academic papers - particularly in CS. But there's plenty of other uses for it. Personally I'm looking forward to HTML output. I want to use it to write blog posts and long form documentation. (Markdown simply isn't powerful enough for my needs.)
Otherwise you become Dvorak, which despite being better than Qwerty and having been around for almost a hundred years, still hasn't seen widespread adoption, in this case because the awkwardness of switching is very significant. The effect is likely smaller on something like Typst.
Typst on the other hand is completely sensible.
It takes less time to learn typst than to refresh on latex.
> Almost nobody wants to learn something new when they already know something similar.
There are lots of people (myself included) who genuinely like LaTeX, so it's not just inertia preventing people from switching (although that is definitely a significant factor).
Also if anyone is looking for a little help in getting started, LLMs are pretty decent at converting (and I forget which one I used).
If nothing else, typist is going go give me more opportunities to procrastinate! Nice.
It took about a day to get my head round the language an another to get it looking like I wanted. It's pretty simple, but I found it easy to run up and maintain.
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.
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.
Writing and editing an entire book manuscript is slow.
For pesky TeX chaos smashups, you create a small dedicated TeX file with necessary driver files, edit-compile-loop till satisfied.
Twenty years ago I ran a makefile producing 1755 pages on a 32 bit INTeL CPU. This was just to see what a fat book would look like, thousands of edits remained, still remain. All the two-column formatting was fine, except for problems of long equations and tables blowing up beyond the column, and other mess I couldn't solve. The compile run time was insignificant.
BTW its laTeX not LaTeX.
Donald Knuth's original creation will ever be infinitely more significant than the sprawling ocean of all the crumpled paper bag shenanigans Leslie and whomever-ephemeral else, RUSTy-paper-clips to the side.
De Laude Scriptorum
So the top-level document is just a long list of inputs
The side benefit is that I can disable all but the component on which I am directly working, so compilation is faster.For others, here's the quote being referenced:
> After a fairly shaky start to the day, Arthur's mind was beginning to reassemble itself from the shellshocked fragments the previous day had left him with. He had found a Nutri-‐Matic machine which had provided him with a plastic cup filled with a liquid that was almost, but not quite, entirely unlike tea. The way it functioned was very interesting. When the Drink button was pressed it made an instant but highly detailed examination of the subject's taste buds, a spectroscopic analysis of the subject's metabolism and then sent tiny experimental signals down the neural pathways to the taste centres of the subject's brain to see what was likely to go down well. However, no one knew quite why it did this because it invariably delivered a cupful of liquid that was almost, but not quite, entirely unlike tea.
We probably could have done it but my coauthor is great with latex and figured converting the whole thing was probably easier than dealing with the political headache of making the organisers deal with a different format.
You can define macros anywhere you want, but you can only load packages in the preamble (before \begin{document}). I'm not familiar with Typst, but I would assume that it also requires you to load packages at the top of the document (or at least that's the only place that you would want to load packages).
> 6. It's easier to version control and diff, especially if you use semantic line breaks.
Semantic line breaks should be totally fine with LaTeX too.
> 2. Compiling is instant.
> 3. Diagnostics are way easier to understand (sort of like Rust compiler suggestion style).
Agreed, these are definitely LaTeX's biggest weaknesses.
The GP specifically mentions packages, so means \usepackage.
For those that have to use latex for various reasons, but absolutely hate these files from intermediate compiler passes, here are two aliases from my .bashrc
You can now `latexmk file.tex` and it will put all the auxiliary files in /tmp/latexcrap.The `latexloop file.tex` invocation is just a helper that hot-reloads when you save the tex file.
It’s not perfect, they definitely made some interesting choices here and there, but this makes it ~80% less painful than TeX when you’re doing anything other than happy-path undergrad-lab-report writing.
(To be clear, I know you know this! I’m writing this for the benefit of all sentient beings :))
HTML with MathML may make a decent system as well; possibly with an XML source and XSLT for templating, which is apparently how OpenStax textbooks are composed (via CNXML, though that also has just a couple of rain frog pictures in its documentation repository -- seems to be a common pattern around typesetting systems).
Then there is troff with eqn(1), which looks simpler, but not sure if there is an actual specification for it around, either.
And then there are Texinfo, org-mode with LaTeX embedding, other TeX-adjacent options, perhaps Markdown with HTML and MathML embedding.
HTML is fine to write by hand (especially when you take advantage of tag omission [0]), but I can't imagine handwriting MathML, since even simple equations need lots of tags [1].
[0]: https://html.spec.whatwg.org/multipage/syntax.html#syntax-ta...
[1]: https://en.wikipedia.org/wiki/MathML#Presentation_and_semant...
If I want to write C# on my resume, I do C`#` but there has to be a better way?
You can also write a macro
#let csharp = [C\#]
And then use it as #csharp
Pros:
- Instant compile. It just sits there waiting, and once you save your .typ, boom, your .pdf is ready.
- Surprisingly often I find myself using it as markdown replacement, e.g., for random meeting notes. Syntax is as easy as markdown and without boilerplate it produces a nice pdf.
What's not to like?
- IMO debugging can be tricky with quite concise error messages. And it does not produce any pdf once there is a single syntax error, precluding one favourite latex debugging route.
- When using packages, one does encounter hickups, but no surprise here for long-time latex users.
So asking the community here: what does Typst offer in place of PGF/TikZ[1], PGFPlots[2], Asymptote[3], chemfig[4], siunitx[5], physics2[6], and how does it work with existing bibliography providers? I use biber[7] with the Zotero Connector and Better BibTeX[8] so any paper I visit on the web is essentially instantly available to cite with one click on LaTeX.
A good test for Typst ought to be reproducing most of these typographic and diagrammatic exemplars: https://tex.stackexchange.com/questions/1319/
[1]: https://tikz.dev/
[2]: https://tikz.dev/pgfplots/
[3]: https://asymptote.sourceforge.io/
[4]: https://mirrors.ctan.org/macros/generic/chemfig/chemfig-en.p...
[5]: https://mirrors.ctan.org/macros/latex/contrib/siunitx/siunit...
[6]: https://mirrors.ctan.org/macros/latex/contrib/physics2/physi...
[7]: https://mirrors.ctan.org/biblio/biber/base/documentation/bib...
[8]: https://retorque.re/zotero-better-bibtex/
bibtex files can be used in typst.
Incorporating this into training would be a good way to improve LLM Typst support and also verify that reasoning is working (since there aren’t tons of typst examples to copy from)
https://github.com/Leedehai/typst-physics/blob/master/physic...
Typst has a bibtex support by default [2].
[0] https://typst.app/universe/package/cetz [1] https://typst.app/universe/search/?kind=packages&category=vi... [2] https://typst.app/docs/reference/model/bibliography/
It would be nice if Typst could be a LaTeX replacement that makes actually layout and designing the document approachable. I have only used it once for a quick one-off experiment and I did like the language, but as I have said above the language is not the problem if you just want to write text.
[1] That's not quite true, actually. I first wrote my thesis in reStructuredText and used Pandoc to generate the LaTeX and subsequent PDF. This allowed me to get started without having to write a lengthy preamble first. Then after I had more than half of it written down and had a good idea of what I wanted the document to look like did I clean up the generated LaTeX, adjust the formatting to my needs, redid the drawing in TikZ, and then kept writing LaTeX from there. I still think the language is not the problem, but it's easy to get hung up in the design phase before even the first chapter is written.
Those goals fall way out of the scope of LaTeX (and of course of Typst). If you want to have more control and power into a document's design, there's ConTeXt - as a graphic designer I just love it and can't imagine myself replacing it with LaTeX or Typst.
But as you said, if you want to concentrate on writing your text without thinking too much about its design, LaTeX or Typst are great for that.
I recently wrote a thesis in typst. I have written other thesis in latex.
In latex i actually wrote in markdown and compiled to latex.
I don't need that for typst.
If typst can avoid enshittifaction over the next years, then I will stay with them.
Sure, but if you want to just _write_ then latex is just fine. I don’t understand why you had to write in markdown?
Both markdown and typst solves this.
Was there anything that you were not able to achieve with reStructuredText? I am not aware of any limitations, because you can use latex in your Pandoc template and reStructuredText is very powerful to begin with, compared to most if not all Markdown dialects for example. I think it might have been easy to continue writing reStructuredText, instead of latex.
Honestly I can't remember, it has been seven years since. I don't think I was aware that I could add LaTeX inside the reStructuredText, or maybe that wasn't a feature at that time. Or maybe the formulas were too complex to express in reSturedText (my topic was differential geometry). I think my main reason was that I did want control over the final layout and I wanted to add drawings in TikZ because that way the fonts in the image would match exactly the fonts in the text.
The output is superb though, which is why everyone in academia keep using it. It’s just the tooling that is poor.
I think it needs to be modernized.
I then discovered typst and it is a breath of fresh air. Unicode/Dēvanāgarī support out-of-the-box, no installing gigabytes of packages, near-instant compilation.
My complements to those who got this done.
- https://www.adhyeta.org.in/
- https://old.reddit.com/r/adhyeta/
> /taɪpst/. "Ty" like in Typesetting and "pst" like in Hipster.
https://github.com/typst/typst?tab=readme-ov-file#pronunciat...
I have not tried this one, but the predecessor (typst-lsp) was working fine with Neovim for me when I did my little Typst experiment last year. Whatever the VSCode plugin is offering should be possible to replicate on top of tinymist.
I found Latex all by myself back then. I have never seen the reason so well visualized than this short video https://www.youtube.com/shorts/26BDVgIXkTo
Jokes aside, I'm sure your students are very thankful to you for introducing a better system.
* Submitted too fast. A quick search tells me Pandoc already added Typst input and output support (e.g. https://pandoc.org/typst-property-output.html), so guess I need to look into if I should switch to use that for generating PDFs.
[1]: https://github.com/scalawithcats/scala-with-cats/tree/featur...
[0]: https://ezb.io/thoughts/interaction_nets/lambda_calculus/202...
https://erk.dev/2025/04/19/bureaucracy
We should just use human friendly markups like MyST Markdown [1] or Org Mode [2].
Unfortunately, whitepapers are predominantly written in LaTeX. Thankfully, arXiv recently made a move to parse and render those documents in the web format. It's a hard job. But this is the wrong way around: instead of keep composing documents in LaTeX (which is not human friendly), and then doing the hard job with tooling, we should start with human first approach and have win-win!
We are living in the world where web content is the primary content and friendly for desktop, mobile devices and readers and tools (select, copy, edit...). It's easy to package any web content into epub and ship it in a single file. Printing is also easy. Only cons: precise typesetting is not harder. But this is less of the problem. I would prefer a content that is friendly to read and is responsive, than a precise typesetting.
[1] https://mystmd.org/ [2] https://orgmode.org/manual/Summary.html [3] https://info.arxiv.org/about/accessible_HTML.html
That way you get the best out of both worlds.
https://typst.app/docs/reference/html/
Of course, it's not all roses and sunshines, though. Depending on your usecases, usually need to import a few packages and sometimes they don't work out of the box easily.
For real life work I don't need that much power, though. But after learning various alternatives like markdown, asciidoctor etc etc eventually I go back to LaTeX. Oh well :p
Does it make the blogs look more edgy and geeky? Is it a an artistic trend in web design?
I’d love some insights from someone with a better sense of the situation
I am also worried about the rust-centricity, seeing how rust is somewhat of a moving target.
Our previous pipeline was LaTeX-based (first pdflatex, then lualatex), but we were constantly fighting cryptic memory errors on large documents and huge Docker image sizes that slowed down boot times of our ephemeral workers.
Switching to Typst was a massive win for us. The single static binary resulted in tiny images and faster boot times. More importantly, the performance gains were huge. Overall compile times were ~3–4× faster than LaTeX. On really large documents (2000+ pages, mostly tables), Typst compiles in ~1 minute vs. ~18 minutes with lualatex.
Beyond performance, the better developer experience and good error messages was a nice bonus too.
We wrote a detailed post about the entire architecture - from the job orchestration with Nomad to the S3 optimizations and the Typst migration in particular. If you're curious, you can read it here: https://zerodha.tech/blog/1-5-million-pdfs-in-25-minutes
https://www.pandoc.org/demo/example33/2.4-creating-a-pdf.htm...
Personally I think ConTeXt is a far superior tool, though its documentation is always trailing quite a distance behind its current capabilities.
LaTeX notation works well for this and can be easily converted to both web and PDF formats.
But compilation speed definitely needs improvement.
On the other hand, how often do you actually need to compile thousands of pages into a single document? That’s really an edge case.
Some people might say that writing in XML is annoying, but it isn't if you have a decent XML editor. In my case, it is Emacs nXML mode. Customisation is possible with DITA-OT [1] and plugins, and yes, it is also based on XSLT. Overall, I think DITA is an industry-proven XML powerhouse. It may be boring, but it has huge potential for anyone with advanced documentation requirements.
[0] https://dita-lang.org/dita/archspec/base/introduction-to-dit...
[1] https://www.dita-ot.org/
Here are my most important requirements: Multiple columns configurable for meaningful column and page breaks (minimum number of lines in a new column or page). Reliable automatic hyphenation for multiple languages (at least English and German, perhaps French, Italian and Spanish in the future). Pictures in columns with dynamic placing according to the available space. Complex tables and forms with sensible automatic page breaks. Background images. Different areas on the page which are treated like mini-pages. -- Is Typst capable of all that?
I've migrated my invoicing (and all my other publishing/slides) to typst from latex and couldn't be more happy.
Not having to deal with the insanity of the LaTeX distribution system alone is worth the switch. Everything is contained in a single binary. The language itself is much simpler to read and write, and seems just as flexible. LLMs do a decent job of generating it. Compilation takes less than a second, making it so much faster to iterate.
Many thanks to the authors and contributors, and please don't ruin it. :)
But I will say I've mostly written relatively simple documents in it, so maybe that colors my experience.
[1]: https://github.com/scalawithcats/scala-with-cats/tree/featur...
The absolute staying power of TeX has been incredible.
224 more comments available on Hacker News