Not OP, but I can comment on my anecdotal experience switching.
Typst is great. I had been using Markdown with Pandoc to write a book. I frequently needed to use raw LaTeX commands, and it was mostly OK but I had a few frustrations with my setup. The biggest was time — my Makefile process was taking several (like 10+) seconds to render everything and that was really tedious when I was trying to get TikZ drawings perfect. My other frustrations were floating figures never appearing where I wanted (common complaint, I think) and weird font issues with certain math symbols in code. (I settled on JuliaMono, which was OK but the experience wasn't a happy memory.)
Maybe six months ago I decided to try Typst. I went through the tutorials and made something basic the same day. Got comfortable and eventually pasted my entire book into Typst and started the tedious process of finding and replacing until it compiled. I still occasionally find a \times or something that I missed.
Unlearning backslashes was the hardest thing for me.
The next hardest thing was switching from TikZ to Cetz. Cetz is pretty good, but just like TikZ it takes an investment to learn. I tried to have AI translate my figures and it was not very successful. Someone wrote a webapp that can translate Typst to LaTeX and the reverse. It is a good way to get started on changing figures, but you'll have to clean up its output by hand a lot.
Though I used LUA LaTeX, I never did find any uses for its scripting. With Typst, I use it all the time. Functions are really easy to write. I recently wrote a REPL formatter to show inputs and outputs in code. I'm happy with it and ought to publish it. My only complaint is that all functions are pure functions; there is not a way (that I know of) to share state from one function invocation to the next.
The templates on the Typst universe are pretty OK, but we need more. I will have to change some of the formatting decisions in the book template I'm using.
One thing I've encountered that I could do in LaTeX that I can't (easily) do in Typst is labels on a NiceMatrix. Otherwise, I've felt like I could do everything in Typst that I needed from LaTeX.
How difficult is creating templates from scratch? I generally use a document class like lecture[0] or report[1] in LaTeX but a quick search hasn't turned up anything similar for Typst.
It's much easier than latex in my limited experience. For example I wanted to reproduce the 400-line .sty file I use for submitting assignments in the maths course I am studying in my part time. I have evolved that from something I found in someone's github over 3 years and it's still not quite right in some boring ways. This is 60 lines that I did in one afternoon and already it does everything the other one did and some things better than the old one.
> My only complaint is that all functions are pure functions; there is not a way (that I know of) to share state from one function invocation to the next.
Indeed user-defined functions are pure. You can work around it like the suiji package[1] does: have the function return a value that you pass as argument to the next call.
Yeah like wjholden said it's not hard. It takes a bit of adjustment but most of that ends up with simplification. For example, where on latex you use asmsmath and you need flalign, align and a bunch of other stuff on typst you just use the built-in equation setup, and customize it a bit if you want to (eg if your standard equation env in amsmath is flalign/flalign* then in typst you can just once set up those params (how you want it indented/aligned/padded/numbered) and after that $ block of equations $ is aligned and numbered the way you want with no further fuss. You can also do things like have a labeled equation block that only gets numbered if you end up using the label and the number goes away if you edit the reference away etc.
Typst is great. I had been using Markdown with Pandoc to write a book. I frequently needed to use raw LaTeX commands, and it was mostly OK but I had a few frustrations with my setup. The biggest was time — my Makefile process was taking several (like 10+) seconds to render everything and that was really tedious when I was trying to get TikZ drawings perfect. My other frustrations were floating figures never appearing where I wanted (common complaint, I think) and weird font issues with certain math symbols in code. (I settled on JuliaMono, which was OK but the experience wasn't a happy memory.)
Maybe six months ago I decided to try Typst. I went through the tutorials and made something basic the same day. Got comfortable and eventually pasted my entire book into Typst and started the tedious process of finding and replacing until it compiled. I still occasionally find a \times or something that I missed.
Unlearning backslashes was the hardest thing for me.
The next hardest thing was switching from TikZ to Cetz. Cetz is pretty good, but just like TikZ it takes an investment to learn. I tried to have AI translate my figures and it was not very successful. Someone wrote a webapp that can translate Typst to LaTeX and the reverse. It is a good way to get started on changing figures, but you'll have to clean up its output by hand a lot.
Though I used LUA LaTeX, I never did find any uses for its scripting. With Typst, I use it all the time. Functions are really easy to write. I recently wrote a REPL formatter to show inputs and outputs in code. I'm happy with it and ought to publish it. My only complaint is that all functions are pure functions; there is not a way (that I know of) to share state from one function invocation to the next.
The templates on the Typst universe are pretty OK, but we need more. I will have to change some of the formatting decisions in the book template I'm using.
One thing I've encountered that I could do in LaTeX that I can't (easily) do in Typst is labels on a NiceMatrix. Otherwise, I've felt like I could do everything in Typst that I needed from LaTeX.