Gribouille 0.3.0: A Grammar of Graphics for Typst
128 points
3 days ago
| 7 comments
| mickael.canouil.fr
| HN
matijsvzuijlen
5 hours ago
[-]
Why are all the parameters full words except 'labs'? I find it jarring because to me 'lab' is short for laboratory, not label.
reply
nxobject
2 hours ago
[-]
I suspect for consistency with ggplot - the same reason why ‘aes’ is shorthand and everyone forgets that it stands for “aesthetic”.

https://ggplot2.tidyverse.org/reference/labs.html

reply
matijsvzuijlen
1 hour ago
[-]
Thanks, that makes sense. I actually just parsed aes as related to encryption without even considering how weird that was given the contect.
reply
bestouff
4 hours ago
[-]
He's open to API suggestions, you should open an issue
reply
matijsvzuijlen
1 hour ago
[-]
Yes, I will do that!
reply
stared
2 hours ago
[-]
Interesting! If I get it right, the API is in the spirit of Observable Plot (https://observablehq.com/plot/), less ggplot2.

In any case, I'm curious whether aes is necessary, or whether it would suffice to drop this function entirely and just use keys in the mapping (similarly for labs). Or, more broadly, whether using patterns from other implementations of the Grammar of Graphics is a conscious decision, or some sort of legacy baggage.

reply
elsoja
39 minutes ago
[-]
It seems to be fully written in native Typst, without any WASM backend. I wonder how is the performance like for complex plots or for documents with a large number of figures.
reply
red_admiral
2 hours ago
[-]
Always pleased to see Typst mentioned. TeX made a lot of choices that made sense at the time, but TeX macros and C #defines especially when nested and/or not properly bracketed to allow nesting are a mess when things go wrong.
reply
flerovium114
2 hours ago
[-]
In what setting are you mixing LaTeX and C code?
reply
red_admiral
1 hour ago
[-]
No, no, TeX macros nested within other TeX macros.
reply
spider-mario
4 hours ago
[-]
What’s with the slanted figures until you hover over them?
reply
unrealhoang
7 hours ago
[-]
This is awesome, is there a way to render the graphics/chart in svg so that we can implement something like hover & popup (with data information)?
reply
alhidade
5 hours ago
[-]
Typst supports SVG output natively.
reply
red_admiral
3 hours ago
[-]
From past experience (may be different now): Typst supports SVGs that are actually vanilla SVGs. The SVG standard lets you embed a HTML page and CSS as a <foreignObject>, which only renders properly in a browser or something that bundles one (surprise!). This is not the fault of Typst and I think Typst is correct not to go down that route.

Just a heads up if you wonder why draw.io (diagrams.net) SVGs display as black boxes.

reply
adamnemecek
7 hours ago
[-]
Typst is the most important open source project of the last 5 years.

I predict a future where markdown and latex are largely replaced by typst. And I couldn't be more excited.

It is such a stepup from markdown and latex. Try it today if you are intrigued.

reply
cryo32
2 hours ago
[-]
Not so sure.

I work with a lot of people in academia who work with LaTeX. I haven't met anyone who knows Typst even exists. And the source material is usually just thrown in Word or LibreOffice.

The problem is also momentum. Do you rewrite 30 years' of CTAN contributions, internal templates/styles and the toolchain off and start again or not? There's not much reason to. And you will hit the same brick walls doing so that you hit with TeX the first time round.

If it is a greenfield, possibly, but all the orgs I've seen using LaTeX have been using TeX since the dawn of time and respect the accumulated knowledge rather than the distraction of a new tool.

reply
lkm0
1 hour ago
[-]
> accumulated knowledge

my experience is the opposite. Due to LaTeX's arcane scripting and the lack of interest people have in learning it beyond "it compiles on overleaf", I'm seeing a lot of accumulated superstition. People copying and pasting preambles with useless packages, unused newcommands. Worse, people sometimes use their group's newcommands without being aware of the native functions, e.g. \beginmymatrix replacing \begin{pmatrix}. Even if change is slow, any amount of Typst adoption is good.

reply
cryo32
1 hour ago
[-]
If it's any consolation we use native stuff including pmatrix :). In fact most of our typesetting is very very plain LaTeX.
reply
vatsachak
1 hour ago
[-]
Academia is stuck in the past in a lot of ways.
reply
cryo32
1 hour ago
[-]
I prefer to think of it as mature.
reply
sieve
2 hours ago
[-]
I like typst. But I am not a fan of the syntax. I use it as an intermediate format on the way to PDF. A document markup language should avoid building a programming language inside it. Pick python, or lua, or whatever.
reply
utopiah
6 hours ago
[-]
I'm not sure either matter to be honest.

It's cool sure, powerful also... but when anybody has access to both vector-based editor and raster-based editor ... but also tools that incorporate them, e.g. rich text editors ... but also entire toolchain going from compilers to libraries all the way to Web based notebook with their editors and running environment that can then output printable artifacts, I don't think there has to be "the" way. They might be a more popular way within a certain zeitgeist but... does one project has to "replace" another one?

I guess I don't really get the passion some people have for "perfect" rendering. I'm fine with just text, then just readible equations below it, then an OK looking graph. I don't actually care if any of those are pixel perfect. I don't get it.

IMHO in terms of actual knowledge transmission reproducibility and interactivity are way more important. They might not look as good and in fact introduce a TON of complexity but I believe it's better than yet another system that is slightly better looking while being slightly easier, for those people with a specific mindset, to setup and use.

PS: still both Gribouille and Typst are cool projects! Just want to make sure I'm not sounding critical against those efforts.

reply
poulpy123
3 hours ago
[-]
I cannot tell the future of typst and gribouille, but for:

> I'm fine with just text, then just readible equations below it, then an OK looking graph. I don't actually care if any of those are pixel perfect. I don't get it.

what you describe is fine for a readme or a blog post, but for books, scientific articles, or any long format, having a good layout and typography will totally impact the end result

reply
zhshnsnnaaka
6 hours ago
[-]
I agree but to me it seems humanity has a terminal case of being unable to separate content from presentation. I can see it in this thread with clamoring for Typst in READMEs etc. If READMEs need to be anything they need to be plain bloody text. Markdown is the absolute maximum. Having some “header semantics” defined is fine as that’s universal in a document but let’s keep it simple guys, OK?

Information needs to be plain and clear. Presentation can be fancy. Let’s keep these very, very different things separate. AI will thank you as well.

reply
practal
5 hours ago
[-]
I agree with that, that's why I am starting with plain syntax first in https://zero.practal.com, because that is really where all the information/logic lives. But there will also be a presentation layer on top of that, building on the information layer, so with time, I would expect it also to subsume much latex/typst functionality. The "header semantics" I already copied from Markdown.
reply
red_admiral
2 hours ago
[-]
If you've ever debugged TeX package conflicts because someone wants "that layout, except with those headers and this font", yes the whole stack needs replacing with something that does not hold all its state in global variables and has a sensible scripting language (LuaTeX never really took off).
reply
TRiG_Ireland
6 hours ago
[-]
My primary use for Typst is pretty agendas for my Toastmasters club. https://typst.app/project/rmyyeU17y51rl6ISSqGji9

Typesetting isn't just for science. I like that it looks good; I enjoy the creative step of experimenting with document design; and Typst is just fun to use.

reply
adamnemecek
6 hours ago
[-]
> It's cool sure, powerful also... but when anybody has access to both vector-based editor and raster-based editor ... but also tools that incorporate them, e.g. rich text editors ... but also entire toolchain going from compilers to libraries all the way to Web based notebook with their editors and running environment that can then output printable artifacts, I don't think there has to be "the" way. They might be a more popular way within a certain zeitgeist but... does one project has to "replace" another one?

cool, why do you think people use tikz? And like generating images programmatically from text is impossibly more powerful than using vector editors.

reply
mastermage
6 hours ago
[-]
For Latex I agree thats definitely. Markdown I am unsure as Markdown is not meant for creating documents but to just have a little Richt Text Markup in READMEs and other Text files. Typst needs a compile step and altough that one is fast as hell it is still different from Markdown that renders directly from the file without an intermediary.
reply
josephg
6 hours ago
[-]
Right; but markdown has expanded beyond that niche. Lots of projects use markdown for other stuff - like mdbook, or for blogs.

I think markdown is a great format for readme files. But for real documentation, the added features of typst are fantastic. Like, being able to write scripts, have figures and custom styling, populate data from JSON files, plugins, typography, numbered sections, footnotes and all sorts of other stuff. Markdown doesn't even support comments properly!

I want typst for blogging, long form articles and documentation. Markdown is great for small stuff. But it doesn't scale.

reply
applicative
4 hours ago
[-]
Ordinary markdowns have had /everything/ you mention for close to 20 years, except typesetting. Academic papers and books, novels, thousands of ebooks, have been written in single file markdowns for 15 years.

Writing directly in typst is good for small things with intense typesetting like ... wedding invitations, advertisements. But it doesn't scale to serious composition by actual writers.

Writing is not typesetting.

All the forms need for the composition of all civilized text were present in word perfect 5.1, which unlike Word, Latex and Typst, permitted no typsetting during the process of writing. They were all recovered in the writers' markdowns nearly two decades ago.

reply
cycomanic
2 hours ago
[-]
I'm not sure what you mean. Markdown compared to typst or latex is extremely limited and using it for books or academic papers is very niche. I certainly would (and have for all my previous publications) prefer typst or latex over markdown. I also don't understand your point about not permitting typesetting during writing. Latex and text are the prime examples of separating writing from typesetting.
reply
josephg
31 minutes ago
[-]
> Ordinary markdowns have had /everything/ you mention for close to 20 years, except typesetting.

Huh? How do you do this stuff with markdown?

reply
Certhas
3 hours ago
[-]
So LaTeX also doesn't scale to serious composition by actual writers?
reply
applicative
2 hours ago
[-]
If they need to do typsetting, as mathematicians in fact do. Mathematics breaks the civilized opposition of content and format, because it involves the invention of symbols on the fly. Reasoning about this is actually quite simple but the typst brigaders have no experience with the history of the topic.

It is universal that the flood of largely automated hackernews typst brigaders cannot make a single post without flatly lying about every other existing instrument. On this site I have never read a single true statement by a typst brigader about latex or markdown, but I have read literally /hundreds/ of lies. If these accounts are real and not bots, the community is fated to die, unfortunately.

I use typst countless times a day, but don't need to lie.

reply
mastermage
5 hours ago
[-]
Fascinating Ideas I love hearing opinions on this, it enriches me.

I do belive that atleast simple files like for example READMEs will stay and perhaps are better to stay as Markdown. One advantage that has is that while scripting is cool, It make the document not plain text readable which is a tradeoff one can argue.

reply
Certhas
3 hours ago
[-]
What's the state for generating websites from Typst?
reply
adamnemecek
6 hours ago
[-]
The problem with markdown is that it's not extensible and that there is no spec. Essentially all READMEs would be better off using typst, they would make for better READMEs.
reply
sbysb
6 hours ago
[-]
I do not think that is the problem with markdown lol. There are lots of problems with markdown, especially vanilla or the more limited versions of it - but really its super power is that it is readable with a regular text editor (or `cat`) and can be rendered without a compilation step.

Markdown is not competing with latex or typst, it is competing with (and has won against) .txt files

reply
Certhas
3 hours ago
[-]
Actually basic typst is as readable as markdown, e.g. this is the example from the webapp:

  = The Typst Playground

  Welcome to the Typst Playground! This is a sandbox where you can experiment with Typst. You can type anywhere in the editor panel on the left. The preview panel to the right will update live.
  
  = Basics <basics>
  
  Typst is a _markup_ language. You use it to express not just the content, but also the structure and formatting of your document. For example, surrounding a word with underscores _emphasizes_ it with italics and starting a line with an equals sign creates a section heading.
  
  Typst has lightweight syntax like this for the most common formatting needs. Among other things, you can use it to:
  
  - *Strongly emphasize* some text
  - Refer to @basics
  - Typeset math: $a, b in { 1/2, sqrt(4 a b) }$
  
  That's just the surface though! Typst has powerful systems for scripting, styling, introspection, and more. In the realm of a Typst document, there is nothing you can't automate.
reply
applicative
4 hours ago
[-]
There have been theoretically precise published specs for serious markdowns for 15 years. The commonmark convention is a common specification for many including e.g the familiar simple github variant, which emphatically does have a completely perfect specification.
reply
mastermage
5 hours ago
[-]
As I said in a previous comment typst especialy with extending via scripting stops being plain text readable. A Markdown file (whatever flavor it may be) is still fundamentaly one vi,nano, Editor, Notepad++ away from being read with all its context included. It is a tradeoff that for READMES I would not want to make.
reply
cycomanic
1 hour ago
[-]
If you restrict typat to the basic functionally of markdown it is just as readable as plain text (not surprising considering that typat syntax was inspirered by markdown). However, once we include more unusual things I would argue that markdown becomes more illegible than typst (as for markdown you start adding html essentially).
reply
tlarkworthy
6 hours ago
[-]
Of course it's extensible, you can put HTML in it, and HTML is extensible.
reply
adamnemecek
6 hours ago
[-]
That is like saying "Ruby is not slow, you can write native extensions in C". No, Markdown is not extensible.
reply
red_admiral
3 hours ago
[-]
Markdown and Typst serve different markets - I don't need page layouts and font choices in a pull request, for example. Typst is however a good Markdown++ in that once a collection of markdown files grows to book size, it's easy enough to port.

Typst challenging TeX would be my dream too - there's a lot of math you can port just be leaving off the backslashes. Mind you the kids these days know TeX primarily as "that language in overleaf".

reply
aloisdg
50 minutes ago
[-]
Markdown is already seen as arcane by non technical folks. Which is sad btw.

Typst is not going to replace it.

That said I was not a huge latex user and nowadays I use typst a lot. Typst is everything I was expected from latex.

The content is in markdown and loaded by typst with cmarker

reply