I understand that, just like any tool that has sufficiently many users, (La)TeX grew exponentially in terms of the number of features it has. I like the its core, and I also like the ability to write scientific texts somewhat conveniently. I haven't used Typst yet, but it looks to be something I wanted for quite a while: similar convenience to LaTeX and yet much more simplicity.
To be fair, though, Markdown + KaTeX and MathJax are kind of everything I need right now. Jupyter Notebooks can render enough LaTeX formulas for me to use it when I needed it, even in the university when I'm writing some CS algorithm overview/tutorial or need to do some calculations and hand it in with the explanation. Whenever we had labs in Physics I would do all the calculations in Jupyter Notebooks and that actually looked pretty good. And for my personal blog, I just set up the KaTeX + Hugo which I love: the convenience of Markdown + LaTeX is enough.
This being said, I'm sure there are many people who still have to write papers and would find it useful, but at least for me LaTeX is not a standalone tool that I would use anymore.
Also, part of the value that LaTeX has is an enormous amount of templates that I don't understand but I use them because I have to (e.g. when writing a thesis - it has all the right typesetting, formatting and so on) or because they look very good (I still maintain my Resume in LaTeX format. This is hard to replicate or capture with a new system.
EDIT: Oh, and also Mermaid.js which is now integrated into both GitHub Markdown and Hugo is wonderful for a very small version of TikZ. Although, it is very inconvenient for my taste, but it's still very useful.
I was looking for a way to procrastinate on my thesis writing, maybe I'll convert it all to typst!
More seriously, I am really following this project closely, and now that it's open source I'd like to see if its possible to add the key libraries my field needs: mathpartir, and something like semantics? especially if typst can provide better syntax and errors!
Unfortunately Typst is completely incompatible with LaTeX and its packages, so you either have to go back to working on your thesis or procrastinate even more by reimplementing these yourself!
To be honest I wouldn't recommend it just yet. Right now Typst doesn't expose that many layout primitives for math -- stuff like fractions are special-cased in the compiler. It all should be theoretically possible -- technically everything you need is there -- but from looking over the documentation and experimenting with this my guess would be that it would feel more like implementing your own layout engine with Typst's programming language than gluing existing stuff together.
Very cool, thank you for open sourcing it! I'd like to try it out for documenting formal semantics of programming languages, and this FOSS release makes me comfortable doing so :D
I found the paper describing the system very interesting when it was on HN before:
I really like the default choices (floor as a “function”, lots of latex heritage, …). The first example is a bit weird though: the word “The” is not left aligned as it would be in a typesetting system, taking perception into account, but merely bounding box aligned with the word below. In practice the beginning of the sentence looks slightly off to the right.
While we’re nitpicking, the space between the heading and the body in the example (ie. the line height of the heading) is too narrow and makes the first line look cramped.
Except that \left\right is almost always the wrong solution. It's one of my pet peeves when collaborating on papers. Your parentheses shouldn't scale all the way up and down your equation, unless you want them to be disgustingly tall (just try \left( \int_0^1 \frac{dx}{x} \right) to see what I mean). You should choose \big[lr], \bigg[lr], \Big[lr] or \Bigg[lr] based on what looks good, and the computer is not good at guessing which one will be visually pleasant.
in latex, when typesetting math, by default, parentheses (and other brackets) are always a constant height. So if you put something which is taller than one line in between parentheses, it will look strange, with the content sticking out past the parentheses at the top and/or bottom.
The fix for this (in latex) it to mark pairs of matching parentheses with the macros `\left` and `\right`, (for example: `\left( \frac{x}{y} \right)`) which informs latex that it should figure out how tall the content between the brackets is, and then resize the parentheses appropriately.
If any of the project maintainers are seeing this — I am trying to sign up for the public beta, but the verification email never arrives. I've confirmed that I have submitted the correct email address. Any ideas?
So, I will try it once I have time, but how doable is it to bent this thing to your will? Because the main problem I have with latex is that I am often trying to do something, which it just isn't made to handle.
For example, I often find lots of hyphens and justified text hard to read, so I try to get latex to not use justified text and to never hyphenate.
However, latex seems to be really bad when you want to do unconventional stuff like that, having to use hackey workarounds which often cause errors all over the place.
Typst is still quite early in development, so there are missing features. Having said that, based on the docs it looks like unjustified text without hyphens is already possible.
I was just curious. You're doing this kind of stuff? https://tex.stackexchange.com/a/269914 It seems to give an alternative for this, but I have no idea about the pitfalls and downsides of this.
> For example, I often find lots of hyphens and justified text hard to read, so I try to get latex to not use justified text and to never hyphenate.
The obvious problem that comes to mind is links; otherwise I don’t see the problem. And I can’t think of an alternative to LaTeX that would do better—certainly not Word.
As a computer science researcher, I have hundreds of LaTeX macros, basically a DSL for my specific field of research, where I more or less write out natural language and it comes out as formulae with all the specific symbols and stuff.
I think for people who write LaTeX in this kind of professional capacity, the macro language is the killer feature.
But I could see fields light on formalism embracing something like this over Ms word, if there was a nice Toolchain for collaborative writing and versioning.
LaTeX (Well, LuaTeX) powers my E-ink newspaper (https://imgur.com/a/NoTr8XX), but I've been curious to use it as a vehicle to try out some of these alternatives and see if they can put together a non-trivial layout.
Wow this is cool! I made a sort of similar e-ink display piece that shows your current song on Spotify - https://github.com/CampbellOwen/NowPlaying. Your project is making me want to try another e-ink project! I'm especially impressed with the overall polish of the enclosure and hardware, that's always my weak point.
I saw you mentioned you wrote a custom driver for the display controller. I'm curious how you found that process? I got the feeling a lot of these devices aren't documented very well, but that sounds like a fun project to tackle.
Technically it's a driver, but in practice I'm just talking over a chip via SPI. It's weird and quirky SPI - I think this chip originally just had an I80 interface (Intel 8080 protocol) and then they added a SPI frontend that internally translates to I80. That means you have to SPI with I80-ish chip select semantics etc. which is not what the SPI APIs in the ESP-IDF or Arduino frameworks do by default (leading to things not working unexpectedly), so I had to "bit-bang" CS. Aside from quirks like this it was pretty simple and just following the datasheet to stream the right commands and data.
One thing that made it functionally worth it (aside from the hacking fun and learning) is that E-ink panels perform best if run at a particular drive voltage ('VCOM') that is determined at manufacturing time and attached as a little sticker to the flex cabling sticking out of the unit. I stumbled upon this while reading various data sheets, and as a result my custom code will set the correct voltage, driven by config. If I had used a random lib I probably wouldn't have encountered this.
That said, I've found there's very cool projects out there that go a level deeper. Instead of using an EPD controller like the IT8951 as a convenience, this project runs E-ink panels directly off a MCU by implementing the waveforms directly: https://github.com/vroland/epdiy
After reading the panel datasheets I find that approach quite interesting, and am considering doing fresh Rust impl of that as well.
The Spotify project looks cool! I dig the dithering style. Would like to try a multi-color panel as well.
Thanks for the reply, that's great info! I'll keep an eye out for the VCOM stickers, I had no idea that was a concern.
The waveshare e-paper screens I'm using come with some decent sample code for driving them, and I just found this Rust implementation that looks interesting as well https://github.com/caemor/epd-waveshare.
I do agree with you though that the idea of driving them directly with the waveforms sounds quite fun. I've seen some interesting stuff online where people have been customizing the waveforms to get even more performance out of them (maybe partial refresh would be fun to look into as well).
As someone who's only exposed to embedded development in a hobbyist way, that epdiy repo looks quite useful, thanks for linking that.
Now to find the time to add on yet more personal projects :)
SILE also has an XML format. (That is, SILE can read arbitrary XML and format it according to document class rules, but also, separately, SILE itself has an XML format.) https://sile-typesetter.org/manual/sile-0.14.5.pdf#page=27 This theoretically makes it easier to use a GUI editor, or to output XML SILE documents from, say PHP (invoices from a webshop, for example).
Might be worth trying :-). BLE has the lower data rate so the transfer takes overall longer, though. Wonder how that adds up.
I already have tuned things to lower the RF power output of the esp32 Wifi habitually - there's a Fritz Wifi repeater just across the room in a corner with near line of sight, so the little thing doesn't exactly have to strain to reach the hotspot.
Also curious how the optimized -S3 and the upcoming -C6 do in the various transfer/power equations.
So, I'm a moderately-experienced LaTeX user. What is the argument for me switching to typst? I read the repository's README, and would be tempted to consider it as a complete newbie with limited needs, but I couldn't find the compelling argument for ditching (La)TeX in favor of this. Especially given the size of the LaTeX community and availability and accessibility of (sometimes hacky) LaTeX solutions for a zillion situations.
1. Compilation is ridiculously fast.
2. The language is miles more intuitive, and doesn't require nearly as many hacks. In a handful of hours using typst I've written much more interesting things than I ever would've attempted using latex macros. This might be less important for you, but my latex usage is intermittent, so I've always forgotten it by the next document I write.
I'm not a particularly hardcore latex user, but in my observation it's the opposite: Because it's a "real" programming language, not just a macro system, it scales much better to complex tasks. Even simple things generally take fewer characters than latex.
E.g., during the preview I built a very basic CAS with it, for simplifying and differentiating simple math expressions, in the span of an afternoon.
Apart from writing papers, I also use LaTeX to make presentations accompanying the papers (beamer). I make heavy use of tikz to create figures (I work in geometry-related field). The workflow is painful (slow compilation, bad overleaf support) to say the least. If typst could meet this need in the future (seems lacking at the moment), I won't hesitate to make a switch.
Cool! LaTeX is my major workflow nowadays and I even didn't believe there could be other options in terms of scientific paper writing. LaTeX is decades old, and it's time to make some changes with a new typesetting system that has less historical baggage and is simpler and faster.
Little offtopic, but do you use some LaTeX editor (like overleaf) or another tool with LaTeX export (Obsidian may be)? Just interesting because I', trying to make scientific paper writing solution based on the project RedForester (http://bit.ly/3JMLbwL) and think about LaTeX export option.
I have spent probably too much time trying to gain a comfortable level of proficiency with LaTex and I have not been able too. Maybe I just don't use it often enough but I always now find myself just using HTML/CSS instead. Even when the thing I'm laying out is specifically just something to be printed.
I feel similarly about LaTeX and Vim. I like them. They are interesting. I appreciate the history around their development and use. But I just cannot convince myself they are worth learning.
The issue with latex is that I don't personally use it every day, and I suspect many people are in that camp. When you just use it ocassionally, all that syntax just falls out of your brain, leading to a frustrating loop where you're constantly relearning latex.
In comparison, I use vim keybindings every day. As a result, despite how esoteric it may be, it's well ingrained into my muscle memory.
I feel your struggle. Especially for these cases, I am always writing my own personal documentation (recently switched to .org files for that, which makes navigation pretty convenient in Emacs). It seems redundant since you can find all this knowledge on the web (or ask an AI), but my selection, the context and examples I add and how I organize it makes it especially useful for me when I come back later and need to remember what I have learned.
If you need to share a professional document that involves mathematical expressions and equations, LaTeX is very helpful as a tool to use. The need arises if you are a professional or student registered in a course in mathematics or computer science. It's much easier to type multiple lines of equations, with the equation signs aligned, in LaTeX than in Word.
It's a bit of a grind, but you can learn the fundamentals of LaTeX in less than a week if you have an hour a day. It was actually a requirement to learn LaTeX well enough to submit a basic report within 1-2 weeks, as part of a first-year computer science course at the University of Toronto.
The course instructors provided a basic LaTeX template (which included some instructions as a guide to how LaTeX worked), and also linked to free online tutorials for more in-depth instructions, which included LaTeX Tutorial from memory, at https://www.latex-tutorial.com . I wrote out notes from articles 01-09 and a few others on the website (as the other articles were less relevant to my purposes) to learn the basics, and then reinforced and developed my understanding of how to use LaTeX by writing future assignments in the course with it.
As an illustration for how LaTeX solves a nice problem, a recent popular submission on HN explored the complexity of typesetting a mathematical document (named "How did Dennis Ritchie produce his PhD thesis? A typographical mystery"): https://news.ycombinator.com/item?id=35177110 . You might not have as much of a need to learn LaTeX if you don't regularly share lots of mathematical equations, but it's relatively quick to learn. LaTeX has also been quite useful to me for writing a professionally-formatted resume, which has been much easier to update than when I formatted my resume using Word.
Yeah for math stuff I loved LaTeX. I even solved large equations directly in the document, was so easy to read.
But once I had to write some pseudocode, make some larger tables, or embed images I suddenly longed for Word. Word certainly can make me curse, but it was still far easier than getting that done in LaTeX.
I used LaTeX in school too and I agree theres probably no better tool for math-heavy documents.
I stopped using it for my resume because I was too frustrated with essentially re-learning latex basics every time I wanted to make minor changes to content or format.
> It's much easier to type multiple lines of equations, with the equation signs aligned, in LaTeX than in Word.
I actually disagree. The equation editor in word is really quite good (if a little laggy sometimes), once you learn the shortcuts. Being able to see your fractions laid out properly is a massive productivity boost, and makes it much easier to quickly find the part you want to edit. The dealbreaker for me is the lack of equation numbering, without doing quite a few hacks.
Personally, I'd still take the LyX math editor over Word though, for the macros and better performance.
> I have spent probably too much time trying to gain a comfortable level of proficiency with LaTex and I have not been able too.
I got quite comfortable with LaTeX after I read a book. For me it was the Kopka & Daly book. Maybe these days it's a bit old-fashioned to get familiar with a programming language, by reading a book? But I think it works.
You can develop muscle memory for vim, less so with LaTeX. Vim motions are absolutely worth learning, even if you don't use vim itself - it is the most efficient way to navigate and manipulate text.
My main problem with vim is navigating and manipulating files rather than text.
I use vim fairly frequently for quick edits and small changes but as soon as the scope of the change starts to span more than one file vim starts to feel really frustrating really fast (to me).
Well, if you learn Vim you will use it every day (if you ever program, or work with any markup). And that's even if you never open the Vim editor itself; the bindings are available everywhere.
That's fascinating. I genuinely believe you, but in my personal experience, I've felt the opposite way.
A first-year computer science course I took required all the students to develop a basic understanding of LaTeX in 1-2 weeks, and we used LaTeX the rest of the term. I then got used to LaTeX commands, because in my personal experience, I've had plenty of opportunities as part of coursework to use LaTeX (oftentimes, it was required). In the meantime, I haven't yet learned Vim because I've read that it takes a while to learn—at least four weeks of consistent practice, often even longer, e.g. according to this discussion on HN: https://news.ycombinator.com/item?id=15414544
For myself, as someone without personal experience using Vim, LaTeX is essential to my work with commands that I've internalized, whereas Sublime Text and IDEs like Visual Studio Code and PyCharm have been great for editing code (though I recognize that Vim can be an essential tool for editing remote files). I'm curious to learn from others about why Vim can be a better tool for certain tasks, even for local files, in contrast to Sublime or IDEs.
I'm not really into LaTeX but I am really into the specific problem of authoring documents with a certain (user-defined) look-and-feel by leveraging some (very user-friendly) DSL that is close to markdown but with more features
Does Typst support themes so that I can achieve that? Are there other tools I should be aware of?
Are there tools that do all of the above and have themes defined as CSS?
I'm aware of RMarkdown + Knitr which is a fantastic combo (and honestly my inspiration for digging into this problem) but that's obviously still too much "programming" for wider adoption
Maybe take a look at pandoc before writing your own DSL. You can use it with --pdf-engine=weasyprint, so your DSL can be Markdown, reStructuredText, Org-mode, ...
Thank you. pandoc may be part of the glue too, I have to think about it. I probably do want my own DSL as none of the existing ones apply to my "domain", "specifically"
Starting my own company to solve other people's use cases :-)
I'm a business "end user" who also loves programming. After 10+ years being a part of both worlds, I feel like I have a very strong vision for how these tools should work, so I've decided to build my own. It's a daunting task, but if I can leverage existing tools, maybe it's just a matter of gluing everything together neatly
In the case of CVs/resumes, I've never liked LaTeX CVs when I encountered them... Most of the time they just looked horrible and messy. Or they were for some reason being rendered without anti-aliasing and text selection broken when exported as a PDF. Probably because people gave up trying to get it to work.
I'd rather use something like JSONResume, Markdown, or even HTML/CSS and printing to PDF. Google docs also has a few nice CV templates.
- have a good template (most of the conferences & some other parts of academia provide this),
- use a decent IDE (many LaTeX editors I tried in the past were great, now I'm fine with just vim),
- stick with the basics (text, tables, formulas, images; it's easy to Google it).
The last point is what matters the most. As soon as you want to change the margins, stylize the table in a different way, tune the text so it looks exactly as you imagine, is when things get complicated. People expect M$ Word and get frustrated with LaTeX. From what I see, Typst solves this in a different way -- it doesn't provide the ability to do that (yet, when it provides it, it will become as complicated as LaTeX).
Why even learn LaTeX or TeX? The Internet is full of recepies. That all you need. Why learning new syntax for formulas when you have a mountain of resources about LaTeX formulas to typeset anything you need.
There are a few "solved problems" in computer science, and typesetting documents is one of them. The progress is made by building TeXmaker, TeXstudio, TeX Live, MiKTeX, XeTeX, LuaTeX, etc. Not segmenting the space.
> There are a few "solved problems" in computer science
It's like saying transport is solved when the wheel was invented. Yes LaTeX is great, but it lacks so many decent things, such as good error message, or incremental compilation. Typst is going in the right direction, not segmenting the space.
I don't think the fact that you need to look up and copy recipes and download packages to do most complex formatting is a strength of LaTeX, and one of Typst's stated design goals is to make formatting composable enough that you don't need a package for everything. But guess only time will tell whether that works out.
The other selling point you're missing though is that Typst's compiler is designed for fast incremental compilation, which makes the Typst live preview and Multiplayer/Google Docs-style collaboration experience significantly nicer than Overleaf's, where a change to a large document could easily take 30 seconds or more to render.
Typst still has a syntax that one needs to learn (or Google it).
Overleaf's slowness is not a LaTeX issue. I was using LaTeX IDEs with near-instant previews more than 10y ago.
Then again, why such emphasis on the preview? Both LaTeX and Typst are not WYSIWYG. The content is already in front of you. There's space for improvement, but building new systems is not the most optimal solution.
In my opinion, markdown, LaTeX, HTML, ... is all a cognitive overhead distracting you form writing your content. That is why I started to work on MonsterWriter [1]
Do note[1] that TeX itself was written as a result of Knuth being unsatisfied with the typesetting of then-newly reissued volume 2 of TAoCP. I don’t know if Lamport encountered the same yak with LaTeX, but I do know he’s a distributed systems researcher, not a programmer in a relevant area :)
LaTeX was and is just a collection of macros on top of TeX.
Few people have every used TeX itself, compared to the massive amounts who have used LaTeX; but if you haven't used raw TeX you should try it sometime; it's surprisingly how simple and powerful it is.
I agree. However, it can be tough finding documentation how to use plain TeX. I find that increasingly I'm using OpTeX, which is a much smaller set of macros than LaTeX, simpler this use, understand, and reason about.
> However, it can be tough finding documentation how to use plain TeX.
I hate to be that guy, but... the TeXbook works and recently (finally!) had an official ebook release, illustrations and all. It’s a peculiar value of “works”—personally, I had to be stuck home sick for a couple of weeks with no reading material to get through it from beginning to end, it doesn’t really start to get rewarding unless you get through at least half of it or so, and I went away from it thinking that I like neither Knuth’s way of writing nor his approach to programming language design (“computers follow rules”). But it still has a lot of helpful stuff.
When it comes to more systematic descriptions and connections with more conventional programming-language ideas (it took me some time to recognize that TeX uses what is essentially dynamic scope throughout), I like TeX by Topic[1].
The TeXbook works well - but many people don't really know what they really want to make it look like, and want guidance - which is what LaTeX provides.
TeX itself is quite powerful, but you end up finding you're reinventing a macro package.
But you can use it basically as markdown and it formats things quite well.
I ended up using plain TeX because I learned from Spivak's The Joy of TeX. It teaches AMS-TeX which is just a thin veneer on top of plain. Before I stopped shaving the yak, I'd setteled on eplain which was just enough to make plain really practical.
GPT-4 probably makes it much easier to write, but modifying latex will still be a pain. Unless you want to copy it into another window, tell ChatGPT what modification you want, and then copy it back.
.tex files work fine in VSCode with the Copilot AI integration. Haven’t tried actually writing LaTeX with it but some cursory investigation shows that it seems to be working well. I suspect it’ll perform decently for basic modifications!
(Side note: it’s always impressed me how Copilot works well in even the more obscure languages)
> Unless you want to copy it into another window, tell ChatGPT what modification you want, and then copy it back.
There will be no copying. Plug-ins exist or will exist, such that you will be able to ask GPT-4 directly from within your editor and the plug-in will pass the contents of the document or selection alongside your prompt. Conversely the plug-in for your editor will replace the contents of your document or selection with the output of GPT-4.
I think, if I am reading it correctly, that was not a code example, that was actual code. count and nums are variables being defined, and fib is a function. Then the function is being called to build the table (you can see str(fib(n)) in the second to last line)
Latex is "typesetting-complete". This language is not, so it's not a replacement. For instance
* The syntax does not use escape sequences for functions/symbols, i.e. phi instead of \phi or floor instead of \floor. You will inevitably run into situations where, for instance, you want to write the letters phi, and have to resort to some ugly hack to write the natural language. This is not okay.
* There is reasonable syntax for text-formatting in bulk (whole paragraphs), but if you want to format a single word or sentence, the syntax seems to involve way too much work.
A side concern: This uses a mix of markdown-style formatting (asterisks for bold text) and programming style formatting. Personally, I think this makes it difficult to visually parse complex documents.
Your first concern is just wrong, afaik content and code live in different syntactic worlds. Code in content has a "#" sigil (and ends at some point) and content in code is delimited with square brackets. Your second concern is weird. For one off things you definitely just wrap it in a function call `#myweirdthing[blabla]`.
Last remark: you're bikeshedding. Seeing your previous remarks i'm not sure you should. Makes complete sense to have a simple powerful syntax and a handful of shortcuts for markdown-level common typography.
I'm absolutely not affiliated btw, just thought about very similar stuff for some time and been waiting for the release. I would've done a couple things sightly differently but the big decisions look very sensible and i'm sure they thought about it for a long time. Good work releasing this and thanks for the free software work!
The first bullet point is incorrect. In normal text, you use # for functions and symbols, i.e. #sym.phi or #emph. In math blocks, you don't use # for stuff like phi or floor but that's because it interprets everything as a function or symbol, with an exception for single letters. If you want any plain text in a math block, whether it's a function name or not, you just put quotes around it. If you want implicit multiplication, you need spaces between each letter.
I also don't know what you mean by the second bullet point. If you want repeatable single word or sentence formatting, you can define a function for it, which there is easy syntax for.
> If you want any plain text in a math block, whether it's a function name or not, you just put quotes around it.
Math fonts and plain text fonts should be different. If you put quotes around something, you get plain text font.
> If you want implicit multiplication, you need spaces between each letter.
Probably the first rule of any good typographical system is that it should not force the user to change how they normally write (barring special exceptions). Any syntax for typography should be additional to this, which is why escape syntax is so good. Forcing the user to put spaces between variables is a no go.
> Math fonts and plain text fonts should be different. If you put quotes around something, you get plain text font.
Why? LaTeX defaults to Computer Modern for both text in math and normal text. And if you want to change just the math font in Typst I'm pretty sure you can do that with a one line set rule.
> Probably the first rule of any good typographical system is that it should not force the user to change how they normally write (barring special exceptions). Any syntax for typography should be additional to this, which is why escape syntax is so good. Forcing the user to put spaces between variables is a no go.
Did you have a habit of putting backslashes before everything before you used TeX? This is a nonsense standard. The math that appears in papers is mostly special characters and so it makes sense to prioritize the syntax for that over implicit multiplication, which is often written with spaces anyway.
If you want to write the letters phi, you can write p h i if you mean implied multiplication or "phi" if it should be a single unit. In general, Typst's syntax is designed to make every sequence of characters expressible, just like TeX.
> The syntax does not use escape sequences for functions/symbols, i.e. phi instead of \phi or floor instead of \floor. You will inevitably run into situations where, for instance, you want to write the letters phi, and have to resort to some ugly hack to write the natural language. This is not okay.
Down in the README it's written that you need to put identifiers into quotes to write them in math blocks
> Latex is "typesetting-complete". This language is not, so it's not a replacement.
Based the documentation (and the title), it isn't meant to be _a replacement_, but rather _an alternative_ and that's totally OK. Not everything needs a drop-in replacement.
> i.e. phi instead of \phi or floor instead of \floor. You will inevitably run into situations where, for instance, you want to write the letters phi, and have to resort to some ugly hack to write the natural language.
I thought exactly the same: What if I want to write the product of f,l,o,o,r? Well, the "ugly hack" is explained in the readme: You just write "floor" with quotes instead of floor. Seems alright to me ;-)
this isn't even a hack -- in Typst you write `$a b$` for implicit products, `$ab$` is always parsed as an identifier and you'll get a compile error if its not defined.
Latex is horrible but makes beautiful documents and the relevant world either uses latex or Mircosoft Office. Why use anything else? Latex lives by the community of people who use latex for their work and to collaborate. All know 20 year old latex documents will be compilable in 20 years. No competitor outside of Microsoft can survive that.
> All know 20 year old latex documents will be compilable in 20 years.
Except it's not. For example, in 2021, the NeurIPS template compiled differently in different versions of TeXLive (https://tex.stackexchange.com/questions/598567/different-pdf...). To my knowledge this change of behaviour has not been addressed in TexLive.
> Latex is horrible but makes beautiful documents and the relevant world either uses latex or Mircosoft Office. Why use anything else?
And why invent anything new when there are already existing alternatives? Why invent C++, Rust, Zig when there already was C? Why invent Clang when there already was GCC? Why invent Git when there was already CVS? And so on. (Maybe not the best examples, but that's what I could think of on the spot.)
The point is that there are aspects in which the current solutions (in this case, LaTeX) fails, and new systems can address them, since they tend to have much more liberty in the design space than the older system.
I as a graphic designer have been using ConTeXt for more than 10 years now, and I think it's amazing for producing more 'custom' documents and handling typography and stuff. LaTeX and Word fall too short in that purpose.
I guess Typst more of a tool oriented for programmers and computer science people as it seems targeted to give some programming power right into their documents. I may be wrong, but I don't see LaTeX that approachabe from that way (unless you have a decent knowledge of TeX and you are not prone to headaches caused by backslashes).
It seems to me that LaTeX is primarily used as academic gatekeeping. This is one step better, but why a new DSL versus a library to build your layout representation from a common language?
People familliar with LaTeX will use it in places where it is definitely not required and sometimes even where it’s arguably not a very good fit, such as for presentation slides, illustrated posters laid out in complicated ways, or in one notable case a diagramming package with automatic graph layout, plotting, symbols for circuits, and a boatloat of other things (TikZ).
It might be difficult to believe given the unfriendly failure modes characteristic of a macroexpander and an abundance of dusty corners, but LaTeX really is very convenient for a proficient user when the problem fits (e.g. not a magazine).
I have to disagree to "arguably not a very good fit, such as for presentation slides." I have to make regular work presentations with a lot of math. There are two choices: Powerpoint and Latex/beamer. While the latter is far from painless, powerpoint takes much more time and is much worse to revise.
Why do you say that LaTeX is gatekeeping? My experience is that it’s easy to get LaTeX help, and most people don’t care if you write your paper in Word.
A big chunk of academic papers are done in Word, even in mathematics.
I think a DSL really makes sense here, because that’s what you spend half of your time dealing with—the syntax—so there is a lot of room to make it easier.
I understand that, just like any tool that has sufficiently many users, (La)TeX grew exponentially in terms of the number of features it has. I like the its core, and I also like the ability to write scientific texts somewhat conveniently. I haven't used Typst yet, but it looks to be something I wanted for quite a while: similar convenience to LaTeX and yet much more simplicity.
To be fair, though, Markdown + KaTeX and MathJax are kind of everything I need right now. Jupyter Notebooks can render enough LaTeX formulas for me to use it when I needed it, even in the university when I'm writing some CS algorithm overview/tutorial or need to do some calculations and hand it in with the explanation. Whenever we had labs in Physics I would do all the calculations in Jupyter Notebooks and that actually looked pretty good. And for my personal blog, I just set up the KaTeX + Hugo which I love: the convenience of Markdown + LaTeX is enough.
This being said, I'm sure there are many people who still have to write papers and would find it useful, but at least for me LaTeX is not a standalone tool that I would use anymore.
Also, part of the value that LaTeX has is an enormous amount of templates that I don't understand but I use them because I have to (e.g. when writing a thesis - it has all the right typesetting, formatting and so on) or because they look very good (I still maintain my Resume in LaTeX format. This is hard to replicate or capture with a new system.
EDIT: Oh, and also Mermaid.js which is now integrated into both GitHub Markdown and Hugo is wonderful for a very small version of TikZ. Although, it is very inconvenient for my taste, but it's still very useful.