Remix.run Logo
opto 8 hours ago

As a non-developer who really only uses computers to write and produce documents, why would I use typst over org-mode or $your_fave_markdown + pandoc?

mr_mitm 8 hours ago | parent | next [-]

You can pass a JSON structure to a Typst document and render it however you like. No need for a templating engine or anything like that.

Pandoc probably uses latex under the hood, and Typst is order of magnitudes faster. Also, much better error messages.

Typst is vastly superior for usage in automation or when developing document classes.

If that's not your use case, don't bother.

aleks_me2 4 hours ago | parent | next [-]

you can tell pandoc to use typst as pdf-engine.

I use this command to create pdf from my md file.

  Downloads/pandoc-3.9/bin/pandoc \
  README.md \
  -o "my-output.pdf" \
  --pdf-engine=typst \
  -V papersize=a4 \
  -V fontsize=10pt \
  -V margin-left=2.5cm \
  -V margin-right=2.5cm \
  -V margin-top=2.5cm \
  -V margin-bottom=2.5cm \
  -V title="My title" \
  -V lang=de \
  --include-in-header=typst-header.typ \
  --toc --toc-depth=3 2>&1
That's the typst-header.typ

  #set figure(placement: none)
  #show figure: set block(breakable: true)
  #set table(
    inset: 5pt,
    stroke: 0.5pt + rgb("#cccccc"),
  )
  #show table: set text(size: 8pt)
  #show table.cell: it => {
    set text(hyphenate: true)
    show raw: set text(size: 6.5pt)
    it
  }
  #set par(justify: true)
  #show heading: it => block(sticky: true, it)
applicative 7 hours ago | parent | prev [-]

To produce a pdf, pandoc uses typst, pdfroff, lualatex, whatever you please. There is no particular connection to latex. The idea exhibits complete ignorance.

spudlyo 7 hours ago | parent [-]

There was probably a nicer way of expressing this, but yes, ideally I will continue to use Org mode for my documents and substitute typst for LaTex when exporting to pdf.

collabs 8 hours ago | parent | prev | next [-]

I'm sure everyone has their own use case but I use typst for resumes or other documents that I want to keep in git but I need to share with others using PDF.

I use typst in visual studio code using tiny mist extension. I can generate PDF without installing any new software other than vscode which I already have and the tiny mist extension. The live preview is also nice.

The one thing that bothers me is the dollar sign and the hash sign so to write something like saved $50 million using c#, I write something like saved USD 50 million using #csharp

And near the top I add a variable like this

  #let csharp = "C#"
seanclayton 7 hours ago | parent [-]

Markdown has the same class of issue and resolves it the same way you would with Typst: The escape character \. You instead write saved \$50 million using C\#.

runarberg 4 hours ago | parent [-]

I never understood why markdown authors are so insistent on using a single $ to denote math. Math is outside the commonmark spec so this is entirely up to plugin authors.

I am an author of a fairly popular (and early) math plugin for markdown and I resisted (albeit not very hard). I made $$ the default delimiter but I noticed very soon that my users hated it, and finally I gave up and made $ the default delimiter.

What I would have preferred is for $ to behave exactly like backticks (except a minimum of two to start inline math) So you could do stuff like $$ f $ x $$ to render f $ x meaning function f applied with x. And write stuff like:

    $$$optional-tag
    f $ x
    $$$
for block math. I even wrote a competing plugin to my older one where I do this, but I don‘t think anybody uses is, because most people writing math in markdown are expecting it to behave exactly like latex.
paradox460 4 hours ago | parent [-]

I personally like using code blocks with math as the language

Gives you a nice, block level element, and it's easy to reason about

runarberg 4 hours ago | parent [-]

I don’t really like that either since code blocks are supposed to be verbatim, and the language is only supposed to be a hint for syntax highlighting. Additionally you also occupy the first tag which may be an issue when e.g. writing a preample for a latex renderer (or if you want to pick a different renderer).

kryptiskt 8 hours ago | parent | prev | next [-]

Typst does typesetting like TeX (or InDesign for a WYSIWYG alternative), neither org-mode nor markdown has a rich enough formatting language for general typesetting, like if you want to make a flyer for a concert, a brochure or a comic book.

applicative 7 hours ago | parent | prev | next [-]

I pass from markdown to typst pdf via pandoc a few times a day. From that point of view it is just an alternative to latex or roff, e.g.

pandoc -r markdown -w pdf --pdf-engine=typst input.md -o output.pdf

anuramat 6 hours ago | parent | prev | next [-]

I tried using markdown+pandoc for my notes for a while, but I couldn't figure out even the most basic things, mostly because of the dozens of incompatible flavors; in no particular order:

- formatting math blocks is mostly not a thing; some formatters will straight up break the document depending on the flavor you use

- lsp

- live preview; you could use e.g. a neovim plugin for that, but it's built on top of mathjax

- pandoc isn't even a single flavor, as you have a bunch of feature flags and multiple ways to do the same thing

- rendering with pandoc is pretty slow even for a few pages of lecture notes (especially compared to typst)

- latex (required by pandoc) is huge, meanwhile typst binary was something like 50M last time I checked

- syntax highlighting: markdown treesitter grammar only supports the common extensions, e.g. the esoteric latex block variants break the entire document

I guess if I didn't need math rendering, the only major complaint I'd have is performance, but at that point .txt is enough

applicative 6 hours ago | parent | next [-]

Latex is in no sense required by pandoc and never has been, not ten years ago, not twenty years ago. Everything you are writing is deep conceptual confusion from top to bottom. You might as well say it has required Microsoft Word since the docx readers and writers came out.

Latex is a typical route to produce pdfs according to your specification, but typst is what I use; occasionally groff. I use latex when what I am typesetting uses greek, arabic or hebrew text, but only because I haven't yet bothered to learn the typst approach to them.

anuramat 6 hours ago | parent [-]

only if you don't care about the output and half the features; otherwise you can just use "mv" to compile your documents to .txt

leephillips 6 hours ago | parent | prev [-]

“latex (required by pandoc)”

No.

`--pdf-engine=typst`

anuramat 6 hours ago | parent [-]

but then you're limited to an undocumented subset of pandoc markdown

leephillips 6 hours ago | parent [-]

I don’t know what this means, but please don’t explain.

applicative’s comment is correct. Every one of your bullet points is wrong, except perhaps the one about treesitter highlighting, but what should one expect? Why should a Markdown parser know anything about arbitrary Markdown extensions?

anuramat 5 hours ago | parent [-]

> please don't explain

why are you even talking to me?

JoshTriplett 7 hours ago | parent | prev | next [-]

Markdown is for "I want to type semantic content and get a vaguely reasonable result". Typst is for typesetting documents where you care what the output looks like, and where you want a print-quality PDF (or, in the future, also HTML; currently still WIP).

jwr 8 hours ago | parent | prev | next [-]

I use pandoc + typst to render beautiful documents from Markdown. Works really, really well.

jfb 8 hours ago | parent | prev | next [-]

It produces beautiful PDF output from org-mode!

almostjazz 8 hours ago | parent | prev [-]

Compilation speed on typst is crazy