It's great to see Typst getting more visibility. We migrated a real-world workload to it a couple of years back: generating and e-mailing 1.5M+ PDFs daily at my org, Zerodha.
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
I am using a LaTeX pipeline for creating text, invoices, forms, etc. from snippets stored in a database. It was quite complicated to set up, but the results are very satisfying. In principle, I would like an easier markup language, but am afraid to wast my time trying out something new, just to run into limitations after awhile.
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?
Now, this isn't really an alternative, but I can recommend using pandoc instead of pure LaTex. Personally, I think text blocks are much easier to handle and read in markdown and pandoc allows you to use in-line LaTex wherever markdown is insufficient, without making basic text styling unnecessarily verbose. In my opinion, the result is a better/friendlier LaTex, or limitless markdown respectively. Especially for writing papers and such, you can always start actually writing in basic markdown, which is trivial and almost-WYSIWYG, and later worry about presentation. In my experience, with pure LaTex you easily get lost in sidequests and it's much harder to get into a writing flow and find your way around your own words in the editor.
I wrote my dissertation this way. As long as you’re already comfortable with latex, it’s amazing. Huge time saver not to have to write latex formatting when you don’t have to, but an equally huge time saver to be able to control formatting when you need it.
It's a bit of a weird thing, really. I think, I have not seen any comprehensive, basic tutorial on the matter. I presume a lot of people who've become victim of the LaTex bug, but dislike its overhead, independently found bliss in this pandoc compromise. It's definitely a bit of coping with LaTex Stockholm syndrome, you probably need a specific set of experiences, know some struggle to fully appreciate it.
If anyone here hasn't messed with it, but thinks "I wonder, if LaTex could ruin my life, too", I suggest to start learning pandoc first (it can do various markup conversions, it's useful by itself). Get familiar with pandoc metadata headers on a RTFM basis. A LaTex intro is all you need after that, if you are up for a bit of trial and error. Or learn LaTex first, but not both at the same time, as the layered processing involved is a bit confusing (e.g. pandoc showing pdflatex errors). In any case, I strongly advice to bite the bullet and install the full LaTex package of your distro (no idea about macOS, or windows), as fighting dependencies is suuuper annoying. However, the trade-off is it's truly a behemoth, consequently frequent upgrades for a lot of packages you don't ever use. (I configured dnf to download upgrades automatically, so I can do a quick `dnf upgrade --cacheonly` when opportune.)
Speaking of... I wish pandoc could do Tex package management and dependency resolution.
I ended up just downloading the texlive image and letting it go slightly stale while I wrote. Latex plays poorly with OS package managers and I decided I preferred to be out of date.
I made each chapter a separate file and compiled each one to latex. I had a top level latex file that did an \include{} for each chapter, and a big old Makefile to tie everything together, including figure generation.
All this, and it was still easier than writing every latex command by hand.
If you're going to do this, might as well go with AsciiDoc instead. It's vastly superior as a syntax. Markdown breaks down at the mere mention of something as trivial as a nested list item containing a table of blockquotes.
Not that it couldn’t be trivial in the abstract, but I’m struggling to imagine a use for a nested list item containing a table of blockquotes. It doesn’t seem at all surprising that a tool wouldn’t anticipate that.
Absolutely! The writers are generally not highly technically experienced, but have to produce highly technical documents that need to be regularly reviewed and changed for years at a time.
If you're going to do this, why not generate Pandoc ASTs directly? You can do so from a number of languages and they support (by definition) a superset of any given markup's features, with blocks to call out directly for things you can only do in Latex.
I assume the original question is asking about programmatic document generation, in which case working with a real AST is probably also a productivity and reliability win as well.
I’ve worked places that will regularly send generated PDFs of things like statistics or small reports or other generic boring business stuff every week or month.
It’s always been some combination of MJML, inline DIY HTML, or PDFs generated with Puppeteer etc.
Same, used to work at a place that used to use ghostscript + chromedriver and went to Weasyprint.
Weasyprint is quite wonderful, fast, and you can file upstream tickets and get good clarity on what's going on.
And you're writing your templates in CSS + HTML, which generally flows well.
At the end of the day the problems are rarely "CSS + HTML vs Latex vs Typst", but more just about making decisions about how you want something to be laid out when you have dynamic input.
"What should happen when I have a huge blob of text here" is often a non-trivial question. "What should I do on a page break here" is a non-trivial question. And they often involve having to, at the high level, make decisions. People whine about CSS, sometimes you just gotta read the spec and figure things out (rather than stop at your intuition for how certain fields work).
Nice thing about CSS + HTML is you can open up your output in a browser and futz about with it very easily.
If you're compiling millions of documents, many with thousands of pages, you probably need something very universal. LaTeX is boring tech, off the shelf, ready to use. It might take some work to figure out the initial setup with regards to templating and everything else, but after that, you can be generally pretty content that it will handle most things you throw at it just fine.
I am currently preparing to switch to DITA. The learning curve is steeper at the beginning, but I find the overall concept of topic-oriented, information-typed authoring with content reuse very attractive.
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.
Your original comment before editing complained about using pdflatex as if it was not part of the pandoc toolchain. It was not about pandoc being universal.
I'm a PhD student currently writing my thesis in Typst. On paper this is an absurdly risky decision: it's a new technology without a huge user-base, it's not totally stable yet, etc. But I tried Typst and I had no choice. It was obviously the right thing to do, even though I'm going to have to make a pixel-perfect clone of my university's LaTeX template.
I've been using LaTeX for over ten years and I still wouldn't say that I "know" TeX in any meaningful way. I was not only productive but proficient in Typst in a day or two. If there isn't a package for something that I need (and, surprisingly often, there are packages for what I need, and excellent ones!), I find that I can just do it myself. Quickly. Things that never would have been possible for me with LaTeX are within easy reach. In ways I'd be happy to talk about if anyone's curious, it's been a huge enabler of my productivity as a researcher. I owe this tool so much.
Interestingly, I spend far, far less time yak-shaving in Typst than in TeX, since I can just Do The Thing That I Want. I'm actually focusing on writing instead of figuring out why package A conflicts with package B, and then how to install a different version of just a single package to override one of them, and then... [this sort of thing doesn't/can't happen in Typst; it's a real programming language with real modules] I could go on and on about the (relative) quality of the ergonomics and devex: fast compilation times, as others have said, but so much more than that. Try it out. Just try it out.
I should also say that it's not perfect. There are some funky design decisions for sure. There are some missing features, like including pdfs as images in your document (that one's on its way, I believe). Critically, the quality of the typesetting is maybe... 95% as good as TeX, which is perfect every time. Sometimes things don't kern quite right, and you have to adjust them by hand. It's a work in progress. I'm optimistic that it will achieve parity on that front.
I suspect it is getting better but I've experienced some breaking changes with Typst. Nothing that was terribly difficult to fix, debugging it wasn't obvious though.
There seems to be a huge amount of folks that want typst to work. I respect TeX and LaTeX, immensely, but it's so vast and byzantine. Maybe I don't know where or what, but some kind of clean LaTeX "distribution" is needed. It seems like you could build it in to containers or something. Just have some way that sort of makes it more of an atomic unit or something. I don't know how many times I've pulled down a template started to build it and something was missing.
It's good to see innovation in this space and people using it.
> Maybe I don't know where or what, but some kind of clean LaTeX "distribution" is needed.
Unfortunately it’s a bit like asking for a “clean” Python distribution or a “safe” subset of C++. All the baroque mess is necessary to get working the many legacy packages that many people depend upon. And not just depend upon, but depend upon with all their concomitant foibles, bugs, and learned work-arounds.
Sounds like they could benefit from the R (language) build model that checks library changes against registered consumers of that library before merging.
> some kind of clean LaTeX "distribution" is needed
I don't think a distro would do much to alleviate my gripes with (La)TeX which is its language and VM. TeX-the-language violates literally every single architectural principle we have come to rally around in sane programming languages. Whether you start by reading the TeX book or by copy-pasting from similar LaTeX documents, in my experience you'll soon hit a wall. No simple if/then/else. No just-works maths. No data types. No namespaces. No modularization. Every single solution in the language that Knuth comes up for any kind of problem he solved in TeX is a new edition of facepalm.jpg, everything you don't know and look up or (more likely) post to TeX StackExchange is answered with something that will make you stare in disbelief. Nothing, absolutely nothing that you do in the language to change anything in your document is guaranteed to not accidentally affect something else in your document, and your only way to check for it is eyeballing every single page of output.
Couldn't have said it better myself. Plus, you're not supposed to notice any of this. If you do, the TeX masters will put their fingers in their ears and tell you it's PEBKAC. "Get good, n00b. RTFM. It's not happening, but if it is, it's a good thing. It has to be designed this way, actually, you're just too thick to understand why. No, I won't explain."
Also, every part of the system is like this, not just the language-qua-language. The architecture of the compiler is like this. The compiler UI is like this (yes for every TeX engine). The package management/distribution situation is like this.
It basically has two things going for it: it's highly portable, backwards-compatible, and stable, and it produces really pretty documents.
I wrote my PhD thesis in Typst last year. I also had to clone my university’s template (available here https://github.com/fdekerme/PhD_template_UPSalcay), but the process was fairly straightforward.
I’d say 99% of the experience was super smooth. It was a great decision, though risky as you mentioned—I started with Typst 0.11 and finished with 0.12. The only painful part (that last 1%) happened at the very end when I realized my university only accepted PDF/A (the archival version—I didn’t even know there were different PDF versions before this). While Typst 0.12 theoretically supports generating PDF/A-2b files, the output failed the university’s compliance test. I ended up (after MANY experimentations) using Adobe Acrobat Pro to convert the file, which caused some minor layout adjustments unfortunately.
Apart from that, I highly recommend Typst. It’s an excellent tool, and I hope academic journals will soon accept submissions in this format.
> even though I'm going to have to make a pixel-perfect clone of my university's LaTeX template
I'm not sure if you really mean pixel perfect or if it's just an exaggeration. There are packages in latex which are almost impossible to replicate in a pixel perfect way, one widely used example is microtype, which is especially useful in scientific works.
> I've been using LaTeX for over ten years and I still wouldn't say that I "know" TeX in any meaningful way. I was not only productive but proficient in Typst in a day or two.
That's an interesting insight. Do you have an idea why this is? Do you have a CS background?
That's also been my own personal experience, and I have a CS background and have written several papers and a PhD thesis in LaTeX. I have done many detailed figures in TikZ and done countless presentations using Beamer.
I have no idea how to implement anything in TeX on my own besides rudimentary macros. I did once try to implement a simple typesetting package for typesetting some particularly gnarly natural deduction trees, and I thought it worked fine for a few examples, but then it broke down in ways that was completely non-obvious to me.
The computational model of TeX is really, really opaque to me.
A single book on latex only covers you until the introduction of your thesis. Then you will need to add a table. That’s a different book.
Then you will need to align your equations. That is another book. Then you will need a graph. This is a freaking library of books.
I mourn for the time I wasted on Latex. For nothing.
I am the proud owner of all 5 five volumes and Digital Typography. I have been in front of a computer for almost every single day for around 45 years. I speak and write several languages, including Chinese and Japanese. I am regularly coding in several programming languages and consider myself fairly fluent in things like HTML and CSS. I have worked as a typesetter and assistant editor of two medical periodicals.
I could go on but what else in the world do I have to add to that so I can say "as for me, I opened the TeX book, read it, and understood it" or "I know how to use LaTeX, confidently"?
I don't know the answer to that question, but I do know the answer to the question "is TeX / LaTeX a well-designed, user-friendly, sane software?". The answer is no, no, and no.
Yep, I'm a CS researcher in a top-3 department. (Hate to be all credentialist like that, but I'm guessing it does mean something to this audience.)
I think a lot of the reason is that, ok, LaTeX is extremely complicated. We all know this. Its partisans tend to believe that this is because typesetting is a hard problem. Typesetting is a hard problem! We know this, too. But I think that a substantial fraction of the complexity of LaTeX is accidental complexity stemming, ultimately, from the inherently loosey-goosey nature of the system.
See, there is no real abstraction in TeX. There are no real mechanisms for encapsulation/information hiding/whatever. It's all just characters that eat characters and turn into other characters. Anything can do anything. Anything can be anything. As a result, the whole "theory" of what a TeX program "is" (like in the sense that Peter Naur used that word?) is conventional.
This means that even to reuse other people's code, you have to imbibe decades of convention that's maybe semi-documented, maybe folkloric, or maybe perfectly sound but requires you to read a 230-page manual. I can only speak for myself, but for me, it's no way to live.
Now, again, TeX-lovers tend to claim that its high degree of loosey-gooseyness is necessary, that it's what makes TeX "powerful." I don't know, that sounds to me like the same old "you can't handle writing assembly" story. Sure I can. I'd just rather not if I can help it.
Or could it be that the fact that LaTeX is a layer on top of TeX is a cause of additional complexity and that you still have to deal with TeX, so the abstraction is neither complete nor opaque? I assume in Typst they don't (yet) have this issue. Another reason could be missing static typing and thus less formal means to find bugs? You "missing abstractions" finding would point to that.
Yeah, absolutely, the sheer number of moving parts is related to this. There's TeX-the-language, there's LaTeX-the-format (a big layer of macros and conventions), the different LaTeX standards (LaTeX2ε, LaTeX3, whatever, I don't know the ins and outs). Then there's the implementation: all the different engines (pdftex, XeTeX, LuaTex), then there are the distributions, then there are build systems and wrapper scripts to handle all the mysterious compilation-cycle incantations that depend on all the other stuff (latexmk, etc.).
All these layers and alternatives have proliferated partly because of age and the necessity of new solutions to new problems. I also think they're partly coping with fundamental limitations, design decisions that seemed like (or very much were!) a good idea in 1978, that sort of thing.
It also brought typesetting to academic research, which means it's doing something that wasn't necessary before it arrived.
I was one of the last holdouts from a bygone era. I finished my dissertation in physics, in 1993. It's neither typeset, nor even in a computer readable form. Some fellow students were already using LaTeX by that point (mostly high energy physics, the slowest to graduate of the physics specialties) but I wasn't going to change my already obsolete tech stack within mere months of finishing.
I also have my parents' chemistry theses. They took handwritten manuscripts to a typist who banged out 4 copies at once using carbon paper. And then they entered their equations and figures by hand. (My thesis is hand corrected too). And their theses were short.
LaTeX did a lot of things for my fellow students, but it didn't make them finish quicker.
It was at a time of extremely rapid development of laser technology, where you built your own lasers to be at the cutting edge, which meant optics, electronics, and in my case, computer control plus data collection. I developed a method of increasing the signal-to-noise for a class of spectroscopy measurements by a factor of roughly 1000. This opened up a number of possible experiments involving otherwise weak effects.
My experiment produced some token physics results, but the method that I developed was really the point of it. A couple other labs used my setup, substituting more modern lasers as they became available. Meanwhile, I went into industry, and still work on measurement instrumentation today.
Good stuff, nothing but respect for that kind of work. AMO people are a different breed. Spending all day interpreting power spectral densities and tracking down ground loops takes a certain je-ne-sais-quoi. Literally. Last time I used a microwave amplifier I plugged it in with the wrong polarity and blew it up!
I totally agree. I have written in LaTeX extensively and Typst is a game changer and a life saver. The community is also a plus. I love it and I will never go back to TeX.
I’ve looked at Typst and it looks attractive. I’m not quite willing to invest in it until, say, PACMPL lets me use it there. Any idea if that will happen any time soon?
For me, it's been invaluable for notes and memos (and my thesis). When it comes time to submit a paper, I transcribe everything to LaTeX. It's a pain, but it's a lesser pain than transcribing from handwritten notes scattered across three notebooks and several crumpled-up sheets of printer paper in the bottom of my bag. That's my own peculiarity; YMMV.
(Edit: also, ugh, I feel like such a goof for having written that. Thanks for being nice about it.)
Ugh, unfortunately it means "please note that I'm not an unserious person." Very often when you have opinions on software on the internet, trolls will jump out of the hedgerow and shout, "who are you to have an opinion?" And, sadly, that same sort of person will often be mollified somewhat by prestige.
Feels kind of icky to have written that, though, and maybe I regret it slightly.
I think it's good, because it will enable other people to be less scared to ditch Typst
Honestly, I consider it embarrassing that it took so long for LaTeX to be dethroned. Academia is supposed to be about thinking for the long term. Instead everyone is too busy publishing and not perishing to rid themselves of LaTeX (and predatory journals outside CS, etc. etc.).
Given that, it takes credentialed "winners" to change the system. Everyone else is too often too afraid to play the game in the lowest risk manner. Sad.
It also belies an ignorance that some schools have specializations. Utah wouldn't come to mind as a "top-20" school by the snobs, but they basically created computer graphics.
I have a CS background, I have used LaTeX for over ten years, and I also don't know TeX in any meaningful way. I feel like I'm copy-pasting snippets of code and trying random stuff until I get the outcome I want
From experience, you don’t need to not have a CS background to find TeX/LaTeX difficult or obscure to customize or extend.
Here’s a challenge to try (I hacked together something similar that only works in specific cases): write an environment where you get N columns in portrait page mode, with a vertical ruler, say, 12pt to the left of each column; respecting different paper sizes.
The amount of \makeatother, and what does that even mean??, will blow your mind
> The amount of \makeatother, and what does that even mean??
I’m not a TeX lover, but this part is just a snipe. I’m guessing you know and this was a joke. Apologies that it annoyed me enough to write this comment.
If you care enough to read this, you could learn the purpose of \makeatother [1]. It’s not tricky.
I used to use LaTeX pretty frequently and although I was reasonably productive I also never felt that I "knew" it. It was a whole lot of googling "how to do x in latex" and pasting in something that was too arcane for me to remember for next time (and/or copy pasting from my own prior documents)
In all honesty, I only ever did it to achieve the "LaTeX look". These days I write in markdown or (gasp) wysiwyg editors like google docs.
Thanks to pervasive use of LLMs I predict the future is mostly markdown. It’s the defacto output format for every LLM. It’s simple, plaintext and easy to version control.
Maybe the best compromise here is a markdown interpreter that converts to latex so you can use existing libraries and templates but not have to worry as much about syntax.
I don't think syntax is the problem here. Using some tool that transpiles to LaTeX, you'll still have to fight your TeX engine sometimes, but now you also add friction and gotchas of your tool that does transpiling.
I've tried writing Org and compiling it to LaTeX, but gave up this idea because ultimately I had to figure out idiosyncrasies of both LaTeX and Org-mode engines.
> If there isn't a package for something that I need (and, surprisingly often, there are packages for what I need, and excellent ones!), I find that I can just do it myself. Quickly.
GPT 5 and Gemini 2.5 Pro are usually unable to write compiling Typst code, getting it confused with Markdown. Claude Opus 4.1 and Sonnet 4 manage to produce compiling Typst code more often than not, but is far from being able to follow instructions.
I assume there is just next to no Typst code on the internet as of their training and the similarities to MD + MathJax result in LLMs hallucinating Typst syntax, often using `#` for headings or `\` and `{ ... }` in math mode.
Therefore, I must say that LLMs are more of a hindrance than help when writing Typst code. The syntax is nice enough though that I can fully understand that writing something oneself is very simple once you understand the concepts (content as a type; `show:` vs `show [rule]:` vs `set`; control flows with `if`, `for`, `while`). And for any questions there is an active discord channel with helpful real people.
Without. I’ve recently tried using Claude, though, for things like mathematical drawings, and it works pretty well with a little back-and-forth and debugging. Especially with similar example code in context.
I have had no luck with LLMs writing typst code. Normally its a better code writer than me, but the LLM (gpt4-o maybe?) hallucinated most of the document.
Compile time is also night and day. Almost instantaneous with Typst, always slow with LaTeX. This also contributes to just doing the thing that one wants instead of procrastinating - it's out of your way and you can just focus on your document.
I might have to give it a try. There's a lot I like about the idea of latex but I've never been able to successfully internalize how to use it in a non-painful way either. I've pretty much given up on the whole idea of making a PDF do what I want at this point.
I've looked into typst before and am always turned off hugely by the website's attempt to make it look like some sort of purchased product with a freemium option. I don't really ever like to commit to anything I can't use with a basic commandline / plain text pipeline or that I don't expect to be available in a long-term way without enshittifying. Looking closer at the actual repo for the first time, it seems like I can use it that way, so it warrants investigation, but I'm still leery of the project because of its presentation
Oh yeah, I can’t imagine most people are using their web editor thing. Good for them that they have it, I guess. It looks like it’s done well, a strong competitor for Overleaf. I’ve never even opened it, though, to be honest.
It is a little bit unfortunate that they don’t distinguish more clearly Typst-the-program and Typst-the-company in their advertising.
In my experience, formatting is just about the only thing that a department/university cares about (outside of the folks on the committee), and they will send back a thesis until they're satisfied with the formatting, and that means lost time. Perhaps throwaway_7274's department has a reputation for particular attention to (meaningless) detail.
The matter isn't really that something is possible only in latex, but that a department/university might have its own template/document class of arbitrary complexity that you would have to reimplement
> department/university might have its own template/document class of arbitrary complexity
I think there is a limit to how complex they can be. If you can't do it relatively easily in Word, then it's probably going to create too many complaints for the bureaucrats
I think there’s a Latex template you can use, or you have to make your own document that looks as similar as possible. It’s not a list of guidelines but a template that specifies how it’s supposed to look.
that is a good observation, but it actually proves that the riskiest thing you could do with your time is a meaningless credentialist PHD, instead of actually learning skills that rich people will pay you for immediately without the pomp and circumstance
If you don’t understand what they mean and are hunting for pedantic discoveries in explanations of a problem, then please try to dig deeper and contribute more meaningfully, as per the HN guidelines.
> to use a different program for turning equations to pixels?
They explain in the comment why it was risky (new thing instead of tried and true methods, not a large user base, etc.) and yet you minimized their explanation, over simplified and seem to not understand the risk involved in writing one of the most important pieces of literature in one’s career.
> why? they wont give you a phd if a single pixel is off by one bit in the alpha channel?
They meant pixel perfect as in matching the template to infer the importance of this. Then for some reason you went down the “off by one bit in the alpha channel” which is a bit of wise-assery and not meaningful nor necessary to the conversation.
As I said before, please dig deeper and use your well meaning System 2 to contribute, and not your Reddit-Tainted System 1.
These are some notes I wrote when I started out with typst when comparing with LaTeX:
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.
8. Programming with it is lovely. Its got a little interpreted language built in, with helper functions like json("some_file.json"). I wrote a paper in it, and used that extensively to populate all my result tables. (Benchmark script -> JSON files -> typst compiled the results directly into the PDF).
I've said that in Typst, when you're writing, it feels like writing, and when you're programming, it feels like programming. Whereas LaTeX always feels almost, but not quite, entirely unlike programming.
Nice Hitchhiker's Guide to the Galaxy reference! That's my favourite quote from it :)
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.
The primary feeling I get from using LaTeX is: fear. Any little special thing I adjust tends to break the document, or move figures, or fixing one thing breaks another and so on. And forget about changing templates.
My general advice here for you and many others in this thread would be to switch to Context (or even Luametatex if you really want to make some truly crazy stuff, basically it's just a newer and more experimental version of Context) if you are not happy with things and like to do your own customizations and don't bother becoming a TeX wizard. Latex is super if you are fine with the template you are provided or you absolutely need some obscurish package, otherwise Context is similar enough and bending it to your will is pretty much how it's supposed to be used.
My paranoid workflow is that I have to make many subdivisions of the document so that I can trivially enable/disable components when I am triaging a problem. When something breaks, I am less reliant on the garbage error messages.
So the top-level document is just a long list of inputs
The fast preview makes it a fun environment for interactive graphical/visual programming. With some limitations, unfortunately no animations and don't try to create thousands of objects or curves, the language server will run out of memory and have to be restarted.
Is what you’re describing something that latex handles well? I’m no expert, but that problem seems solvable by rendering previews with say sampling of large or complex objects vs full builds that maybe take a minute if high fidelity animations or very large graphs are desired as a supported use case in something fully open source
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.
I haven’t explicitly recreated a template for an academic venue, but I have recreated a custom template to match and existing PDF. It was pretty straightforward to recreate it as the language and “standard library” (if you could call it that?) is well designed and has excellent documentation.
95% of the layout? Trivial. The last 5%? Much harder. They’ve invested in their very specific latex template.
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.
Oooh that is nice. I have long relied on various conversion hacks to update data tables (mostly settled on pandoc markdown), but that little usability nugget is worth quite a bit to me.
> 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.
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.
I am 95% sure that you can import wherever you want. I remember doing it with Tables i defined in an extra document and then imported only where i actually needed them.
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
Actually, you can’t specify macros anywhere. Unlike TeX, it’s a real honest-to-goodness programming language with functions and types and modules (yes! It has namespaces!) instead of just macros on macros on macros.
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 :))
It's my duty bring up that plain TeX, the Knuth language in which the large macro collection LaTeX is written, isn't as verbose and opaque as LaTeX when people complain about that.
It has the opposite problem where you may have more control than you'd like. But it is in some sense very simple. e.g. this is a valid plain TeX document:
$$\aleph_0$$
\bye
Things don't have to begin{ and end{ etc.
There are simple collections of useful macros like [extended plain] kind of like lodash where the aim is to enhance the classic syntax by ` input eplain` at the top, not take over.
NB: I was so proud to write my thesis entirely in [extended plain], but when it was time to submit it to the library they basically said, "That's nice, nerd, but we have specific style files." and I had to rewrite it into LaTeX anyway!
Anyone who has only ever used LaTeX will be pleasantly surprised by plain TeX - so many of the things that you'd think must be LaTeX macros are actually just TeX itself.
I read the TeXBook over 25 years ago when I wanted to learn about how mathematics was typeset. It gave me a lifelong appreciation for and love of the art of typography.
The downside is that once you know, you know and you will see lots of bad typography. Though I genuinely think digital typography has continually and gradually improved over the decades. The typography you get "out of the box" is much better than 20 years ago. Also, high dpi displays rock!
I have written a couple of lecture notes in LaTeX and I wrote my master's thesis (mathematics) in LaTeX as well[1]. It's actually a fine language if all you want to do is write and rely on other people's templates. But actually writing my own package or understand how the underlying systems work has always seemed like black magic where individual packages have to avoid stepping on each other's toes, or add specific workarounds. Maybe I'm wrong, but that's the impression I got.
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.
I also haven't delved too deep into Typst, but I can say that in my experience, writing templates involves way less black magic than LaTeX. I feel like I'm already more proficient and making my own structures with it than with LaTeX despite using LaTeX for a decade
> It would be nice if Typst could be a LaTeX replacement that makes actually layout and designing the document approachable
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 have hear of ConTeXt, but never tried it. I originally wanted to write my resume in LaTeX, but I quickly realized that my choice was either to use a template and have a resume that looks like everyone else's, or dig deeply into the arcane working of TeX. In the end I had my sister do it in InDesign, but now she is the only one who can update it. I would love to remake it in something I can actually edit myself, whether ConTeXt, Typst or Sile.
I really think Context is the correct starting point if you want to make your own thing with the Tex quality. So many people frustrated that Latex makes it kinda hard to customize things and I was too. There is a learning curve to use the advanced features of Context but at least it feels like a sane system (and generally no need to add packages, the power to change the style of your document is fully granted to you).
I also have written. thesis in reStructuredText and used Pandoc to make a latex file and then latexmk to make a PDF file from it. I also used matplotlib and Python to make PDF plots, which I then could losslessly embed into the main document.
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.
> 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 nice thing about Typst is that I think they've built up a community and business model that should disincentivize enshittification. The compiler is open source, and there's a large number of people using it now. If they start enshittifying, it can just be forked and maintained by the community at the very least at the level of functionality it's currently at, which is good enough for a large segment of people.
Because standard constructions like emphasize, code blocks, headers, lists etc. Are incredibly difficult to both read and write hampering the writing flow a lot.
The crucial component for the success of this, in my opinion, is the acceptance of Typst templates in scientific journals and conferences. The adoption of something like this in universities relies entirely on the adoption by these publishers.
I see almost no support in the scientific community for Typst since everyone already has a LaTeX template for a thesis, paper, slides, etc. Researchers need to take the initiative and create a template that is accepted by first a chair, then propagate it in the university and try and get it popular enough so that it hopefully forces the creation of templates for conferences and journals.
This is an incredibly long, tedious, (and I am guessing ongoing) process, but one that is crucial for Typst to be a real contender with LaTeX
I'm probably ignorant to specific issues that make more advanced typesetting for journal submissions necessary, but I don't understand why some academic flavor of markdown isn't the standard. I'd advocate for that before either LaTeX or Typst.
I absolutely get the importance of typesetting for people who publish physical books/magazines/etc, but when it comes to research I don't see the value of typsetting anything. Journals or print publishers should be responsible for typsetting submissions to fit their style/paper size/etc, and researchers should just be responsible for delivering their research in a format that's simpler and more content focused.
> I don't understand why some academic flavor of markdown isn't the standard
I would argue that is exactly what LaTeX is... I studied mathematics in university, and from what I recall, every major publisher provided a LaTeX template for articles and textbooks. Likewise, pretty much every mathematics presentation uses Beamer slides, and most mathematicians are able to "compile" subsets of LaTeX in their head. Websites like MSE and MO use MathJax precisely so that people can write notation as they would on assignments, notes, papers, etc.
Note: I am not saying people particularly like LaTeX as a tool. However, the vast majority of the complaints about LaTeX do seem to be from computer science people. Many mathematics students just create an Overleaf (formerly ShareLaTeX) account and call it a day. Of course, nobody enjoys notes taking 10 seconds to compile, or the first 100 lines of their thesis being a preamble, but the important part is the ability to express notation across a variety of mediums, and the publisher support (as GP mentioned).
I agree the standard for mathematical notation is latex, but it’s only needed for fairly limited parts of a document. It makes more sense to me as something you’d use in snippets like `$\sum_{n=1}^{10}n$` than something that should control the whole document.
Markdown and mathjax is imo way more web friendly than a full latex document and avoids distracting/unnecessary aspects of latex.
As for publisher support, that’s what frustrates me most: html was specifically designed for academics at cern to publish and link documents. Instead of using an html friendly format like markdown, publishers demand a format designed for printing content to a physical piece of paper. So now html is used for almost everything except academic papers, and academic papers are all pdfs submitted to journal or preprint severs with no links.
Typst is just wonderful, I hear maths majors now procrastinate on thesis writing by writing typst packages instead. Give it ten years and see how it developed.
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.
In my experience, the hiccups with packages are of a different kind than those with LaTeX packages. They’re more often “normal programming” hiccups where a function is poorly-documented, or there’s simply a bug. LaTeX packages can cause bigger problems: even usepackage-ing them can do arbitrary ‘stuff’ and have weird nonlocal effects that are basically undebuggable. Oftentimes two packages will just be incompatible, which should not ever be the case in a sensible programming language.
I've ditched Pandoc + Latex for Typst for a book [1] that I'm writing. Typst is as easy to write a Markdown, and so much easier to program than Latex (though it is still a bit rough in some places). In Latex I would have to rely on a slew of packages to get anything done, and then work around their quirky interactions. With Typst it's feasible to just write it myself. It's also really fast and doesn't poo all over the file system. Strong recommend if you're producing technical documentation with PDF as your primary target.
Among alternative typesetting systems, there is also SILE, which supports two syntaxes (XML-based and TeX-style), supports scripting in lua, comes with freely available sort-of-specification (unlike (La)TeX or Typst, unless one counts program sources as specification). For formulae, it additionally allows direct MathML input. I have not used either Typst or SILE though, only looked into their documentation.
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 with MathML may make a decent system as well
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].
I also had problems with MathML verbosity, and the culprit is the markup for the individual character classes (mi, mn, mo, ms.) I wrote a little filter that pulls apart character sequences and applies the respective character markup tags using a lookup table, so I can write MathML without using character markup. If any character markup is already present then it is skipped, so the automatic behavior can be bypassed by explicitly tagging characters and symbols as needed. This drastically reduces the character markup and makes it quite readable, even to my dyslexic eyes. As a bonus I'm not tied to some other tool that I have to game from time to time to get a particular MathML expression, I can say exactly what I want. BoBW.
This is probably not useful for most people, but I wrote a little script for Emacs that lets me write TeX-style math in a comment and then render/update it below in MathML: http://sdf.org/~pkal/src+etc/mathml-from-tex.el. The translation itself is done by LaTeXML, which one must install on your system separately.
It is indeed considerably more verbose, especially the "context" version (the one focusing on semantics, rather than presentation), and I did not write much of it myself, but I can imagine it being fine. It should not be a bottleneck for carefully (and slowly) composed documents, while for more casual and quick notes, even with LaTeX it appears to be common to use both a preview (often inline) and some input assistance, avoiding completely manual handwriting. Besides, as the linked Wikipedia article mentions, it is rather like expressions in Lisp-family programming languages (or pretty much any common ones, if you avoid infix operators), which are not that bad. I imagine it may also be more convenient (and terse) in combination with SXML or KDL, to avoid closing tags.
As a long time latex user, and one who is occasionally frustrated by usual things about latex, I have two qualms about attempting to switch to a new system. The first is I already have found solutions to many of my edge cases in latex. Will I have to do this all over again in something like Typst? It can't be so good as to not have any. And when I do encounter them, is the user base big enough to have already encountered it and solved it and wrote about it, so I can just look it up?
Looking at the example in the link, in principle it looks great. But one of the strengths of latex is that I can customize things. Like for the list example, I can have fine tune control over the indent on both sides, the list marker symbol, the space between the marker and the text, and so on and so on. Does typst have this level of control?
Same boat here. It’s a very good layout language. And vastly superior production process. Will you find new edge cases? Yes. Is there a large user base covering all problems? No.
You can add: “Does Claude Code understand it well enough?” No as of a year ago, last time I checked.
Yesterday I had Claude write me a simple 3d renderer using the CetZ package (typst’s Tikz) to draw illustrations of surfaces for a math paper. It pretty much nailed it.
AI support is an interesting new facet of ecosystem quality. I wonder how much of this can be obviated with high quality tools. Coding agents can leverage language servers and documentation fairly well, but it’s not clear to me if that can fully compensate for weak language coverage in the training data.
Typst still does not natively support floating images. You can put images at the top of a page, or at the bottom, but there is no native way to declare an image as floating with text wrapping around it.
I guess to add to that, what if there is another party involved with your work that will demand latex? Like a library or journal publishing your thesis/paper?
I have been planning to put out a quarterly Sanskrit newsletter for some time now, and was dreading having to deal with LaTeX. For basic stuff, LibreOffice PDF export works. But that is not a plain text workflow.
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.
I will post it on our website as well as reddit when it is ready. I am taking my time to ensure that it does not become a one-off thing and can continue for many quarters.
One advantage of LaTeX is that it's virtually impossible to generate markup by accident. This contrasts with other platforms which often decide that I'm trying to create a bulleted list, write something in boldface, etc. -- which hasn't always been the case.
It seems that part of the design philosophy of Typst is to make more assumptions about what the user is trying to do. For example, apparently if the user wants "dif" to appear in a math formula, typing "dif" would instead produce a differential -- although I presume there is some easy way to handle this.
Anyone who has used Typst -- did this potential disadvantage materialize in any way which was at all significant? Or did it turn out to be a nonissue?
This is a nonissue. I've written several lengthy documents mixing up all sorts of pieces in Typst over a year, created my own template, modules, functions...
nonissue for me. This is an advantage in most cases, and the way to tell typst to just render literally is quite obvious (backslash in markup mode, quoting text in math mode). The only slightly annoying thing is that in math mode "/" becomes a binary operator for rendering like \frac, and you need to use the ugly and hard to read "\/" for an actual forward slash for tighter division.
Nobody seems to be taking about how great typst is to use programmatically. It’s absolutely trivial for example to build a Lambda function that parses some json input into a PDF. We’re using it to generate PDF invoices for our customers. We save massive amounts of compute because of how fast typst compiles into the PDF.
God it's so much easier than LaTeX. I wrote so many things in LaTeX over the years, and writing (and debugging) switching to Typst felt like, well, like somebody had been fighting me every step of the way, and then finally stopped. I'm not going back, if I can help it.
But I will say I've mostly written relatively simple documents in it, so maybe that colors my experience.
I've started using typst for small local documents that I would previously have written in markdown (or R-markdown). Typst offers programming features that are very helpful for small writing tasks that need more customization than markdown provides but that don't need the wildly expansive set of templates available in the latex world.
Like other academics, I plan to stick with latex for journal articles and books, unless publishers provide support for typst.
Markdown still has a place for files on github, because that means that web browsers will display formatted material, not just the raw code. A similar thing applies to code documentation, with many systems (R, Julia, etc) supporting various flavours of markdown.
I recommend typst to students for small tasks like assignments. It offers more typesetting power than markdown, it's a great replacement for msword, and it's easier to learn than latex.
Long story short, typst fills a niche. But it's not the be-all and end-all, at least in my (natural science) field.
> Like other academics, I plan to stick with latex for journal articles and books, unless publishers provide support for typst.
In my undergrad we sent all our essays etc as LaTeX and it was honestly very usable. I assume this was somewhat dependent on having a wealth of enthusiast professors and postgrads to develop the templates though...?
Since then, I've used LaTeX in a "freeform" way and absolutely hated it, I will definitely be trying Typst next time I need more than Markdown/RST.
But I can imagine that if you are unlucky, working with the journal-provided templates could be WORSE - if the templates suck you are surely in a world of pain!
LaTeX absolutely shines when you have someone providing a template; hardly anything comes close.
When you're on your own, you need to either steal someone else's and modify it, learn to build your own, or just use something like the Memoir package (which is the first but designed for it.)
I've never seen a publisher's template that was hard to work with.
The process of writing in latex for journals (and textbooks -- I've written for both things) is really very easy.
Publishers almost always provide a sample .tex file that has items you just fill in. For example, there will be something like
`\authorNames{}`
and you just put the names between the braces. The same goes for titles, equations, figures, etc. There will be sample paragraphs as well. And they will have examples of various citations styles, too.
Speaking of citations, latex has good support for citation databases. (Typst and markdown also provide this support.)
I'd say most people I know write their early drafts in latex. They have a target journal in mind from the start of the writing process, so they just grab the latest sample file and stylesheet(s) from the publisher's website and start entering text.
As you say, using latex for freeform documents is a different matter. That's where I've started to use typst. And I do recommend it for such things. You may find yourself wanting to make some typst templates for common tasks (meeting notes, position papers, etc.) but it's not terrible hard to make such templates. I've made a few, but often I don't bother -- I just put a few lines of customization at the start, if I want to alter how section headings look, or I want a different font from the default one.
I imagine that it would be productive to write a draft of a paper or book in Typist, and then do the painful LaTeX writing for the later and final drafts. The pain saved on early drafts would outweigh the cost of doing some work twice.
With the wisdom from a TU Delft graduate student, I switched from Word to LaTeX in 2007, having never known or used it ever before, and never looked back for the next seventeen years. Using it within the corp. environ. (Shell) became progressively harder as time went by due to the need to install such a large installation (under Cygwin, which itself got on the list of not-allowed, and had to resort to `setup-x86_64.exe --no-admin` for nearly all my subsequent time there).
While I appreciate LaTeX structure, and the resulting end product (Knuth is God), it is as you know highly verbose in markup, thereby making the content somewhat unclean, and not easily readable like plain text (my yardstick on content readability and re-usability). I wrote multiple plug-ins for the text editors of my choice Sublime Text, and Vim to produce snippets for writing ease.
Switched to Typst cautiously in 2023, and have never since looked back. If LaTeX was the gold standard for the 20th century, I think Typst is on track to become that for the 21st.
I wrote a little note about writing a template for Typst to remind myself how-to, and for anyone I'm working with:
Typst is great. I'm sure it's not a complete LaTeX replacement, given the dominance of TeX for many decades, but for simple documents it's a breath of fresh air.
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. :)
Almost all my computer science students are using Typst on my recommendation to write up their programming projects, vs most using Microsoft Word last year. Specifically, writing in VSCode with the Tinymist Typist extension. All going very well so far and no complaints.
I was with you when you explained how you got them off of MS Word (even worse if it was the web version!!), until you brought up VSCode. I get it, you are probably advocating very practical choices. Just that I wouldn't recommend students to become dependent on VSCode (due to its vendor and "telemetry"). Basically, that makes the students again dependent on MS. But I guess since you recommend an extension, you cannot recommend VSCodium and adding the extension store as someone in a teaching position? If you can, then I would strongly advocate recommending VSCodium instead (or non-electron app editors), to avoid spyware on their machines and to promote a healthier tooling.
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.
The programming parts are very tempting, but I find the philosophy of the math mode input simplification to be questionable. E.g. automatically generating fractions from "/", or removing parentheses depending on whether they are redundant with other grouping. Those are all choices that I want explicit control over, and the most readable choice depends strongly on the details of the expressions. After some digging it's clear that all of that can be overridden without too much effort, but it still seems like a poor default for my use cases.
FWIW the second part does not address my concern (which was about omitting literal parentheses that are present in the markup, in some cases), though it is related. Personally I think it's already a mistake for bare/unescaped words to indicate markup, or I guess the intention is that they indicate mathematical semantics and then Typst decides the best way to write down that semantics unless you explicitly interfere -- seems like a recipe for confusion whenever Typst's ideas of the mapping from semantics to typography don't quite line up with yours, or the conventions in your field. I'd much rather approach mathematical typesetting with a typesetting language than a mathematical language where somebody else has decided how that math should be typeset, even if it means a sea of backslashes and curly braces.
(Edit to add: I guess this means my preference would be option E from the blog post -- I see the extra symbols as far preferable to the ambiguity between content and markup)
Also wow, recovering from this breaking change is going to be incredibly painful for somebody.
I must say I really like the more straightforward syntax, semantics, and distribution model of Typst. LaTeX is akin to programming with the C preprocessor, it's both ridiculous and amazing what people have done with it but it gets quickly intractable. However, I really do enjoy the quality of graphics, diagrammatic, and scientific output from LaTeX, even if typing them is a pain (LLMs are a huge help here).
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.
For physics2 (which I only skimmed the manual), it seems like most of the functionality is either in the Typst standard library, or availble in physica
You know, this is good fodder for LLM training via Reinforcement Learning with Verifiable Results. Given complex LaTeX source code and complex PDF output, write. Typst document that reproduces the PDF.
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)
Assuming it's at all desirable, it's an interesting and recurring problem of how to dislodge existing sub-optimal (sometimes even harmful) standards and notations.
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.
> Almost nobody wants to learn something new when they already know something similar.
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.)
If the software is actually good, it can start from an enthusiastic core of students, PhD students and later niche conference organizers and niche journal editors and if they gossip about their experience, it can spread through word of mouth if it's sufficiently good.
Yeah I think this is correct, with the added caveat that it must be as good as the alternative PLUS the awkwardness of switching to have any hopes of breaking out of the local minimum.
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.
> it's an interesting and recurring problem of how to dislodge existing sub-optimal (sometimes even harmful) standards and notations.
> 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).
> Almost nobody wants to learn something new when they already know something similar.
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.
If a better Latex only saves you 5 minutes per year, then that means, that you are either a latex god, who types 200wpm in special characters and talks latex fluently, or, that you don't actually write much documentation per year, or, that someone else has invested significant time to create all the document layout, macros, environments, etc. so that you only need to type the text.
My point is, that creating a proper latex document, specific to one's use case can consume many hours of time.
> 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...
Typst is fantastic and I recommend to dive into it to see how much value it offers. To me personally, the biggest strength is the ergonomics of both the tooling and the language, and how ergonomics persist even between documents of various complexity. Writing a paper in LaTeX is nice, but making something like a CV takes some patience. Meanwhile, in typst it was quick to get started and go all the way to building resumes, character sheets, and I know of at least one occurrence of implementing symbolic math in typst language. It's not without quirks, but still, very solid alternative
I maintained my CV in Latex for years (originally got started on this due to the fear of MS Word) and recently tried out Typst. I agree with you that it's quite simple to get started with. Also, I had to maintain a Ubuntu based Docker image with everything needed for the build.
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).
My CV is still in LaTeX which gives me the opportunity to procrastinate updating it (rather than actually applying for jobs) because of all of the tweaking I do.
If nothing else, typist is going go give me more opportunities to procrastinate! Nice.
All I've done in Typst is my CV, I saw it here a while back and thought it'd be a nice use case.
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.
Tex doesn’t attract software developers. The programming language has remained really old fashioned and clunky. The error system is particularly bad. I use it on a daily basis, and it doesn’t feel nice, far from the experience with Python or Rust.
The output is superb though, which is why everyone in academia keep using it. It’s just the tooling that is poor.
With all due respect to your perspective on TeX, isn't it the whole point? There are weaknesses in TeX (like using $ for both beginning and ending the math mode) but they are quite minor. Quirkiness is not a weakness but being a standard (since 1986!) is a major strength. The fact that it does not change is a blessing, truly. Python may be a fine language with a great community of supporters and I use it because I pretty much must but programming in something that is essentially a moving target is no fun. And I would take TeX macros over Python ugly syntax any day, no offense. Not to say I am right just to point out that taste is not necessarily a reliable guide.
From the article: "Typst... can, for example, easily split large tables across page breaks, something that LaTeX struggles with even with specialized packages." That would be nice. I remember when I first started working with LaTeX that I was surprised that I needed to decide ahead of time whether a table would fit on one page or not. If Typst can make that decision on its own, that's a step forward.
One thing I have not seen mentioned as yet: cross-references. In LaTeX, I can create cross references to anything: page number, table or figure number, even an item in a numbered list. Does Typst have that capability? I saw a package for cross-referencing numbered boxes (it's called statementsp), but it wasn't clear how you xref other things. (Not saying it's not there, it just doesn't jump out at me.)
yes, cross-references are possible by adding an <anchor> and referencing it with @anchor. It works for headings, figures, equations, footnotes, and with a slightly different syntax also for page. [1]
Numbered lists are currently not natively supported, only with the package itemize [2].
I had originally dismissed Typst, since at first glance it seemed like some closed online-only tool. But actually there's solutions such as Typstify[1] which works offline, haven't tried it yet but seemed promising.
Like other commentators, I have worked with LaTeX for a long time (> 10 years) and have to say that it very much shows its age.
For once, the compilation time is terrible - it can take several minutes to compile a typical document.
I recently tried to create a poster for a conference - a single A0 page - and even this took more than a minute to compile.
Because positioning in images and figures in LaTeX is not obvious, this made iteration extremely slow.
Additionally, by forgetting a single bracket, one can easily encounter cryptic error messages relating to boxes.
In the past, I have also worked on LaTeXML (the LaTeX-to-HTML "converter" amongst other things being used to power ar5iv [1]).
Even though this exposed me to some of (La)TeX's internals, it is still extremely difficult trying to decipher error messages.
Typst, on the other hand, is much faster when compiling and provides much clearer error messages.
For this reason, I also decided to write my 130-something PhD dissertation in Typst [2].
My university only provided a LaTeX and a Word template, but I ended up copying that in Typst extremely quickly.
My thesis compiles in about 7 seconds on my laptop - I cannot imagine how long it would take had I chosen LaTeX instead.
Not only that, when I showed an initial draft of my dissertation to my supervisor - also a decades-long LaTeX user - he could not tell that I wasn't using LaTeX.
I only really encountered one problem with Typst so far - citation styles.
In particular, the alphanumeric style preferred by my field produced duplicate citation keys, making the output unreadable in printed form.
But given all the other benefits Typst offered, I ended up switching to IEEE's citation style instead.
I am also hoping that Typst improves its HTML export - it is very barebones at the moment - but that seems to be in the works [3].
I had been using LaTeX for 25 years. I gave it a try recently to write a technical paper and I was blown away. I saved so much time. The immediate feedback and the advanced features were impressive. I had to include a budget proposal in one of the chapters and I was able to create a quick script that read a csv file with the different concepts and costs. I would modify the contents of the csv file and the document would update right away. I didn't have to recompile the document as I used to do with LaTeX... the results were there, right away, beautifully formatted. I am very impressed and will definitely consider doing more work with Typst.
Typst seems like an improvement in many respects, but I definitely prefer LaTeX when working with detailed math equations (most of my use of LaTeX). I think there is a lot of inertia for anything to replace LaTeX for mathematical research.
Any experience with using Typst to produce "pixel perfect" reproductions of existing documents? At work we have a series of contracts that are updated every year, with fillable blanks that we fill in with provided data. We currently use latex for them and have a contractor is very good at making them look basically exactly like the original contracts, but at some point she's going to retire, probably sooner rather than later.
Probably our best solution is to decide that we don't care about nearly pixel perfect reproduction of the contract, which probably makes a switch to typst a lot easier.
I've reproduced documents with Typst, mostly pixel perfect. I've done the same in LaTeX before, and it was orders of magnitudes easier with Typst. However, I didn't care if a couple of paragraphs with hundreds of words in them were a line longer or shorter. That might be an issue if you care about literal pixel perfection. But why would that be important in contracts?
What I tend to do to get the best result is setting the background of the typst document to the document I'm targeting, and then adjusting until it matches perfectly.
It replaces the macro language of LaTeX with a python/rust like language, which couldn't be easier to write.
The markup language has a markdown like syntax which makes writing simple things simple. And allows for complex, but easy to comprehend operations when useful.
It has good tooling, with helpful error messages and is not arbitrarily limited on memory or font support. (I know some LaTeX engines do not have that problem anymore, but even the Idea of competing engines with different feature sets is somewhat ridiculous)
This is basically their monetization strategy btw – the SaaS offering is exactly this app, but with cloud sync and collaboration features. This part is proprietary, sadly, but I’d say fair enough considering it pays for the compiler and other tooling (FOSS).
TBH, I'm sick about LaTeX:
- compilation is heavy
- it's not friendly for writing (far from the dominant markup languages)
- poor support to HTML / Epub / mobile outputs
- output (PDF) not friendly for parsing / digesting.
- tonnes of templates, lot of mess.
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.
I'm pretty sure LaTeX can do all the documents I want to, e.g anything with complicated math expressions, various pseudocodes, computer science-y diagrams like karnaugh map, algorithm flowchart etc etc.
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
I love Typst! Currently rewriting my CV in Typst and it has been an excellent experience. One small hindrance is the inability to have multiple bibliographies.
In the past I have also used it to generates quotes (in terms of finances, invoice etc.). It was neat because all of the logic for adding up the subtotal was written in the language (and was fairly easy to understand). I can imagine trying to do that logic in LaTeX…
Typst is great for web content as well (even though their HTML export functionality is still experimental). I've written blog posts on interaction nets in Typst [0] and I really like how the diagrams look.
I rewrote my website to use typst for all the content and I really like how it is to integrate as well, its just a rust crate that I use in my build script because Typst is just on crates.io
I've written a system that consists of a JS front-end/backend, which then feeds a json object to a typst template to generate PDF reports with hundreds of pages, multipage tables, references to bibliography within the json strings, and translated to multiple languages. It works extremely well, and it's very intuitive to work with it.
For example, for the translations, I just made an object with every piece of text in a hierarchical structure, with the leaf being an object with keys for every language and the texts as values. Then I have a function called t() that is created after we already know the language for this report that just extracts the current language string when given an object like #t(content.section1.subsection.header.title) in the main report template (which imports this translations object from another file)
For bibliography references, I just have a regex for __REF\d+ that will replace all those references with real bibtex references.
I like this sort of thing, but I will never understand why all the common ASCII -> Layout apps DON'T use /for italics/ and _for underlines_. It's baffling.
I'm becoming acutely aware of the first-mover problem in open source software: Nobody truly knows how the software is going to be used in half a century. And once that time is past, the accumulated tech debt of the first-generation tool should probably just be thrown out entirely, for a new second-generation tool that easily does what people have shown they actually want do with it.
I've been using Typst for work documentation and hobby authorship. It is unreal how powerful it is out of the box, with no plugins. It's a Turing-complete programming language where you can switch between a code context and a document context with a simple change of brackets. Everything you WISH Latex did out of the box, it does. Highly recommend the VSCode plugin with live PDF generation and automatic scrolling.
Long term Latex user here, I've been working on generating automatic invoices in Typst for a year now.
On the plus side:
* Getting structured data into typst is sooo much simpler than into latex. For latex, you basically have to render a template, and have to know all the crazy escaping rules for special characters. In typst, you can just read a json file, and do the rendering in typst.
* Super fast. Love it.
* Mostly very easy to use.
Minus:
* Our invoices are structured as multi-page tables, and widow and orphan prevention in a multi-page table seems to be non-existent. The workarounds we tried were too disruptive (lead to text overlapping other text, for example).
* There's a bug in the Python wrapper that means we sometimes don't get a proper error message when there happens to be an error, then we have to recreate the scenario on the command line to find out what the error was.
* Docs could be better (but are mostly OK)
Overall I'm very happy with typst for this use case.
I also recently published a book written with Typst. It was absolutely a joy to work with, especially because the book was a collection of student essays. I converted them from docx to Typst and then getting all the figures and tables setup nicely and uniformly was easy. The PDF generation was perfect but converting to docx/epub I ran into a few bugs in pandoc. I reported them and a few were fixed and a few are still open. Overall, a very positive experience.
The free online version doesn't have private packages. You are, of course, free to run the compiler locally with as many private packages as your heart desires.
LaTeX3 has either been cancelled or has already happened, depending on how you look at at. [0] But despite that, LaTeX is still continuously improving, although it will never beat Typst on speed or simpler markup.
Whenever someone creates a "better and lightweight" successor to latex
they will over time be asked to, or by themselves need to add another
small feature to extend its capabilities will over time move closer and closer to the LaTex features set.
Or someone will use it and create a large document and find that Typst
just does not have enough features they need, they will get frustrated
and feel the need to move over to Latex.
Just like the original markup definition was fine, but then we have a forrest over forks or similar projects that add specific features someone needed.
That said if your needs are covered by Typst it's certainly easier to learn.
I would say that it is the most complete typesetting system out
there that I know about¹
It is not the optimal system that could possibly be created.
for many reasons.
However as people design new typesetting systems or various kinds,
and they make it the priority for it to be simple.
Then usually over time users become restless because the
markup langauge misses a typesetting feature they would like.
And we wee a plethora of markup forks of all sorts that include
one set of typesetting additional features that the authors
deemed nessescary.
The more you devlelop an alternative typesetting system, eventually
you will need features that are all already included in TeX.
and they are included because they were needed in an advanced
typesetting system that would give people the tool needed to
highly polished outputs.
But TeX is not a system for the masses, nor was it ever meant to be.
¹(There may be systems just as good used by print media)
The LaTeX community is astonishingly good at gatekeeping. I can't think of another field where the adoption of a clearly superior modern alternative has been so slow. For some reason, they seem to take pride in clinging to a 50-year-old typesetting system—with its bloated footprint, sluggish compilation, incomprehensible error messages, and a baroque syntax that nobody truly understands. People have simply learned just enough to make it work, and now they treat that fragile familiarity as a virtue.
The problem is that with Latex i end up in the same situation like in Word. I do not understand what is happenig and why.
Typst was an amazing addition to the modern IT stack. I use it whenever I can. The only issue is that companies like Google and Micrososft are dominating the collaboration space and I have zero chance to convince a comany to adopt Typst for internal documents that need to look good. It would be great though.
I'm working through the tutorial on the WSIWYG official webapp now. The syntax for equations is remarkably intuitive! I tried a few things from guessing after skimming the tutorial, and they mostly worked in the most intuitive way. Here is what I gather this is. A mix of:
- Markdown general formatting (images, lists etc)
- LaTeX or MathJax-like equation syntax
- A rendering engine and software that turns these into pixels
My first thought was "why would anyone want to ditch LaTeX?". But it's been almost 20 years I left academy, so I knew I would be missing something.
Reading the comments reminded me of the pain.
I didn't see anyone mentioning, maybe it was me "holding it wrong", but boy what have I done to get proper references. After a year or so writing articles I had an unfailing process to get them right, but whenever I tried to explain it to my colleagues I heard "yeah, ok, I'm staying in MS Word".
I also did a pixel-perfect template for my university. As a programmer, I never felt so ashamed of sharing something. I felt like it would be selfish to keep it to myself, so I did it, but it almost physically hurt me. After 10 years people stopped emailing me asking for help. Maybe they fixed the template or just ditched LaTeX at all.
As I'm planning to get back to academy next year, it was good to learn about Typist.
I'm teaching compsci at university, and since a few years I create all the material I use (slides, exams, sometimes booklets) in Typst. It does perfectly the job, and it's fast.
I'm 100% convinced, even tho I was not a big LaTeX user before, so can't compare the two.
Previously I had great success with LyX (https://www.lyx.org/), which builds on top of LaTeX. The experience of typesetting beamer slides with it is relatively user-friendly.
A decent usage example of Typst is https://rendercv.com/. It is a set of Typst templates to build resumés.
I've been using Typst to create some good-looking agendas for my Toastmasters club. [1] I've found it a lot of fun, and have received a fair few compliments.
Does anything like that exist for Typst? I.e. something where you edit the same document that is rendering, rather than exporting or side-by-side live preview?
I guess if Pandoc adds Typst output support I will consider using that, but "LaTeX replacement" sounds like something that is too low level to consider for most usecases? It was many years since I used LaTeX for anything other than at most short snippets embedded in other documents (e.g. md or org). Or would Typst replace something like Pandoc Markdown (with a long list of supported output formats and a convenient Lua filter API)?
* 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.
I moved from Pandoc+Lua filters to Typst. Having the scripting language integrated is just nicer, though I sometimes miss the separation between data (from Pandoc markdown) and code.
I use it to generate PDF. The last release introduced experimental HTML output which is promising but still immature. Work on EPUB support hasn't started as far as I know but it's on the roadmap, and I guess it will be relatively easy once the ongoing work on HTML and accessibility is done.
As an economist, I write papers for a living. I use quarto markdown, which takes latex and typst and leverages pandoc behind the scenes to render PDFs or other formats. It’s as easy as it gets.
TeXmacs is pretty great. I feel like its internals still feel a bit arcane, though. Just editing documents through the graphical interface is fine, but if you happen to use some commonplace symbols or diacritics a lot, opening the file as plain text will quickly remind you of it, with bespoke ASCII representations showing up in their place.
For me Tectonic[1] solved many of the issues I had with LaTeX, so that's what I'd recommend if you still depend on LaTeX as a language. Make sure to use the V2 CLI (`tectonic -X`) which comes with convenient features like watch mode. With vim and evince (or any PDF viewer that auto refreshes) open I get a similar real-time experience to popular online editors like Overleaf, but in the comfort of my own editor.
The immediate no for scientific collaborations is zotero support being paid only. If it was just one user, sure they could decide to pay. But no way I am convincing others to sign up. (If this is somehow possible without paying while not ‚syncing‘ it’s not obvious)
If the project owner has paid for pro, all collaborators can use the pro features in the project.
Zotero sync is just a .bib file that updates itself regularly, so if you don't want to pay, you have to upload the .bib file or past the new entries manually.
I doubt it would come to completely replace LaTeX. The momentum behind LaTeX is enormous. Having said that, if it manages to simplify language handling, fonts, and bibliographhies it would be great.
But, especially, it would be good to see whether it improves on LaTeX's handling of tabulars (tables) and floats (figures), somethingh that is kind of an esoteric art right now. I wish Typst the best.
I loved typesetting my bachelor thesis with Typst (but with LaTeX math formula), and now it's even more promising after being able to embed PDF figures this July (see issue #145).
I love Typst and have standardized all our company docs on that. Much easier to render neat looking docs. And coding agents are quite capable at making edits.
Is typst prefect, of course not, but it's good enough for most people. LaTeX on the other hand is the primary example where perfect is the enemy of the good.
Or even `#show "csharp": [C\#]` and then just write `csharp`. Though then you couldn't include the actual text "csharp" in your document, should you wish to, so perhaps defining the variable is a better option.
LWN is one of the most important journalistic outfits of the open source software world, not just some guy's blog. As the other commenter noted, it also dates to the '90s.
I'm a masters student, I've gone with a quarto workflow. From quarto markdown to Word, little bit of VBA for tables and images, and to pdf from there if needed. Technically I could go straight to pdf, but not tried that yet.
Anyone have success with typesetting in HTML and then printing to PDF? This works really well for me and if your application is web centric then it's an easy win if you need to generate PDFs as well.
I'll need to give this another go sometime. I gave writing my thesis in Typst a go, but ended up using LaTeX/XeTeX because I couldn't figure out how to customize the existing templates to my liking.
Why do we need these special languages just to get adequate typesetting and kerning? In the end it’s just a paragraph of text constrained to a column. Because let’s be honest, this is why most people use LaTeX, not because they enjoy how to place a picture in a bullet list with cryptic syntax. Let’s ignore math for now.
Can’t the browser do this with HTML and CSS? From there you can go even further with standard tooling, generating from markdown.
It's simple enough that I can easily typeset CS theory homework (with all the fancy notation that entails) without having to subject myself to the insanity of LaTeX or the friction of a standard word processor.
But at the same time, I can also crank out a full paper in a (professor mandated, LaTeX templated) style without raising any eyebrows.
The fact that it's a "real" programming language is also lovely - I have a very simple template (took me an ~hour to write) that ingests TOML descriptions of recipes and marshals them into pretty, standardized PDFs for my recipe binder.
> Another drawback is the difficulty of learning Typst. The official documentation is confusingly organized, with information scattered unpredictably among "Tutorial", "Reference", and "Guides" sections.
I would have thought that this method of organizing documentation is preferred, as I assumed The Grand Unified Theory of Documentation[0] was well known and liked.
The only real complication comes from the multiple packages (a novice doesn't know what are the standards), and from the big installation, it's really frustrating, it is something from 40 years ago.
I use http://www.overleaf.com, which works nicely, although the size of each tex is limited by the compile time.
LaTeX is a horrible system, that has some fans who are basically cultists. I suppose people like it cause Knuth, but remember Knuth just made Tex.
Imagine if C++ had stayed a hodge podge of extra tools compiling to C and C macros? That's LaTeX relative to TeX.
Typst should win and destroy all this stuff. If was in control of government science funding, I would just make all the journals accept it immediately, just like the open access arm twisting.
Academics are too precarious to self-advocate, and have been slaves to LaTeX's bullshit for too long. I'm grad procrastinating grad students are writing Typst packages to liberate them.
This is a fine opinion, here is another one. Calling everyone who uses LaTeX cultists is a bit insulting. I do not particularly like LaTeX and use it only when a journal requires it in which case it is pretty much painless as I simply follow the provided template. TeX, on the other hand pretty much satisfies all my typesetting needs and I use it daily. I wish everyone would use TeX or LaTeX but I would not force it on everyone. Typst seems like a fine if a bit immature system but I truly hope it goes away, the sooner the better. Not because it is bad at what it does but because it solves a problem that does not exist and distracts from a standard that may not be perfect but has proved itself again and again. I am also weary of any piece of software that is controlled by a private entity, no matter how good the initial intentions are. Being open source is not really a guarantee of anything.
> Another drawback is the difficulty of learning Typst. The official documentation is confusingly organized, with information scattered unpredictably among "Tutorial", "Reference", and "Guides" sections.
They should add Dosu[0] to their repo. Dosu works with a lot of open source packages already.
Looking at the examples on the website, I can see the appeal regarding the input.
The output makes my head slightly dizzy - not sure why, but like the letters are all slightly off, in both dimensions. Is it just me, or the font/screen combination, or did it occur to anyone else also?
If Typst would also allow to create HTML it could become a successor of LaTeX. Without it it is just another kind of LaTeX, created for printing stuff on paper. But that is not what a digital future needs.
I tried this out about 6 or so months ago; it was pretty bad unfortunately. I was willing to put my money where my mouth is and pay a bit to dedicate resources for it like a bounty, but typst organisation doesn't seem to have something like that. I have actually donated to the project AND paid for a subscription to their web service though.
I noticed quite a few people must do that because I have heard that pronunciation a few times already IRL and in videos. Some people also write it that way, a search here in the comments results in 4 matches.
Typst is entirely open-source as well. Only the online overleaf-like system is proprietary.
> Compilation is faster, but so much more time is spent writing than typesetting.
Continuing in your vein of writing dismissive comments, the moment you actually start caring about how things look in your documents (you know, the reason why people use LaTeX), typesetting starts taking up a non-trivial amount of time. Not in the act of setting up the typesetting, but actually debugging it.
I do care how my things look, I've written books, papers, reports, CVs, slides and posters (the last two was admittedly painful). I think I reacted to a very dismissive tone towards LaTeX from typst fanboys who cannot imagine why someone would still use LaTeX, but thinking about it - I don't like the tone of my message either so I'll delete it.
Markdown is an awful choice - it has no definition, and it is difficult once you need something more complicated that a paragraph with a header (for example: a list with multi-paragraph items, forced line break etc).
Typst seems to be the product of a commercial company - fully controlled by it. That's not appropriate as a foundation for document authoring by "the public".
I am also worried about the rust-centricity, seeing how rust is somewhat of a moving target.
Some people have this weird idea that because Rust ships new versions very often (every six weeks, like a web browser) this means it's unstable. They see rust 1.90 and they're like "Oh no, that's dozens of incompatible versions" rather than "Wow, over ten years of commitment to compatibility".
Can you clarify what you mean when you say it can be taken closed-source at any moment?
Do you mean that future iterations of the software could be closed source?
As far as I understand, they can't just revoke the existing open source license for the existing already distributed software, and if they did decide to move forward from here with closed source distribution, the community would be free to just fork the existing codebase and continue working on it.
how? as a copyright holder you can at any time relicense code as proprietary of course, but that neither revokes the existing licensed code, nor is at all unique to the apache license?
Smaller community compared to LaTeX may lead to perceptions of lacking "proper" extensibility. For users needing niche or low-level typesetting capabilities, LaTeX’s mature and highly flexible system may still feel superior. Build-in package manager does not necessarily 100% guarantee full extensibility as in crazy Latex macros ;-) As I said, it is a young project and young company, it will grow in time.
I had a feeling that it is similar to R markdown https://rmarkdown.rstudio.com
R markdown is similar in capacity one can mix R language, but since syntax is Markdown they kept the name.
It's great to see Typst getting more visibility. We migrated a real-world workload to it a couple of years back: generating and e-mailing 1.5M+ PDFs daily at my org, Zerodha.
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
I am using a LaTeX pipeline for creating text, invoices, forms, etc. from snippets stored in a database. It was quite complicated to set up, but the results are very satisfying. In principle, I would like an easier markup language, but am afraid to wast my time trying out something new, just to run into limitations after awhile.
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?
Now, this isn't really an alternative, but I can recommend using pandoc instead of pure LaTex. Personally, I think text blocks are much easier to handle and read in markdown and pandoc allows you to use in-line LaTex wherever markdown is insufficient, without making basic text styling unnecessarily verbose. In my opinion, the result is a better/friendlier LaTex, or limitless markdown respectively. Especially for writing papers and such, you can always start actually writing in basic markdown, which is trivial and almost-WYSIWYG, and later worry about presentation. In my experience, with pure LaTex you easily get lost in sidequests and it's much harder to get into a writing flow and find your way around your own words in the editor.
I wrote my dissertation this way. As long as you’re already comfortable with latex, it’s amazing. Huge time saver not to have to write latex formatting when you don’t have to, but an equally huge time saver to be able to control formatting when you need it.
It's a bit of a weird thing, really. I think, I have not seen any comprehensive, basic tutorial on the matter. I presume a lot of people who've become victim of the LaTex bug, but dislike its overhead, independently found bliss in this pandoc compromise. It's definitely a bit of coping with LaTex Stockholm syndrome, you probably need a specific set of experiences, know some struggle to fully appreciate it.
If anyone here hasn't messed with it, but thinks "I wonder, if LaTex could ruin my life, too", I suggest to start learning pandoc first (it can do various markup conversions, it's useful by itself). Get familiar with pandoc metadata headers on a RTFM basis. A LaTex intro is all you need after that, if you are up for a bit of trial and error. Or learn LaTex first, but not both at the same time, as the layered processing involved is a bit confusing (e.g. pandoc showing pdflatex errors). In any case, I strongly advice to bite the bullet and install the full LaTex package of your distro (no idea about macOS, or windows), as fighting dependencies is suuuper annoying. However, the trade-off is it's truly a behemoth, consequently frequent upgrades for a lot of packages you don't ever use. (I configured dnf to download upgrades automatically, so I can do a quick `dnf upgrade --cacheonly` when opportune.)
Speaking of... I wish pandoc could do Tex package management and dependency resolution.
I ended up just downloading the texlive image and letting it go slightly stale while I wrote. Latex plays poorly with OS package managers and I decided I preferred to be out of date.
I made each chapter a separate file and compiled each one to latex. I had a top level latex file that did an \include{} for each chapter, and a big old Makefile to tie everything together, including figure generation.
All this, and it was still easier than writing every latex command by hand.
If you're going to do this, might as well go with AsciiDoc instead. It's vastly superior as a syntax. Markdown breaks down at the mere mention of something as trivial as a nested list item containing a table of blockquotes.
Not that it couldn’t be trivial in the abstract, but I’m struggling to imagine a use for a nested list item containing a table of blockquotes. It doesn’t seem at all surprising that a tool wouldn’t anticipate that.
Things from the design world, like Acceptance Criteria would happily require it.
Is a lightweight easy-to-read plain text markup language the right tool for that job?
Absolutely! The writers are generally not highly technically experienced, but have to produce highly technical documents that need to be regularly reviewed and changed for years at a time.
If you're going to do this, why not generate Pandoc ASTs directly? You can do so from a number of languages and they support (by definition) a superset of any given markup's features, with blocks to call out directly for things you can only do in Latex.
I assume the original question is asking about programmatic document generation, in which case working with a real AST is probably also a productivity and reliability win as well.
I haven't done pictures in columns but the rest should be doable.
I've migrated my invoicing (and all my other publishing/slides) to typst from latex and couldn't be more happy.
I think so!
I've not tried a couple of things you mention (e.g. background images) but e.g. for dynamic placing there are libraries like https://typst.app/universe/package/meander
The core of Typst is a pretty featureful well-thought-out FP language. This makes expressing libraries for any piece of functionality very pleasant.
I’ve worked places that will regularly send generated PDFs of things like statistics or small reports or other generic boring business stuff every week or month.
It’s always been some combination of MJML, inline DIY HTML, or PDFs generated with Puppeteer etc.
Do you think Typst would be a good fit there too?
We are a python shop and use WeasyPrint. It works well for invoice type things.
I suppose it depends on how much web dev experience is on hand.
Same, used to work at a place that used to use ghostscript + chromedriver and went to Weasyprint.
Weasyprint is quite wonderful, fast, and you can file upstream tickets and get good clarity on what's going on.
And you're writing your templates in CSS + HTML, which generally flows well.
At the end of the day the problems are rarely "CSS + HTML vs Latex vs Typst", but more just about making decisions about how you want something to be laid out when you have dynamic input.
"What should happen when I have a huge blob of text here" is often a non-trivial question. "What should I do on a page break here" is a non-trivial question. And they often involve having to, at the high level, make decisions. People whine about CSS, sometimes you just gotta read the spec and figure things out (rather than stop at your intuition for how certain fields work).
Nice thing about CSS + HTML is you can open up your output in a browser and futz about with it very easily.
Would you be able to post a sample/mock of a document that you produce, would be very interesting.
For your use case, why were you using LaTeX in the first place? That is more surprising than finding a replacement for LaTeX.
If you're compiling millions of documents, many with thousands of pages, you probably need something very universal. LaTeX is boring tech, off the shelf, ready to use. It might take some work to figure out the initial setup with regards to templating and everything else, but after that, you can be generally pretty content that it will handle most things you throw at it just fine.
LaTeX is notoriously bad at being boring tech. It has a lot of very rough edges, especially when it comes to longer documents.
And yet this very post positions Typst as a potential alternative to LaTeX. In other words, LaTeX is still in the top position.
Personally I think ConTeXt is a far superior tool, though its documentation is always trailing quite a distance behind its current capabilities.
I am currently preparing to switch to DITA. The learning curve is steeper at the beginning, but I find the overall concept of topic-oriented, information-typed authoring with content reuse very attractive.
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/
I’d suggest LaTeX because of its strengths with tables, mathematical notation, and similar content.
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.
What else would you use to generate PDFs from a text-based template?
20-ish years ago I wrote a system to do that with xslt. Would not recommend.
E.g. Pandoc, universal tool…
You will be surprised to learn that pandoc uses latex for generating the PDF. It's barely hidden:
https://www.pandoc.org/demo/example33/2.4-creating-a-pdf.htm...
I know it ;) But we are talking about how to use something universal. I like pandoc as it is easy to use and… boring.
Your original comment before editing complained about using pdflatex as if it was not part of the pandoc toolchain. It was not about pandoc being universal.
Doesn’t Pandoc just use LaTeX under the hood?
Pandoc works with typst too.
A good XSL-FO impl with docbook or something like that?
Apart from typst, I've used weasyprint.
DITA, see my other comment on level up.
Asciidoctor?
Docbook
ReportLab?
It's night and day.
I'm a PhD student currently writing my thesis in Typst. On paper this is an absurdly risky decision: it's a new technology without a huge user-base, it's not totally stable yet, etc. But I tried Typst and I had no choice. It was obviously the right thing to do, even though I'm going to have to make a pixel-perfect clone of my university's LaTeX template.
I've been using LaTeX for over ten years and I still wouldn't say that I "know" TeX in any meaningful way. I was not only productive but proficient in Typst in a day or two. If there isn't a package for something that I need (and, surprisingly often, there are packages for what I need, and excellent ones!), I find that I can just do it myself. Quickly. Things that never would have been possible for me with LaTeX are within easy reach. In ways I'd be happy to talk about if anyone's curious, it's been a huge enabler of my productivity as a researcher. I owe this tool so much.
Interestingly, I spend far, far less time yak-shaving in Typst than in TeX, since I can just Do The Thing That I Want. I'm actually focusing on writing instead of figuring out why package A conflicts with package B, and then how to install a different version of just a single package to override one of them, and then... [this sort of thing doesn't/can't happen in Typst; it's a real programming language with real modules] I could go on and on about the (relative) quality of the ergonomics and devex: fast compilation times, as others have said, but so much more than that. Try it out. Just try it out.
I should also say that it's not perfect. There are some funky design decisions for sure. There are some missing features, like including pdfs as images in your document (that one's on its way, I believe). Critically, the quality of the typesetting is maybe... 95% as good as TeX, which is perfect every time. Sometimes things don't kern quite right, and you have to adjust them by hand. It's a work in progress. I'm optimistic that it will achieve parity on that front.
> even though I'm going to have to make a pixel-perfect clone of my university's LaTeX template
That's lucky. Most of us had to do a LaTeX pixel perfect clone of our university's MS Word template.
Ouch ouch ouch. My sympathies :)
You went to the wrong university :)
I suspect it is getting better but I've experienced some breaking changes with Typst. Nothing that was terribly difficult to fix, debugging it wasn't obvious though.
There seems to be a huge amount of folks that want typst to work. I respect TeX and LaTeX, immensely, but it's so vast and byzantine. Maybe I don't know where or what, but some kind of clean LaTeX "distribution" is needed. It seems like you could build it in to containers or something. Just have some way that sort of makes it more of an atomic unit or something. I don't know how many times I've pulled down a template started to build it and something was missing.
It's good to see innovation in this space and people using it.
> Maybe I don't know where or what, but some kind of clean LaTeX "distribution" is needed.
Unfortunately it’s a bit like asking for a “clean” Python distribution or a “safe” subset of C++. All the baroque mess is necessary to get working the many legacy packages that many people depend upon. And not just depend upon, but depend upon with all their concomitant foibles, bugs, and learned work-arounds.
https://xkcd.com/1172/
Sounds like they could benefit from the R (language) build model that checks library changes against registered consumers of that library before merging.
https://jtibs.substack.com/p/if-all-the-world-were-a-monorep...
> some kind of clean LaTeX "distribution" is needed
I don't think a distro would do much to alleviate my gripes with (La)TeX which is its language and VM. TeX-the-language violates literally every single architectural principle we have come to rally around in sane programming languages. Whether you start by reading the TeX book or by copy-pasting from similar LaTeX documents, in my experience you'll soon hit a wall. No simple if/then/else. No just-works maths. No data types. No namespaces. No modularization. Every single solution in the language that Knuth comes up for any kind of problem he solved in TeX is a new edition of facepalm.jpg, everything you don't know and look up or (more likely) post to TeX StackExchange is answered with something that will make you stare in disbelief. Nothing, absolutely nothing that you do in the language to change anything in your document is guaranteed to not accidentally affect something else in your document, and your only way to check for it is eyeballing every single page of output.
Couldn't have said it better myself. Plus, you're not supposed to notice any of this. If you do, the TeX masters will put their fingers in their ears and tell you it's PEBKAC. "Get good, n00b. RTFM. It's not happening, but if it is, it's a good thing. It has to be designed this way, actually, you're just too thick to understand why. No, I won't explain."
Also, every part of the system is like this, not just the language-qua-language. The architecture of the compiler is like this. The compiler UI is like this (yes for every TeX engine). The package management/distribution situation is like this.
It basically has two things going for it: it's highly portable, backwards-compatible, and stable, and it produces really pretty documents.
I wrote my PhD thesis in Typst last year. I also had to clone my university’s template (available here https://github.com/fdekerme/PhD_template_UPSalcay), but the process was fairly straightforward.
I’d say 99% of the experience was super smooth. It was a great decision, though risky as you mentioned—I started with Typst 0.11 and finished with 0.12. The only painful part (that last 1%) happened at the very end when I realized my university only accepted PDF/A (the archival version—I didn’t even know there were different PDF versions before this). While Typst 0.12 theoretically supports generating PDF/A-2b files, the output failed the university’s compliance test. I ended up (after MANY experimentations) using Adobe Acrobat Pro to convert the file, which caused some minor layout adjustments unfortunately.
Apart from that, I highly recommend Typst. It’s an excellent tool, and I hope academic journals will soon accept submissions in this format.
> even though I'm going to have to make a pixel-perfect clone of my university's LaTeX template
I'm not sure if you really mean pixel perfect or if it's just an exaggeration. There are packages in latex which are almost impossible to replicate in a pixel perfect way, one widely used example is microtype, which is especially useful in scientific works.
Universities can be infamously nitpicking when it comes to thesis formatting and their house style, for some reason.
> I've been using LaTeX for over ten years and I still wouldn't say that I "know" TeX in any meaningful way. I was not only productive but proficient in Typst in a day or two.
That's an interesting insight. Do you have an idea why this is? Do you have a CS background?
That's also been my own personal experience, and I have a CS background and have written several papers and a PhD thesis in LaTeX. I have done many detailed figures in TikZ and done countless presentations using Beamer.
I have no idea how to implement anything in TeX on my own besides rudimentary macros. I did once try to implement a simple typesetting package for typesetting some particularly gnarly natural deduction trees, and I thought it worked fine for a few examples, but then it broke down in ways that was completely non-obvious to me.
The computational model of TeX is really, really opaque to me.
If you had opened and read the TeX book, you'd understand it.
Oh definitely, let’s do a PhD in Latex and its worthless toolchain before start writing the actual thesis.
Software should be invisible and not a hindrance to our ability to express ourselves.
Reading a single book is not equivalent to a PhD in LaTeX.
A single book on latex only covers you until the introduction of your thesis. Then you will need to add a table. That’s a different book. Then you will need to align your equations. That is another book. Then you will need a graph. This is a freaking library of books.
I mourn for the time I wasted on Latex. For nothing.
That's not even close to be true.
Oh, you mean those 500 pages of dense Knuth writing?
Dense? The TeX book is a total delight to read.
Not for people who are fun at parties
I am the proud owner of all 5 five volumes and Digital Typography. I have been in front of a computer for almost every single day for around 45 years. I speak and write several languages, including Chinese and Japanese. I am regularly coding in several programming languages and consider myself fairly fluent in things like HTML and CSS. I have worked as a typesetter and assistant editor of two medical periodicals.
I could go on but what else in the world do I have to add to that so I can say "as for me, I opened the TeX book, read it, and understood it" or "I know how to use LaTeX, confidently"?
I don't know the answer to that question, but I do know the answer to the question "is TeX / LaTeX a well-designed, user-friendly, sane software?". The answer is no, no, and no.
Millions of people love to use LaTeX and use it daily. Your experience is just a personal opinion.
Isn't that everyone's experience? TeX is a nightmare. It predates all standards for sensible software.
Pure TeX makes MUMPS look well-designed.
Yep, I'm a CS researcher in a top-3 department. (Hate to be all credentialist like that, but I'm guessing it does mean something to this audience.)
I think a lot of the reason is that, ok, LaTeX is extremely complicated. We all know this. Its partisans tend to believe that this is because typesetting is a hard problem. Typesetting is a hard problem! We know this, too. But I think that a substantial fraction of the complexity of LaTeX is accidental complexity stemming, ultimately, from the inherently loosey-goosey nature of the system.
See, there is no real abstraction in TeX. There are no real mechanisms for encapsulation/information hiding/whatever. It's all just characters that eat characters and turn into other characters. Anything can do anything. Anything can be anything. As a result, the whole "theory" of what a TeX program "is" (like in the sense that Peter Naur used that word?) is conventional.
This means that even to reuse other people's code, you have to imbibe decades of convention that's maybe semi-documented, maybe folkloric, or maybe perfectly sound but requires you to read a 230-page manual. I can only speak for myself, but for me, it's no way to live.
Now, again, TeX-lovers tend to claim that its high degree of loosey-gooseyness is necessary, that it's what makes TeX "powerful." I don't know, that sounds to me like the same old "you can't handle writing assembly" story. Sure I can. I'd just rather not if I can help it.
Maybe it's the PL person in me.
Or could it be that the fact that LaTeX is a layer on top of TeX is a cause of additional complexity and that you still have to deal with TeX, so the abstraction is neither complete nor opaque? I assume in Typst they don't (yet) have this issue. Another reason could be missing static typing and thus less formal means to find bugs? You "missing abstractions" finding would point to that.
Yeah, absolutely, the sheer number of moving parts is related to this. There's TeX-the-language, there's LaTeX-the-format (a big layer of macros and conventions), the different LaTeX standards (LaTeX2ε, LaTeX3, whatever, I don't know the ins and outs). Then there's the implementation: all the different engines (pdftex, XeTeX, LuaTex), then there are the distributions, then there are build systems and wrapper scripts to handle all the mysterious compilation-cycle incantations that depend on all the other stuff (latexmk, etc.).
All these layers and alternatives have proliferated partly because of age and the necessity of new solutions to new problems. I also think they're partly coping with fundamental limitations, design decisions that seemed like (or very much were!) a good idea in 1978, that sort of thing.
And the TeX that we know is the "new" TeX, which was created after Knuth completely rewrote the "old" TeX in 1983.
TeX had many design goals. "Being a good programming language" was not one of them.
Indeed! It undeniably succeeded at setting the standard for typesetting quality. Big ups to Don K.
It also brought typesetting to academic research, which means it's doing something that wasn't necessary before it arrived.
I was one of the last holdouts from a bygone era. I finished my dissertation in physics, in 1993. It's neither typeset, nor even in a computer readable form. Some fellow students were already using LaTeX by that point (mostly high energy physics, the slowest to graduate of the physics specialties) but I wasn't going to change my already obsolete tech stack within mere months of finishing.
I also have my parents' chemistry theses. They took handwritten manuscripts to a typist who banged out 4 copies at once using carbon paper. And then they entered their equations and figures by hand. (My thesis is hand corrected too). And their theses were short.
LaTeX did a lot of things for my fellow students, but it didn't make them finish quicker.
You wrote an analog thesis about 31 years ago, analog31? You've been playing the long game with this account!
Appreciate the story, thanks for sharing. Can I ask what your thesis was on (in whatever way isn't too personally-identifying if that's a concern)?
I anticipated this moment. ;-)
It was at a time of extremely rapid development of laser technology, where you built your own lasers to be at the cutting edge, which meant optics, electronics, and in my case, computer control plus data collection. I developed a method of increasing the signal-to-noise for a class of spectroscopy measurements by a factor of roughly 1000. This opened up a number of possible experiments involving otherwise weak effects.
My experiment produced some token physics results, but the method that I developed was really the point of it. A couple other labs used my setup, substituting more modern lasers as they became available. Meanwhile, I went into industry, and still work on measurement instrumentation today.
Good stuff, nothing but respect for that kind of work. AMO people are a different breed. Spending all day interpreting power spectral densities and tracking down ground loops takes a certain je-ne-sais-quoi. Literally. Last time I used a microwave amplifier I plugged it in with the wrong polarity and blew it up!
It probably required negative power for some unexpected reason.
CMOS has spoiled us.
I totally agree. I have written in LaTeX extensively and Typst is a game changer and a life saver. The community is also a plus. I love it and I will never go back to TeX.
Fellow PL grad student—not a top-3 tho ;)
I’ve looked at Typst and it looks attractive. I’m not quite willing to invest in it until, say, PACMPL lets me use it there. Any idea if that will happen any time soon?
I wouldn't count on it!
For me, it's been invaluable for notes and memos (and my thesis). When it comes time to submit a paper, I transcribe everything to LaTeX. It's a pain, but it's a lesser pain than transcribing from handwritten notes scattered across three notebooks and several crumpled-up sheets of printer paper in the bottom of my bag. That's my own peculiarity; YMMV.
(Edit: also, ugh, I feel like such a goof for having written that. Thanks for being nice about it.)
> top-3 departement
I’m curious- what does this mean?
Ugh, unfortunately it means "please note that I'm not an unserious person." Very often when you have opinions on software on the internet, trolls will jump out of the hedgerow and shout, "who are you to have an opinion?" And, sadly, that same sort of person will often be mollified somewhat by prestige.
Feels kind of icky to have written that, though, and maybe I regret it slightly.
I think it's good, because it will enable other people to be less scared to ditch Typst
Honestly, I consider it embarrassing that it took so long for LaTeX to be dethroned. Academia is supposed to be about thinking for the long term. Instead everyone is too busy publishing and not perishing to rid themselves of LaTeX (and predatory journals outside CS, etc. etc.).
Given that, it takes credentialed "winners" to change the system. Everyone else is too often too afraid to play the game in the lowest risk manner. Sad.
Thanks for your posts on on Typst.
It also belies an ignorance that some schools have specializations. Utah wouldn't come to mind as a "top-20" school by the snobs, but they basically created computer graphics.
It narrows things down to about 20 departments. ;-)
:)
I have a CS background, I have used LaTeX for over ten years, and I also don't know TeX in any meaningful way. I feel like I'm copy-pasting snippets of code and trying random stuff until I get the outcome I want
From experience, you don’t need to not have a CS background to find TeX/LaTeX difficult or obscure to customize or extend.
Here’s a challenge to try (I hacked together something similar that only works in specific cases): write an environment where you get N columns in portrait page mode, with a vertical ruler, say, 12pt to the left of each column; respecting different paper sizes.
The amount of \makeatother, and what does that even mean??, will blow your mind
> The amount of \makeatother, and what does that even mean??
I’m not a TeX lover, but this part is just a snipe. I’m guessing you know and this was a joke. Apologies that it annoyed me enough to write this comment.
If you care enough to read this, you could learn the purpose of \makeatother [1]. It’s not tricky.
[1]: https://tex.stackexchange.com/questions/8351/what-do-makeatl...
I used to use LaTeX pretty frequently and although I was reasonably productive I also never felt that I "knew" it. It was a whole lot of googling "how to do x in latex" and pasting in something that was too arcane for me to remember for next time (and/or copy pasting from my own prior documents)
In all honesty, I only ever did it to achieve the "LaTeX look". These days I write in markdown or (gasp) wysiwyg editors like google docs.
Thanks to pervasive use of LLMs I predict the future is mostly markdown. It’s the defacto output format for every LLM. It’s simple, plaintext and easy to version control.
Hell I wish I could submit my resume as markdown.
What's stopping you?
Ease of use can't have been top of mind when creating Tex, that's all.
You should check out this blog post about somebody who did the same! https://fransskarman.com/phd_thesis_in_typst.html
Maybe the best compromise here is a markdown interpreter that converts to latex so you can use existing libraries and templates but not have to worry as much about syntax.
Pandoc can do this [0], and there's also the "markdown" LaTeX package [1].
[0]: https://pandoc.org/MANUAL.html#specifying-formats
[1]: https://ctan.org/pkg/markdown
I don't think syntax is the problem here. Using some tool that transpiles to LaTeX, you'll still have to fight your TeX engine sometimes, but now you also add friction and gotchas of your tool that does transpiling.
I've tried writing Org and compiling it to LaTeX, but gave up this idea because ultimately I had to figure out idiosyncrasies of both LaTeX and Org-mode engines.
There are already good html to pdf solutions, people using latex generally would not be satisfied with those
> If there isn't a package for something that I need (and, surprisingly often, there are packages for what I need, and excellent ones!), I find that I can just do it myself. Quickly.
(Serious question) With or without an LLM?
GPT 5 and Gemini 2.5 Pro are usually unable to write compiling Typst code, getting it confused with Markdown. Claude Opus 4.1 and Sonnet 4 manage to produce compiling Typst code more often than not, but is far from being able to follow instructions.
I assume there is just next to no Typst code on the internet as of their training and the similarities to MD + MathJax result in LLMs hallucinating Typst syntax, often using `#` for headings or `\` and `{ ... }` in math mode.
Therefore, I must say that LLMs are more of a hindrance than help when writing Typst code. The syntax is nice enough though that I can fully understand that writing something oneself is very simple once you understand the concepts (content as a type; `show:` vs `show [rule]:` vs `set`; control flows with `if`, `for`, `while`). And for any questions there is an active discord channel with helpful real people.
Presumably it works fairly well if you include a syntax cheatsheet and some example typst markup in the context you send to the LLM?
Without. I’ve recently tried using Claude, though, for things like mathematical drawings, and it works pretty well with a little back-and-forth and debugging. Especially with similar example code in context.
(not op)
I have had no luck with LLMs writing typst code. Normally its a better code writer than me, but the LLM (gpt4-o maybe?) hallucinated most of the document.
Compile time is also night and day. Almost instantaneous with Typst, always slow with LaTeX. This also contributes to just doing the thing that one wants instead of procrastinating - it's out of your way and you can just focus on your document.
I might have to give it a try. There's a lot I like about the idea of latex but I've never been able to successfully internalize how to use it in a non-painful way either. I've pretty much given up on the whole idea of making a PDF do what I want at this point.
I've looked into typst before and am always turned off hugely by the website's attempt to make it look like some sort of purchased product with a freemium option. I don't really ever like to commit to anything I can't use with a basic commandline / plain text pipeline or that I don't expect to be available in a long-term way without enshittifying. Looking closer at the actual repo for the first time, it seems like I can use it that way, so it warrants investigation, but I'm still leery of the project because of its presentation
Oh yeah, I can’t imagine most people are using their web editor thing. Good for them that they have it, I guess. It looks like it’s done well, a strong competitor for Overleaf. I’ve never even opened it, though, to be honest.
It is a little bit unfortunate that they don’t distinguish more clearly Typst-the-program and Typst-the-company in their advertising.
I have only ever used it as a command line tool and written my Typst files in Sublime.
>on paper absurdly risky
to use a different program for turning equations to pixels?
>pixel perfect clone
why? they wont give you a phd if a single pixel is off by one bit in the alpha channel?
In my experience, formatting is just about the only thing that a department/university cares about (outside of the folks on the committee), and they will send back a thesis until they're satisfied with the formatting, and that means lost time. Perhaps throwaway_7274's department has a reputation for particular attention to (meaningless) detail.
While there are formatting guidelines, I've never seen them so specific that you could only easily do it in Latex. Is that really common?
I've never actually see it as the assumed default option.. Maybe a decade back I could see that.. but not now.
The matter isn't really that something is possible only in latex, but that a department/university might have its own template/document class of arbitrary complexity that you would have to reimplement
> department/university might have its own template/document class of arbitrary complexity
I think there is a limit to how complex they can be. If you can't do it relatively easily in Word, then it's probably going to create too many complaints for the bureaucrats
I think there’s a Latex template you can use, or you have to make your own document that looks as similar as possible. It’s not a list of guidelines but a template that specifies how it’s supposed to look.
that is a good observation, but it actually proves that the riskiest thing you could do with your time is a meaningless credentialist PHD, instead of actually learning skills that rich people will pay you for immediately without the pomp and circumstance
If you don’t understand what they mean and are hunting for pedantic discoveries in explanations of a problem, then please try to dig deeper and contribute more meaningfully, as per the HN guidelines.
please explain to me how anything i said displays pedantry or lack of understanding?
THEY were the ones that asserted they needed to be pixel perfect, not I!!!
> to use a different program for turning equations to pixels?
They explain in the comment why it was risky (new thing instead of tried and true methods, not a large user base, etc.) and yet you minimized their explanation, over simplified and seem to not understand the risk involved in writing one of the most important pieces of literature in one’s career.
> why? they wont give you a phd if a single pixel is off by one bit in the alpha channel?
They meant pixel perfect as in matching the template to infer the importance of this. Then for some reason you went down the “off by one bit in the alpha channel” which is a bit of wise-assery and not meaningful nor necessary to the conversation.
As I said before, please dig deeper and use your well meaning System 2 to contribute, and not your Reddit-Tainted System 1.
These are some notes I wrote when I started out with typst when comparing with LaTeX:
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.
8. Programming with it is lovely. Its got a little interpreted language built in, with helper functions like json("some_file.json"). I wrote a paper in it, and used that extensively to populate all my result tables. (Benchmark script -> JSON files -> typst compiled the results directly into the PDF).
I've said that in Typst, when you're writing, it feels like writing, and when you're programming, it feels like programming. Whereas LaTeX always feels almost, but not quite, entirely unlike programming.
Nice Hitchhiker's Guide to the Galaxy reference! That's my favourite quote from it :)
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.
The primary feeling I get from using LaTeX is: fear. Any little special thing I adjust tends to break the document, or move figures, or fixing one thing breaks another and so on. And forget about changing templates.
My general advice here for you and many others in this thread would be to switch to Context (or even Luametatex if you really want to make some truly crazy stuff, basically it's just a newer and more experimental version of Context) if you are not happy with things and like to do your own customizations and don't bother becoming a TeX wizard. Latex is super if you are fine with the template you are provided or you absolutely need some obscurish package, otherwise Context is similar enough and bending it to your will is pretty much how it's supposed to be used.
My paranoid workflow is that I have to make many subdivisions of the document so that I can trivially enable/disable components when I am triaging a problem. When something breaks, I am less reliant on the garbage error messages.
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.The fast preview makes it a fun environment for interactive graphical/visual programming. With some limitations, unfortunately no animations and don't try to create thousands of objects or curves, the language server will run out of memory and have to be restarted.
Is what you’re describing something that latex handles well? I’m no expert, but that problem seems solvable by rendering previews with say sampling of large or complex objects vs full builds that maybe take a minute if high fidelity animations or very large graphs are desired as a supported use case in something fully open source
LaTeX comping/rendering is generally extremely slow.
TeX is slow?!
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
As you wrote a paper, how difficult would you say is it to recreate the template of the venue you submitted to?
I haven’t explicitly recreated a template for an academic venue, but I have recreated a custom template to match and existing PDF. It was pretty straightforward to recreate it as the language and “standard library” (if you could call it that?) is well designed and has excellent documentation.
95% of the layout? Trivial. The last 5%? Much harder. They’ve invested in their very specific latex template.
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.
Oooh that is nice. I have long relied on various conversion hacks to update data tables (mostly settled on pandoc markdown), but that little usability nugget is worth quite a bit to me.
Have you compared this to using lua in lualatex?
> 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.
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.
I am 95% sure that you can import wherever you want. I remember doing it with Tables i defined in an extra document and then imported only where i actually needed them.
There are multiple kinds of import in latex.
The GP specifically mentions packages, so means \usepackage.
> 5 bloody files
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.
Actually number 5 is not an issue. Defining macros in the preamble is a custom but you can define macros anywhere.
Have you tried actually writing an article with it? I had very limited success. And since nobody is using it really, you're kind of on your own.
Nah, just work documents (built in CI), resume, legal documents, ad-hoc documents. Publishing is not really in my purview.
Actually, you can’t specify macros anywhere. Unlike TeX, it’s a real honest-to-goodness programming language with functions and types and modules (yes! It has namespaces!) instead of just macros on macros on macros.
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 :))
Oh wow, I was hopping something would come along with better friendlier errors like modern programming languages
It's my duty bring up that plain TeX, the Knuth language in which the large macro collection LaTeX is written, isn't as verbose and opaque as LaTeX when people complain about that.
It has the opposite problem where you may have more control than you'd like. But it is in some sense very simple. e.g. this is a valid plain TeX document:
$$\aleph_0$$
\bye
Things don't have to begin{ and end{ etc.
There are simple collections of useful macros like [extended plain] kind of like lodash where the aim is to enhance the classic syntax by ` input eplain` at the top, not take over.
NB: I was so proud to write my thesis entirely in [extended plain], but when it was time to submit it to the library they basically said, "That's nice, nerd, but we have specific style files." and I had to rewrite it into LaTeX anyway!
[extended plain]: https://tug.org/eplain/
Anyone who has only ever used LaTeX will be pleasantly surprised by plain TeX - so many of the things that you'd think must be LaTeX macros are actually just TeX itself.
Knuth's The TeXbook is also a delightful read. You'll learn a lot about typography.
I read the TeXBook over 25 years ago when I wanted to learn about how mathematics was typeset. It gave me a lifelong appreciation for and love of the art of typography.
The downside is that once you know, you know and you will see lots of bad typography. Though I genuinely think digital typography has continually and gradually improved over the decades. The typography you get "out of the box" is much better than 20 years ago. Also, high dpi displays rock!
I have written a couple of lecture notes in LaTeX and I wrote my master's thesis (mathematics) in LaTeX as well[1]. It's actually a fine language if all you want to do is write and rely on other people's templates. But actually writing my own package or understand how the underlying systems work has always seemed like black magic where individual packages have to avoid stepping on each other's toes, or add specific workarounds. Maybe I'm wrong, but that's the impression I got.
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.
I also haven't delved too deep into Typst, but I can say that in my experience, writing templates involves way less black magic than LaTeX. I feel like I'm already more proficient and making my own structures with it than with LaTeX despite using LaTeX for a decade
> It would be nice if Typst could be a LaTeX replacement that makes actually layout and designing the document approachable
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 disagree with it being outside the scope of typst. Typst makes designing a template entirely feasible, I've tried and succeeded.
I have hear of ConTeXt, but never tried it. I originally wanted to write my resume in LaTeX, but I quickly realized that my choice was either to use a template and have a resume that looks like everyone else's, or dig deeply into the arcane working of TeX. In the end I had my sister do it in InDesign, but now she is the only one who can update it. I would love to remake it in something I can actually edit myself, whether ConTeXt, Typst or Sile.
I really think Context is the correct starting point if you want to make your own thing with the Tex quality. So many people frustrated that Latex makes it kinda hard to customize things and I was too. There is a learning curve to use the advanced features of Context but at least it feels like a sane system (and generally no need to add packages, the power to change the style of your document is fully granted to you).
I also have written. thesis in reStructuredText and used Pandoc to make a latex file and then latexmk to make a PDF file from it. I also used matplotlib and Python to make PDF plots, which I then could losslessly embed into the main document.
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.
> 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.
You footnote really describes why latex was not fine.
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.
The nice thing about Typst is that I think they've built up a community and business model that should disincentivize enshittification. The compiler is open source, and there's a large number of people using it now. If they start enshittifying, it can just be forked and maintained by the community at the very least at the level of functionality it's currently at, which is good enough for a large segment of people.
> In latex i actually wrote in markdown and compiled to latex.
Sure, but if you want to just _write_ then latex is just fine. I don’t understand why you had to write in markdown?
Because standard constructions like emphasize, code blocks, headers, lists etc. Are incredibly difficult to both read and write hampering the writing flow a lot.
Both markdown and typst solves this.
You can still write in markdown and use pandoc to create typst.
The crucial component for the success of this, in my opinion, is the acceptance of Typst templates in scientific journals and conferences. The adoption of something like this in universities relies entirely on the adoption by these publishers.
I see almost no support in the scientific community for Typst since everyone already has a LaTeX template for a thesis, paper, slides, etc. Researchers need to take the initiative and create a template that is accepted by first a chair, then propagate it in the university and try and get it popular enough so that it hopefully forces the creation of templates for conferences and journals.
This is an incredibly long, tedious, (and I am guessing ongoing) process, but one that is crucial for Typst to be a real contender with LaTeX
I'm probably ignorant to specific issues that make more advanced typesetting for journal submissions necessary, but I don't understand why some academic flavor of markdown isn't the standard. I'd advocate for that before either LaTeX or Typst.
I absolutely get the importance of typesetting for people who publish physical books/magazines/etc, but when it comes to research I don't see the value of typsetting anything. Journals or print publishers should be responsible for typsetting submissions to fit their style/paper size/etc, and researchers should just be responsible for delivering their research in a format that's simpler and more content focused.
> I don't understand why some academic flavor of markdown isn't the standard
I would argue that is exactly what LaTeX is... I studied mathematics in university, and from what I recall, every major publisher provided a LaTeX template for articles and textbooks. Likewise, pretty much every mathematics presentation uses Beamer slides, and most mathematicians are able to "compile" subsets of LaTeX in their head. Websites like MSE and MO use MathJax precisely so that people can write notation as they would on assignments, notes, papers, etc.
Note: I am not saying people particularly like LaTeX as a tool. However, the vast majority of the complaints about LaTeX do seem to be from computer science people. Many mathematics students just create an Overleaf (formerly ShareLaTeX) account and call it a day. Of course, nobody enjoys notes taking 10 seconds to compile, or the first 100 lines of their thesis being a preamble, but the important part is the ability to express notation across a variety of mediums, and the publisher support (as GP mentioned).
I agree the standard for mathematical notation is latex, but it’s only needed for fairly limited parts of a document. It makes more sense to me as something you’d use in snippets like `$\sum_{n=1}^{10}n$` than something that should control the whole document.
Markdown and mathjax is imo way more web friendly than a full latex document and avoids distracting/unnecessary aspects of latex.
As for publisher support, that’s what frustrates me most: html was specifically designed for academics at cern to publish and link documents. Instead of using an html friendly format like markdown, publishers demand a format designed for printing content to a physical piece of paper. So now html is used for almost everything except academic papers, and academic papers are all pdfs submitted to journal or preprint severs with no links.
That's exactly what Quarto is, and there are already a handful of good journal templates for Quarto to choose from.
https://quarto.org/docs/journals/
We don't want to do this because LaTeX already solves our problems quite well.
Typst is just wonderful, I hear maths majors now procrastinate on thesis writing by writing typst packages instead. Give it ten years and see how it developed.
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.
In my experience, the hiccups with packages are of a different kind than those with LaTeX packages. They’re more often “normal programming” hiccups where a function is poorly-documented, or there’s simply a bug. LaTeX packages can cause bigger problems: even usepackage-ing them can do arbitrary ‘stuff’ and have weird nonlocal effects that are basically undebuggable. Oftentimes two packages will just be incompatible, which should not ever be the case in a sensible programming language.
I've ditched Pandoc + Latex for Typst for a book [1] that I'm writing. Typst is as easy to write a Markdown, and so much easier to program than Latex (though it is still a bit rough in some places). In Latex I would have to rely on a slew of packages to get anything done, and then work around their quirky interactions. With Typst it's feasible to just write it myself. It's also really fast and doesn't poo all over the file system. Strong recommend if you're producing technical documentation with PDF as your primary target.
[1]: https://github.com/scalawithcats/scala-with-cats/tree/featur...
[dead]
Among alternative typesetting systems, there is also SILE, which supports two syntaxes (XML-based and TeX-style), supports scripting in lua, comes with freely available sort-of-specification (unlike (La)TeX or Typst, unless one counts program sources as specification). For formulae, it additionally allows direct MathML input. I have not used either Typst or SILE though, only looked into their documentation.
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 with MathML may make a decent system as well
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...
I also had problems with MathML verbosity, and the culprit is the markup for the individual character classes (mi, mn, mo, ms.) I wrote a little filter that pulls apart character sequences and applies the respective character markup tags using a lookup table, so I can write MathML without using character markup. If any character markup is already present then it is skipped, so the automatic behavior can be bypassed by explicitly tagging characters and symbols as needed. This drastically reduces the character markup and makes it quite readable, even to my dyslexic eyes. As a bonus I'm not tied to some other tool that I have to game from time to time to get a particular MathML expression, I can say exactly what I want. BoBW.
This is probably not useful for most people, but I wrote a little script for Emacs that lets me write TeX-style math in a comment and then render/update it below in MathML: http://sdf.org/~pkal/src+etc/mathml-from-tex.el. The translation itself is done by LaTeXML, which one must install on your system separately.
It is indeed considerably more verbose, especially the "context" version (the one focusing on semantics, rather than presentation), and I did not write much of it myself, but I can imagine it being fine. It should not be a bottleneck for carefully (and slowly) composed documents, while for more casual and quick notes, even with LaTeX it appears to be common to use both a preview (often inline) and some input assistance, avoiding completely manual handwriting. Besides, as the linked Wikipedia article mentions, it is rather like expressions in Lisp-family programming languages (or pretty much any common ones, if you avoid infix operators), which are not that bad. I imagine it may also be more convenient (and terse) in combination with SXML or KDL, to avoid closing tags.
As a long time latex user, and one who is occasionally frustrated by usual things about latex, I have two qualms about attempting to switch to a new system. The first is I already have found solutions to many of my edge cases in latex. Will I have to do this all over again in something like Typst? It can't be so good as to not have any. And when I do encounter them, is the user base big enough to have already encountered it and solved it and wrote about it, so I can just look it up?
Looking at the example in the link, in principle it looks great. But one of the strengths of latex is that I can customize things. Like for the list example, I can have fine tune control over the indent on both sides, the list marker symbol, the space between the marker and the text, and so on and so on. Does typst have this level of control?
Same boat here. It’s a very good layout language. And vastly superior production process. Will you find new edge cases? Yes. Is there a large user base covering all problems? No.
You can add: “Does Claude Code understand it well enough?” No as of a year ago, last time I checked.
Yesterday I had Claude write me a simple 3d renderer using the CetZ package (typst’s Tikz) to draw illustrations of surfaces for a math paper. It pretty much nailed it.
AI support is an interesting new facet of ecosystem quality. I wonder how much of this can be obviated with high quality tools. Coding agents can leverage language servers and documentation fairly well, but it’s not clear to me if that can fully compensate for weak language coverage in the training data.
I've had decent results from AI for typst.
Control for indentation, spacing and symbol is available: https://typst.app/docs/reference/model/list/
Typst still does not natively support floating images. You can put images at the top of a page, or at the bottom, but there is no native way to declare an image as floating with text wrapping around it.
“Natively” is important here because it’s actually relatively easy to get it working with a package: https://github.com/ntjess/wrap-it
or meander, a recently released, more powerful package https://typst.app/universe/package/meander
I encountered some weirdness with wrap-it when my content is a bullet list
Does it support the monstrosity that is wrapfig? Writing a proposal would be impossible without that.
I guess to add to that, what if there is another party involved with your work that will demand latex? Like a library or journal publishing your thesis/paper?
I have been planning to put out a quarterly Sanskrit newsletter for some time now, and was dreading having to deal with LaTeX. For basic stuff, LibreOffice PDF export works. But that is not a plain text workflow.
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.
Where can we sign up for the newsletter?
I will post it on our website as well as reddit when it is ready. I am taking my time to ensure that it does not become a one-off thing and can continue for many quarters.
- https://www.adhyeta.org.in/
- https://old.reddit.com/r/adhyeta/
One advantage of LaTeX is that it's virtually impossible to generate markup by accident. This contrasts with other platforms which often decide that I'm trying to create a bulleted list, write something in boldface, etc. -- which hasn't always been the case.
It seems that part of the design philosophy of Typst is to make more assumptions about what the user is trying to do. For example, apparently if the user wants "dif" to appear in a math formula, typing "dif" would instead produce a differential -- although I presume there is some easy way to handle this.
Anyone who has used Typst -- did this potential disadvantage materialize in any way which was at all significant? Or did it turn out to be a nonissue?
Text needs quotes in math mode, only single letters are rendered as text.
Markup is indicated by [].
Math by $$
Code by #
Accidentally entering markup mode hasn't happened to me so far.
This is a nonissue. I've written several lengthy documents mixing up all sorts of pieces in Typst over a year, created my own template, modules, functions...
nonissue for me. This is an advantage in most cases, and the way to tell typst to just render literally is quite obvious (backslash in markup mode, quoting text in math mode). The only slightly annoying thing is that in math mode "/" becomes a binary operator for rendering like \frac, and you need to use the ugly and hard to read "\/" for an actual forward slash for tighter division.
Nobody seems to be taking about how great typst is to use programmatically. It’s absolutely trivial for example to build a Lambda function that parses some json input into a PDF. We’re using it to generate PDF invoices for our customers. We save massive amounts of compute because of how fast typst compiles into the PDF.
God it's so much easier than LaTeX. I wrote so many things in LaTeX over the years, and writing (and debugging) switching to Typst felt like, well, like somebody had been fighting me every step of the way, and then finally stopped. I'm not going back, if I can help it.
But I will say I've mostly written relatively simple documents in it, so maybe that colors my experience.
I've started using typst for small local documents that I would previously have written in markdown (or R-markdown). Typst offers programming features that are very helpful for small writing tasks that need more customization than markdown provides but that don't need the wildly expansive set of templates available in the latex world.
Like other academics, I plan to stick with latex for journal articles and books, unless publishers provide support for typst.
Markdown still has a place for files on github, because that means that web browsers will display formatted material, not just the raw code. A similar thing applies to code documentation, with many systems (R, Julia, etc) supporting various flavours of markdown.
I recommend typst to students for small tasks like assignments. It offers more typesetting power than markdown, it's a great replacement for msword, and it's easier to learn than latex.
Long story short, typst fills a niche. But it's not the be-all and end-all, at least in my (natural science) field.
> Like other academics, I plan to stick with latex for journal articles and books, unless publishers provide support for typst.
In my undergrad we sent all our essays etc as LaTeX and it was honestly very usable. I assume this was somewhat dependent on having a wealth of enthusiast professors and postgrads to develop the templates though...?
Since then, I've used LaTeX in a "freeform" way and absolutely hated it, I will definitely be trying Typst next time I need more than Markdown/RST.
But I can imagine that if you are unlucky, working with the journal-provided templates could be WORSE - if the templates suck you are surely in a world of pain!
LaTeX absolutely shines when you have someone providing a template; hardly anything comes close.
When you're on your own, you need to either steal someone else's and modify it, learn to build your own, or just use something like the Memoir package (which is the first but designed for it.)
Even if you don't use LaTeX at all, "A Few Notes on Book Design" is worth the read: https://ctan.org/pkg/memdesign
Elements of Typographic Style is also a good one if you want to geek out.
I've never seen a publisher's template that was hard to work with.
The process of writing in latex for journals (and textbooks -- I've written for both things) is really very easy. Publishers almost always provide a sample .tex file that has items you just fill in. For example, there will be something like `\authorNames{}` and you just put the names between the braces. The same goes for titles, equations, figures, etc. There will be sample paragraphs as well. And they will have examples of various citations styles, too.
Speaking of citations, latex has good support for citation databases. (Typst and markdown also provide this support.)
I'd say most people I know write their early drafts in latex. They have a target journal in mind from the start of the writing process, so they just grab the latest sample file and stylesheet(s) from the publisher's website and start entering text.
As you say, using latex for freeform documents is a different matter. That's where I've started to use typst. And I do recommend it for such things. You may find yourself wanting to make some typst templates for common tasks (meeting notes, position papers, etc.) but it's not terrible hard to make such templates. I've made a few, but often I don't bother -- I just put a few lines of customization at the start, if I want to alter how section headings look, or I want a different font from the default one.
I imagine that it would be productive to write a draft of a paper or book in Typist, and then do the painful LaTeX writing for the later and final drafts. The pain saved on early drafts would outweigh the cost of doing some work twice.
With the wisdom from a TU Delft graduate student, I switched from Word to LaTeX in 2007, having never known or used it ever before, and never looked back for the next seventeen years. Using it within the corp. environ. (Shell) became progressively harder as time went by due to the need to install such a large installation (under Cygwin, which itself got on the list of not-allowed, and had to resort to `setup-x86_64.exe --no-admin` for nearly all my subsequent time there).
While I appreciate LaTeX structure, and the resulting end product (Knuth is God), it is as you know highly verbose in markup, thereby making the content somewhat unclean, and not easily readable like plain text (my yardstick on content readability and re-usability). I wrote multiple plug-ins for the text editors of my choice Sublime Text, and Vim to produce snippets for writing ease.
- https://github.com/ckunte/latex-snippets-st
- https://github.com/ckunte/latex-snippets-vim
Switched to Typst cautiously in 2023, and have never since looked back. If LaTeX was the gold standard for the 20th century, I think Typst is on track to become that for the 21st.
I wrote a little note about writing a template for Typst to remind myself how-to, and for anyone I'm working with:
- https://ckunte.net/2025/template
Typst is great. I'm sure it's not a complete LaTeX replacement, given the dominance of TeX for many decades, but for simple documents it's a breath of fresh air.
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. :)
Almost all my computer science students are using Typst on my recommendation to write up their programming projects, vs most using Microsoft Word last year. Specifically, writing in VSCode with the Tinymist Typist extension. All going very well so far and no complaints.
I was with you when you explained how you got them off of MS Word (even worse if it was the web version!!), until you brought up VSCode. I get it, you are probably advocating very practical choices. Just that I wouldn't recommend students to become dependent on VSCode (due to its vendor and "telemetry"). Basically, that makes the students again dependent on MS. But I guess since you recommend an extension, you cannot recommend VSCodium and adding the extension store as someone in a teaching position? If you can, then I would strongly advocate recommending VSCodium instead (or non-electron app editors), to avoid spyware on their machines and to promote a healthier tooling.
There is a language server for Typst: https://github.com/Myriad-Dreamin/tinymist
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.
Tinymist is working very well with Neovim too - and there is a preview plugin based off of tinymist, too, for Neovim.
Surprised you had to.
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.
The programming parts are very tempting, but I find the philosophy of the math mode input simplification to be questionable. E.g. automatically generating fractions from "/", or removing parentheses depending on whether they are redundant with other grouping. Those are all choices that I want explicit control over, and the most readable choice depends strongly on the details of the expressions. After some digging it's clear that all of that can be overridden without too much effort, but it still seems like a poor default for my use cases.
I am also not a fan of automatic fraction.
BTW, I notice that both of your complaints will be addressed in the next version:
https://github.com/typst/typst/pull/6672
https://github.com/typst/typst/pull/6442 , see also https://laurmaedje.github.io/posts/math-mode-problem/
FWIW the second part does not address my concern (which was about omitting literal parentheses that are present in the markup, in some cases), though it is related. Personally I think it's already a mistake for bare/unescaped words to indicate markup, or I guess the intention is that they indicate mathematical semantics and then Typst decides the best way to write down that semantics unless you explicitly interfere -- seems like a recipe for confusion whenever Typst's ideas of the mapping from semantics to typography don't quite line up with yours, or the conventions in your field. I'd much rather approach mathematical typesetting with a typesetting language than a mathematical language where somebody else has decided how that math should be typeset, even if it means a sea of backslashes and curly braces.
(Edit to add: I guess this means my preference would be option E from the blog post -- I see the extra symbols as far preferable to the ambiguity between content and markup)
Also wow, recovering from this breaking change is going to be incredibly painful for somebody.
I must say I really like the more straightforward syntax, semantics, and distribution model of Typst. LaTeX is akin to programming with the C preprocessor, it's both ridiculous and amazing what people have done with it but it gets quickly intractable. However, I really do enjoy the quality of graphics, diagrammatic, and scientific output from LaTeX, even if typing them is a pain (LLMs are a huge help here).
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/
Cetz[0] is the drawing library in typst. For your other needs check out the package repository at [1] (visualization should be the correct category).
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/
For physics2 (which I only skimmed the manual), it seems like most of the functionality is either in the Typst standard library, or availble in physica
https://github.com/Leedehai/typst-physics/blob/master/physic...
Obviously the drawing capabilities aren't equivalent yet.
bibtex files can be used in typst.
You know, this is good fodder for LLM training via Reinforcement Learning with Verifiable Results. Given complex LaTeX source code and complex PDF output, write. Typst document that reproduces the PDF.
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)
Assuming it's at all desirable, it's an interesting and recurring problem of how to dislodge existing sub-optimal (sometimes even harmful) standards and notations.
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.
> Almost nobody wants to learn something new when they already know something similar.
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.)
Until journals and the arxiv supports it it's going to be a non starter for academic papers
If the software is actually good, it can start from an enthusiastic core of students, PhD students and later niche conference organizers and niche journal editors and if they gossip about their experience, it can spread through word of mouth if it's sufficiently good.
Yeah I think this is correct, with the added caveat that it must be as good as the alternative PLUS the awkwardness of switching to have any hopes of breaking out of the local minimum.
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.
Dvorak is only slightly better than Qwerty at most.
> it's an interesting and recurring problem of how to dislodge existing sub-optimal (sometimes even harmful) standards and notations.
> 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).
> Almost nobody wants to learn something new when they already know something similar.
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.
If a better Latex only saves you 5 minutes per year, then that means, that you are either a latex god, who types 200wpm in special characters and talks latex fluently, or, that you don't actually write much documentation per year, or, that someone else has invested significant time to create all the document layout, macros, environments, etc. so that you only need to type the text.
My point is, that creating a proper latex document, specific to one's use case can consume many hours of time.
> 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...
Text editors progress one funeral at a time.
Scientific text editors, you mean? ;)
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 ).
Folks who know latex would benefit the most from typst, just from the compiling aspect.
I'm convinced no one really knows tex/latex. Everyone googles enough to get by.
Typst on the other hand is completely sensible.
It takes less time to learn typst than to refresh on latex.
See: YAML, JS, /etc structure, credit cards in US...
Keyboards being modeled after typewriters, unit of electrical charge being negative, pi being half a turn, etc.
Our basis vectors are very much wide of the mark.
We... have failed so much...
Typst is fantastic and I recommend to dive into it to see how much value it offers. To me personally, the biggest strength is the ergonomics of both the tooling and the language, and how ergonomics persist even between documents of various complexity. Writing a paper in LaTeX is nice, but making something like a CV takes some patience. Meanwhile, in typst it was quick to get started and go all the way to building resumes, character sheets, and I know of at least one occurrence of implementing symbolic math in typst language. It's not without quirks, but still, very solid alternative
I maintained my CV in Latex for years (originally got started on this due to the fear of MS Word) and recently tried out Typst. I agree with you that it's quite simple to get started with. Also, I had to maintain a Ubuntu based Docker image with everything needed for the build.
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).
My CV is still in LaTeX which gives me the opportunity to procrastinate updating it (rather than actually applying for jobs) because of all of the tweaking I do.
If nothing else, typist is going go give me more opportunities to procrastinate! Nice.
All I've done in Typst is my CV, I saw it here a while back and thought it'd be a nice use case.
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.
Fun fact: TeX was written closer in time to Alan Turing's famous paper introducing the Turing machine, than to present day.
The absolute staying power of TeX has been incredible.
Tex doesn’t attract software developers. The programming language has remained really old fashioned and clunky. The error system is particularly bad. I use it on a daily basis, and it doesn’t feel nice, far from the experience with Python or Rust.
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.
TeX has the idea that it's feature complete and should not develop, so then by definition (cheekily) it cannot attract any developers.
The modernized version is Typst though.. it's closing the gap to (La)TeX really fast
With all due respect to your perspective on TeX, isn't it the whole point? There are weaknesses in TeX (like using $ for both beginning and ending the math mode) but they are quite minor. Quirkiness is not a weakness but being a standard (since 1986!) is a major strength. The fact that it does not change is a blessing, truly. Python may be a fine language with a great community of supporters and I use it because I pretty much must but programming in something that is essentially a moving target is no fun. And I would take TeX macros over Python ugly syntax any day, no offense. Not to say I am right just to point out that taste is not necessarily a reliable guide.
From the article: "Typst... can, for example, easily split large tables across page breaks, something that LaTeX struggles with even with specialized packages." That would be nice. I remember when I first started working with LaTeX that I was surprised that I needed to decide ahead of time whether a table would fit on one page or not. If Typst can make that decision on its own, that's a step forward.
One thing I have not seen mentioned as yet: cross-references. In LaTeX, I can create cross references to anything: page number, table or figure number, even an item in a numbered list. Does Typst have that capability? I saw a package for cross-referencing numbered boxes (it's called statementsp), but it wasn't clear how you xref other things. (Not saying it's not there, it just doesn't jump out at me.)
yes, cross-references are possible by adding an <anchor> and referencing it with @anchor. It works for headings, figures, equations, footnotes, and with a slightly different syntax also for page. [1] Numbered lists are currently not natively supported, only with the package itemize [2].
[1] https://typst.app/docs/reference/model/ref/
[2] https://typst.app/universe/package/itemize
I had originally dismissed Typst, since at first glance it seemed like some closed online-only tool. But actually there's solutions such as Typstify[1] which works offline, haven't tried it yet but seemed promising.
[1]: https://typstify.com/
Typst is open source. It can be used as a cli tool https://github.com/typst/typst
There's also an LSP (Tinymist.) My Typst workflow is all local in VSCode, with the source markup in the left pane and a live preview on the right.
Is the format "open" as well?
I’m curious what you mean. It’s a language with an open source implementation.
Others can and do implement parts of the language - e.g. Pandoc implements a parser and evaluates Typst.
Like other commentators, I have worked with LaTeX for a long time (> 10 years) and have to say that it very much shows its age.
For once, the compilation time is terrible - it can take several minutes to compile a typical document. I recently tried to create a poster for a conference - a single A0 page - and even this took more than a minute to compile. Because positioning in images and figures in LaTeX is not obvious, this made iteration extremely slow.
Additionally, by forgetting a single bracket, one can easily encounter cryptic error messages relating to boxes. In the past, I have also worked on LaTeXML (the LaTeX-to-HTML "converter" amongst other things being used to power ar5iv [1]). Even though this exposed me to some of (La)TeX's internals, it is still extremely difficult trying to decipher error messages.
Typst, on the other hand, is much faster when compiling and provides much clearer error messages.
For this reason, I also decided to write my 130-something PhD dissertation in Typst [2]. My university only provided a LaTeX and a Word template, but I ended up copying that in Typst extremely quickly. My thesis compiles in about 7 seconds on my laptop - I cannot imagine how long it would take had I chosen LaTeX instead. Not only that, when I showed an initial draft of my dissertation to my supervisor - also a decades-long LaTeX user - he could not tell that I wasn't using LaTeX.
I only really encountered one problem with Typst so far - citation styles. In particular, the alphanumeric style preferred by my field produced duplicate citation keys, making the output unreadable in printed form. But given all the other benefits Typst offered, I ended up switching to IEEE's citation style instead.
I am also hoping that Typst improves its HTML export - it is very barebones at the moment - but that seems to be in the works [3].
[1] https://news.ycombinator.com/item?id=36947004
[2] https://doi.org/10.25593/open-fau-1825
[3] https://github.com/typst/typst/issues/5512
Hey, I've had the same problem with duplicate citation keys! I couldn't find an issue on it. One of us should file a bug report.
I already did [1]. It got moved into hayagriva, which appears to be the library used to implement citation in typst.
[1] https://github.com/typst/hayagriva/issues/255
Amazing, thanks!
I had been using LaTeX for 25 years. I gave it a try recently to write a technical paper and I was blown away. I saved so much time. The immediate feedback and the advanced features were impressive. I had to include a budget proposal in one of the chapters and I was able to create a quick script that read a csv file with the different concepts and costs. I would modify the contents of the csv file and the document would update right away. I didn't have to recompile the document as I used to do with LaTeX... the results were there, right away, beautifully formatted. I am very impressed and will definitely consider doing more work with Typst.
I've tried pushing Typst on my academic friends. One of them listened and eventually wrote his entire PhD thesis with it. He didn't seem to regret it.
Typst seems like an improvement in many respects, but I definitely prefer LaTeX when working with detailed math equations (most of my use of LaTeX). I think there is a lot of inertia for anything to replace LaTeX for mathematical research.
Any experience with using Typst to produce "pixel perfect" reproductions of existing documents? At work we have a series of contracts that are updated every year, with fillable blanks that we fill in with provided data. We currently use latex for them and have a contractor is very good at making them look basically exactly like the original contracts, but at some point she's going to retire, probably sooner rather than later.
Probably our best solution is to decide that we don't care about nearly pixel perfect reproduction of the contract, which probably makes a switch to typst a lot easier.
I've reproduced documents with Typst, mostly pixel perfect. I've done the same in LaTeX before, and it was orders of magnitudes easier with Typst. However, I didn't care if a couple of paragraphs with hundreds of words in them were a line longer or shorter. That might be an issue if you care about literal pixel perfection. But why would that be important in contracts?
What I tend to do to get the best result is setting the background of the typst document to the document I'm targeting, and then adjusting until it matches perfectly.
Typst fixes pretty much every problem LaTeX has.
It replaces the macro language of LaTeX with a python/rust like language, which couldn't be easier to write.
The markup language has a markdown like syntax which makes writing simple things simple. And allows for complex, but easy to comprehend operations when useful.
It has good tooling, with helpful error messages and is not arbitrarily limited on memory or font support. (I know some LaTeX engines do not have that problem anymore, but even the Idea of competing engines with different feature sets is somewhat ridiculous)
I have used it a lot, for many different things.
I just found out https://typst.app/play/ - this is an absolute gamechanger. Tried it for a minute, but already loving it.
This is basically their monetization strategy btw – the SaaS offering is exactly this app, but with cloud sync and collaboration features. This part is proprietary, sadly, but I’d say fair enough considering it pays for the compiler and other tooling (FOSS).
It even supports vim bindings :-)
AFAIK, Typst doesn’t handle multilanguage documents well, and hyphenation in particular. I had to go back to XeTeX because of this.
TBH, I'm sick about LaTeX: - compilation is heavy - it's not friendly for writing (far from the dominant markup languages) - poor support to HTML / Epub / mobile outputs - output (PDF) not friendly for parsing / digesting. - tonnes of templates, lot of mess.
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
I'm pretty sure LaTeX can do all the documents I want to, e.g anything with complicated math expressions, various pseudocodes, computer science-y diagrams like karnaugh map, algorithm flowchart etc etc.
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
Typst wants to target both PDF and HTML, making it trivial to have a PDF document and a HTML page with identical content.
That way you get the best out of both worlds.
Wants to, but still experimental:
https://typst.app/docs/reference/html/
MyST seems nice but it appears to be not a replacement for LaTeX, but is a way to embed LaTeX in non-LaTeX content
Weasyprint transforms html into pdf.
I love Typst! Currently rewriting my CV in Typst and it has been an excellent experience. One small hindrance is the inability to have multiple bibliographies.
In the past I have also used it to generates quotes (in terms of finances, invoice etc.). It was neat because all of the logic for adding up the subtotal was written in the language (and was fairly easy to understand). I can imagine trying to do that logic in LaTeX…
Typst is great for web content as well (even though their HTML export functionality is still experimental). I've written blog posts on interaction nets in Typst [0] and I really like how the diagrams look.
[0]: https://ezb.io/thoughts/interaction_nets/lambda_calculus/202...
I rewrote my website to use typst for all the content and I really like how it is to integrate as well, its just a rust crate that I use in my build script because Typst is just on crates.io
https://erk.dev/2025/04/19/bureaucracy
I've written a system that consists of a JS front-end/backend, which then feeds a json object to a typst template to generate PDF reports with hundreds of pages, multipage tables, references to bibliography within the json strings, and translated to multiple languages. It works extremely well, and it's very intuitive to work with it.
For example, for the translations, I just made an object with every piece of text in a hierarchical structure, with the leaf being an object with keys for every language and the texts as values. Then I have a function called t() that is created after we already know the language for this report that just extracts the current language string when given an object like #t(content.section1.subsection.header.title) in the main report template (which imports this translations object from another file)
For bibliography references, I just have a regex for __REF\d+ that will replace all those references with real bibtex references.
I like this sort of thing, but I will never understand why all the common ASCII -> Layout apps DON'T use /for italics/ and _for underlines_. It's baffling.
Tinymist plugin in vscode is all you need to install, no giant amorphous TexLive thing needed for local editing.
I'm becoming acutely aware of the first-mover problem in open source software: Nobody truly knows how the software is going to be used in half a century. And once that time is past, the accumulated tech debt of the first-generation tool should probably just be thrown out entirely, for a new second-generation tool that easily does what people have shown they actually want do with it.
I've been using Typst for work documentation and hobby authorship. It is unreal how powerful it is out of the box, with no plugins. It's a Turing-complete programming language where you can switch between a code context and a document context with a simple change of brackets. Everything you WISH Latex did out of the box, it does. Highly recommend the VSCode plugin with live PDF generation and automatic scrolling.
Long term Latex user here, I've been working on generating automatic invoices in Typst for a year now.
On the plus side:
* Getting structured data into typst is sooo much simpler than into latex. For latex, you basically have to render a template, and have to know all the crazy escaping rules for special characters. In typst, you can just read a json file, and do the rendering in typst.
* Super fast. Love it.
* Mostly very easy to use.
Minus:
* Our invoices are structured as multi-page tables, and widow and orphan prevention in a multi-page table seems to be non-existent. The workarounds we tried were too disruptive (lead to text overlapping other text, for example).
* There's a bug in the Python wrapper that means we sometimes don't get a proper error message when there happens to be an error, then we have to recreate the scenario on the command line to find out what the error was.
* Docs could be better (but are mostly OK)
Overall I'm very happy with typst for this use case.
I also recently published a book written with Typst. It was absolutely a joy to work with, especially because the book was a collection of student essays. I converted them from docx to Typst and then getting all the figures and tables setup nicely and uniformly was easy. The PDF generation was perfect but converting to docx/epub I ran into a few bugs in pandoc. I reported them and a few were fixed and a few are still open. Overall, a very positive experience.
Book: https://thelabofthought.co/shop/p/nbmi3
Bugs: https://github.com/jgm/pandoc/issues?q=is%3Aissue%20state%3A...
It has a paid version, which frightens me that future greatness of the software and eco-system may be over-shadowed by greed and control.
Only paid version has "private packages".
The free online version doesn't have private packages. You are, of course, free to run the compiler locally with as many private packages as your heart desires.
*paid version of an editor
The lack of this would frighten me that it would be neglected.
if you want create animations with typst, I've written a blender extension for rendering typst content: https://github.com/kolibril13/blender_typst_importer
There is still continued work on LaTeX3[1][2], but it took so long without any release[3], by this time not sure if it will get adopted.
[1] https://www.latex-project.org/latex3/
[2] https://github.com/latex3/latex3
[3] https://tex.stackexchange.com/questions/572113/whats-the-cur...
LaTeX3 has either been cancelled or has already happened, depending on how you look at at. [0] But despite that, LaTeX is still continuously improving, although it will never beat Typst on speed or simpler markup.
[0]: https://www.texdev.net/2024/11/11/the-mythical-latex3
Whenever someone creates a "better and lightweight" successor to latex they will over time be asked to, or by themselves need to add another small feature to extend its capabilities will over time move closer and closer to the LaTex features set.
Or someone will use it and create a large document and find that Typst just does not have enough features they need, they will get frustrated and feel the need to move over to Latex.
Just like the original markup definition was fine, but then we have a forrest over forks or similar projects that add specific features someone needed.
That said if your needs are covered by Typst it's certainly easier to learn.
Are you implying latex is a global optimum?
I would say that it is the most complete typesetting system out there that I know about¹
It is not the optimal system that could possibly be created. for many reasons.
However as people design new typesetting systems or various kinds, and they make it the priority for it to be simple. Then usually over time users become restless because the markup langauge misses a typesetting feature they would like.
And we wee a plethora of markup forks of all sorts that include one set of typesetting additional features that the authors deemed nessescary.
The more you devlelop an alternative typesetting system, eventually you will need features that are all already included in TeX. and they are included because they were needed in an advanced typesetting system that would give people the tool needed to highly polished outputs.
But TeX is not a system for the masses, nor was it ever meant to be.
¹(There may be systems just as good used by print media)
The LaTeX community is astonishingly good at gatekeeping. I can't think of another field where the adoption of a clearly superior modern alternative has been so slow. For some reason, they seem to take pride in clinging to a 50-year-old typesetting system—with its bloated footprint, sluggish compilation, incomprehensible error messages, and a baroque syntax that nobody truly understands. People have simply learned just enough to make it work, and now they treat that fragile familiarity as a virtue.
The problem is that with Latex i end up in the same situation like in Word. I do not understand what is happenig and why.
Typst was an amazing addition to the modern IT stack. I use it whenever I can. The only issue is that companies like Google and Micrososft are dominating the collaboration space and I have zero chance to convince a comany to adopt Typst for internal documents that need to look good. It would be great though.
I've changed all my teaching materials to Typst. It is such a breath of fresh air.
I'm working through the tutorial on the WSIWYG official webapp now. The syntax for equations is remarkably intuitive! I tried a few things from guessing after skimming the tutorial, and they mostly worked in the most intuitive way. Here is what I gather this is. A mix of:
Is this right?typst is so good! the syntax is cleaner, and it's much easier to write re-usable and clever formatting.
LaTeX will have a special spot in my heart, but it's pretty bloated (even minimalist distributions) and suffers from being an early pass at a problem.
Don't forget other alternatives. On the pre-unicode side, we have lout http://jeffreykingston.id.au/lout/ . On the postmodern side, we have rakudoc https://raku.github.io/rakudoc .
Writing a 3d renderer in Typst because https://youtu.be/ocsR-o7auak
I’ve used neither Latex or Typst, but how are they at producing accessible PDFs?
We're pretty close, actually. The PRs for accessible PDFs [^1] and their associated documentation [^2] are landing next week.
[^1]: https://github.com/typst/typst/pull/6619
[^2]: https://github.com/typst/typst/pull/6905
They aren’t fully compatible yet but there is a lot of work going on now because of the new EU legistlation. LaTeX is closer.
E.g
https://github.com/typst/typst/issues/133
https://www.latex-project.org/news/2024/03/27/PDFUA2-example...
https://latex3.github.io/tagging-project/
Typst will support PDF/UA-1 with the upcoming version 0.14. Pull with the current progress: https://github.com/typst/typst/pull/6619
My first thought was "why would anyone want to ditch LaTeX?". But it's been almost 20 years I left academy, so I knew I would be missing something.
Reading the comments reminded me of the pain.
I didn't see anyone mentioning, maybe it was me "holding it wrong", but boy what have I done to get proper references. After a year or so writing articles I had an unfailing process to get them right, but whenever I tried to explain it to my colleagues I heard "yeah, ok, I'm staying in MS Word".
I also did a pixel-perfect template for my university. As a programmer, I never felt so ashamed of sharing something. I felt like it would be selfish to keep it to myself, so I did it, but it almost physically hurt me. After 10 years people stopped emailing me asking for help. Maybe they fixed the template or just ditched LaTeX at all.
As I'm planning to get back to academy next year, it was good to learn about Typist.
I'm teaching compsci at university, and since a few years I create all the material I use (slides, exams, sometimes booklets) in Typst. It does perfectly the job, and it's fast. I'm 100% convinced, even tho I was not a big LaTeX user before, so can't compare the two.
It is amazing to see a modern take on LaTeX.
Previously I had great success with LyX (https://www.lyx.org/), which builds on top of LaTeX. The experience of typesetting beamer slides with it is relatively user-friendly.
A decent usage example of Typst is https://rendercv.com/. It is a set of Typst templates to build resumés.
I've been using Typst to create some good-looking agendas for my Toastmasters club. [1] I've found it a lot of fun, and have received a fair few compliments.
[1]: https://typst.app/project/rmyyeU17y51rl6ISSqGji9
Quarto has typst support. You can create pdf documents quite easily as explained here: https://quarto.org/docs/output-formats/typst.html
This looks amazing.
I made this WYSIWYG-ish LaTeX editing environment for Emacs which renders things in-line as you type: https://github.com/dandavison/xenops
Does anything like that exist for Typst? I.e. something where you edit the same document that is rendering, rather than exporting or side-by-side live preview?
I guess if Pandoc adds Typst output support I will consider using that, but "LaTeX replacement" sounds like something that is too low level to consider for most usecases? It was many years since I used LaTeX for anything other than at most short snippets embedded in other documents (e.g. md or org). Or would Typst replace something like Pandoc Markdown (with a long list of supported output formats and a convenient Lua filter API)?
* 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.
Depends what you want to do, but Typst has replaced Pandoc for the book [1] I'm writing.
[1]: https://github.com/scalawithcats/scala-with-cats/tree/featur...
I moved from Pandoc+Lua filters to Typst. Having the scripting language integrated is just nicer, though I sometimes miss the separation between data (from Pandoc markdown) and code.
Is it as good for generating EPUB or HTML for instance? Or just plain text?
I use it to generate PDF. The last release introduced experimental HTML output which is promising but still immature. Work on EPUB support hasn't started as far as I know but it's on the roadmap, and I guess it will be relatively easy once the ongoing work on HTML and accessibility is done.
Sounds like it may eventually turn into an interesting replacement for Pandoc then, but I will stick to the latter for now.
As an economist, I write papers for a living. I use quarto markdown, which takes latex and typst and leverages pandoc behind the scenes to render PDFs or other formats. It’s as easy as it gets.
I used it for a presentation. Easy for the basics but it felt like a down grade from Latex or TeXmacs
TeXmacs is pretty great. I feel like its internals still feel a bit arcane, though. Just editing documents through the graphical interface is fine, but if you happen to use some commonplace symbols or diacritics a lot, opening the file as plain text will quickly remind you of it, with bespoke ASCII representations showing up in their place.
I've used Typst to produce books (for https://printstack.net) and it's been excellent.
I started with this: https://news.ycombinator.com/item?id=42271078
But wouldn't recommend going via Pandoc, for example for this reason: https://github.com/jgm/pandoc/discussions/10438
Some things like #show rules can be a bit confusing. And obviously LLMs can't really help you.
The git repository[0] for your typist to latex filter in the “transform” article[1] you link in the conclusion returns a 403 error :/
I’d love to see the code
[0]https://lee-phillips.org/typstfilters/code
[1] https://lee-phillips.org/typstfilters
Do a `git clone` as it says on the page.
ah, I assumed it would be visible in the browser since it said read only. I stand corrected.
For me Tectonic[1] solved many of the issues I had with LaTeX, so that's what I'd recommend if you still depend on LaTeX as a language. Make sure to use the V2 CLI (`tectonic -X`) which comes with convenient features like watch mode. With vim and evince (or any PDF viewer that auto refreshes) open I get a similar real-time experience to popular online editors like Overleaf, but in the comfort of my own editor.
[1] https://tectonic-typesetting.github.io/
The immediate no for scientific collaborations is zotero support being paid only. If it was just one user, sure they could decide to pay. But no way I am convincing others to sign up. (If this is somehow possible without paying while not ‚syncing‘ it’s not obvious)
If the project owner has paid for pro, all collaborators can use the pro features in the project.
Zotero sync is just a .bib file that updates itself regularly, so if you don't want to pay, you have to upload the .bib file or past the new entries manually.
I doubt it would come to completely replace LaTeX. The momentum behind LaTeX is enormous. Having said that, if it manages to simplify language handling, fonts, and bibliographhies it would be great.
But, especially, it would be good to see whether it improves on LaTeX's handling of tabulars (tables) and floats (figures), somethingh that is kind of an esoteric art right now. I wish Typst the best.
I loved typesetting my bachelor thesis with Typst (but with LaTeX math formula), and now it's even more promising after being able to embed PDF figures this July (see issue #145).
I love Typst and have standardized all our company docs on that. Much easier to render neat looking docs. And coding agents are quite capable at making edits.
Tex was for math lovers. And as a math lover, using a parenthesis for $\arcsin^2 x$ already turns me off to this page.
Is typst prefect, of course not, but it's good enough for most people. LaTeX on the other hand is the primary example where perfect is the enemy of the good.
Since there are typist folks here, how do you work with hash and dollar signs?
If I want to write C# on my resume, I do C`#` but there has to be a better way?
I'm not a typst user but from a quick look at the language you should be able to type C\#
You can also write a macro
#let csharp = [C\#]
And then use it as #csharp
Or even `#show "csharp": [C\#]` and then just write `csharp`. Though then you couldn't include the actual text "csharp" in your document, should you wish to, so perhaps defining the variable is a better option.
C\#
Is anyone here still using [tg]roff?
No criticism, but just reading the title my brain said, rust, and… voila! Apart from that, neat project.
I just gotta ask: what’s this trend of tech blogs to appear like 90s html? No typographical rules whatsoever, basic colours with outrageous contrasts.
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
according to Wikipedia, the blog was launched January 29, 1998
LWN is one of the most important journalistic outfits of the open source software world, not just some guy's blog. As the other commenter noted, it also dates to the '90s.
I'm a masters student, I've gone with a quarto workflow. From quarto markdown to Word, little bit of VBA for tables and images, and to pdf from there if needed. Technically I could go straight to pdf, but not tried that yet.
Typst could be great for SSG blogging, but there doesn't seem to be much going on in that space.
Anyone have success with typesetting in HTML and then printing to PDF? This works really well for me and if your application is web centric then it's an easy win if you need to generate PDFs as well.
I think the go to solution is weasyprint for this? https://github.com/Kozea/WeasyPrint
I'll need to give this another go sometime. I gave writing my thesis in Typst a go, but ended up using LaTeX/XeTeX because I couldn't figure out how to customize the existing templates to my liking.
Why do we need these special languages just to get adequate typesetting and kerning? In the end it’s just a paragraph of text constrained to a column. Because let’s be honest, this is why most people use LaTeX, not because they enjoy how to place a picture in a bullet list with cryptic syntax. Let’s ignore math for now.
Can’t the browser do this with HTML and CSS? From there you can go even further with standard tooling, generating from markdown.
If Github would add native rendering for Typst it would be really nice replacement for Markdown for READMEs.
I love typst. Literally no reason to use LaTeX in 2025 unless you really need some specific package or you need to submit raw TeX code somewhere
The experience of editing Typst on VSCode (with appropriate plugins) is great. The text is updated real time, and there is no full-page refresh
Another stamp of approval for Typst here.
It's simple enough that I can easily typeset CS theory homework (with all the fancy notation that entails) without having to subject myself to the insanity of LaTeX or the friction of a standard word processor.
But at the same time, I can also crank out a full paper in a (professor mandated, LaTeX templated) style without raising any eyebrows.
The fact that it's a "real" programming language is also lovely - I have a very simple template (took me an ~hour to write) that ingests TOML descriptions of recipes and marshals them into pretty, standardized PDFs for my recipe binder.
> Another drawback is the difficulty of learning Typst. The official documentation is confusingly organized, with information scattered unpredictably among "Tutorial", "Reference", and "Guides" sections.
I would have thought that this method of organizing documentation is preferred, as I assumed The Grand Unified Theory of Documentation[0] was well known and liked.
[0] https://docs.divio.com/documentation-system/
LaTeX is a wonderful tool.
The only real complication comes from the multiple packages (a novice doesn't know what are the standards), and from the big installation, it's really frustrating, it is something from 40 years ago.
I use http://www.overleaf.com, which works nicely, although the size of each tex is limited by the compile time.
LaTeX is a horrible system, that has some fans who are basically cultists. I suppose people like it cause Knuth, but remember Knuth just made Tex.
Imagine if C++ had stayed a hodge podge of extra tools compiling to C and C macros? That's LaTeX relative to TeX.
Typst should win and destroy all this stuff. If was in control of government science funding, I would just make all the journals accept it immediately, just like the open access arm twisting.
Academics are too precarious to self-advocate, and have been slaves to LaTeX's bullshit for too long. I'm grad procrastinating grad students are writing Typst packages to liberate them.
Best of luck to everyone involved.
This is a fine opinion, here is another one. Calling everyone who uses LaTeX cultists is a bit insulting. I do not particularly like LaTeX and use it only when a journal requires it in which case it is pretty much painless as I simply follow the provided template. TeX, on the other hand pretty much satisfies all my typesetting needs and I use it daily. I wish everyone would use TeX or LaTeX but I would not force it on everyone. Typst seems like a fine if a bit immature system but I truly hope it goes away, the sooner the better. Not because it is bad at what it does but because it solves a problem that does not exist and distracts from a standard that may not be perfect but has proved itself again and again. I am also weary of any piece of software that is controlled by a private entity, no matter how good the initial intentions are. Being open source is not really a guarantee of anything.
> Another drawback is the difficulty of learning Typst. The official documentation is confusingly organized, with information scattered unpredictably among "Tutorial", "Reference", and "Guides" sections.
They should add Dosu[0] to their repo. Dosu works with a lot of open source packages already.
[0] https://dosu.dev
Looking at the examples on the website, I can see the appeal regarding the input. The output makes my head slightly dizzy - not sure why, but like the letters are all slightly off, in both dimensions. Is it just me, or the font/screen combination, or did it occur to anyone else also?
If Typst would also allow to create HTML it could become a successor of LaTeX. Without it it is just another kind of LaTeX, created for printing stuff on paper. But that is not what a digital future needs.
Theres experimental support for HTML export:
https://typst.app/docs/reference/html/
I tried this out about 6 or so months ago; it was pretty bad unfortunately. I was willing to put my money where my mouth is and pay a bit to dedicate resources for it like a bounty, but typst organisation doesn't seem to have something like that. I have actually donated to the project AND paid for a subscription to their web service though.
Another unpronounceable project name. Well done.
Straight forward if you ask me:
> /taɪpst/. "Ty" like in Typesetting and "pst" like in Hipster.
https://github.com/typst/typst?tab=readme-ov-file#pronunciat...
Huh, I was reading it as “typist” all this time (and will probably continue).
I noticed quite a few people must do that because I have heard that pronunciation a few times already IRL and in videos. Some people also write it that way, a search here in the comments results in 4 matches.
I keep reading it as tüpst.
I agree but I'm thankful that it's a very searchable but still related name at least.
[dead]
[deleted]
Typst is entirely open-source as well. Only the online overleaf-like system is proprietary.
> Compilation is faster, but so much more time is spent writing than typesetting.
Continuing in your vein of writing dismissive comments, the moment you actually start caring about how things look in your documents (you know, the reason why people use LaTeX), typesetting starts taking up a non-trivial amount of time. Not in the act of setting up the typesetting, but actually debugging it.
I do care how my things look, I've written books, papers, reports, CVs, slides and posters (the last two was admittedly painful). I think I reacted to a very dismissive tone towards LaTeX from typst fanboys who cannot imagine why someone would still use LaTeX, but thinking about it - I don't like the tone of my message either so I'll delete it.
Yes more
Markdown is an awful choice - it has no definition, and it is difficult once you need something more complicated that a paragraph with a header (for example: a list with multi-paragraph items, forced line break etc).
Typst seems to be the product of a commercial company - fully controlled by it. That's not appropriate as a foundation for document authoring by "the public".
I am also worried about the rust-centricity, seeing how rust is somewhat of a moving target.
What do you mean the rust-centricity?
Some people have this weird idea that because Rust ships new versions very often (every six weeks, like a web browser) this means it's unstable. They see rust 1.90 and they're like "Oh no, that's dozens of incompatible versions" rather than "Wow, over ten years of commitment to compatibility".
[flagged]
Can you clarify what you mean when you say it can be taken closed-source at any moment?
Do you mean that future iterations of the software could be closed source?
As far as I understand, they can't just revoke the existing open source license for the existing already distributed software, and if they did decide to move forward from here with closed source distribution, the community would be free to just fork the existing codebase and continue working on it.
how? as a copyright holder you can at any time relicense code as proprietary of course, but that neither revokes the existing licensed code, nor is at all unique to the apache license?
Typst is a markdown plug-in. It is a productivity tool. It lacks the standalone nature of LaTeX as a language and proper extensibility.
How does a project with a built in package manger and a wide variety of packages lack "proper" extensibility?
Smaller community compared to LaTeX may lead to perceptions of lacking "proper" extensibility. For users needing niche or low-level typesetting capabilities, LaTeX’s mature and highly flexible system may still feel superior. Build-in package manager does not necessarily 100% guarantee full extensibility as in crazy Latex macros ;-) As I said, it is a young project and young company, it will grow in time.
Proper as in widely adopted as https://ctan.org. Yes, great to have package manager. Typest is a very young project and company.
Huh? Other than borowing some of the syntax, Typst is completely unrelated to markdown.
I had a feeling that it is similar to R markdown https://rmarkdown.rstudio.com R markdown is similar in capacity one can mix R language, but since syntax is Markdown they kept the name.
Yes, I meant, markdown syntax. Don't get me wrong, it is a nice project. I like how they adopt Rust.