Typst is a new markup-based typesetting system that is designed to be as powerful as LaTeX while being much easier to learn and use. [1.1]

References
  1. Type: Webpage. Title: “typst/typst”. Publisher: “GitHub”. Published (Modified): 2026-03-16T09:39:55.000Z. Accessed: 2025-03-18T08:55Z. URI: https://github.com/typst/typst.
    1. Type: File. Title: “README.md”.
      • Type: Text. Location: ¶1.
  • pastermil@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    3 months ago

    I’d say it still have a long way to go, especially for advanced use cases

    If you just want to have a quick pdf generator, it’s definitely the right tool.

    One thing that’s way better is the scripting. In LaTeX it’s just an afterthought, simply exposing its convoluted core. In Typst, it feels way more like a first class feature.

    • Kalcifer@sh.itjust.worksOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      3 months ago

      I’d say it still have a long way to go, especially for advanced use cases […]

      What do you think it’s still lacking?

      • Meron35@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        Maths feels like a first class citizen in latex. The syntax is ugly, but there is some logic through the legacy jank.

        Typst makes fundamental design decisions that render it unsuitable beyond extremely simply equations. In LaTeX, curly braces are nearly always reserved for enclosing arguments, to avoid confusion with actual brackets.

        Typst uses normal brackets for both its scripting and actual maths.

        For example, \frac{n(n+1)}{2} in latex turns into (n(n + 1)) / 2 in typst. The typst code is incredibly unclear - the first set of brackets with the slash together actually form the fraction operator, so neither end up visible.

        You can see how this would start to struggle even with high school level maths, with bracketed terms and possibly fractional terms in exponents, integrals, etc.

        For example, it is very difficult for me to work out the difference between the following three in typst. That is specifically not what you want from a typesetting language.

        1/2(x + y)
        1/x(x + y)
        1/2^x(x + y)
        

        LaTeX ignores whitespace, so you can just use a formatter to space out your code and ensure the curly braces. This is not even an option in typst, which uses the space as an escape character.

        • Kalcifer@sh.itjust.worksOP
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          3 months ago

          […] You can see how this would start to struggle even with high school level maths, with bracketed terms and possibly fractional terms in exponents, integrals, etc.

          For example, it is very difficult for me to work out the difference between the following three in typst. That is specifically not what you want from a typesetting language.

          1/2(x + y)
          1/x(x + y)
          1/2^x(x + y)
          

          […]

          I think these are valid complaints. For clarity, this is the output that I found for each:

          1. [1]
          2. [2]
          3. [3]

          I was surprised by the second; I expected it to produce [6]. I didn’t know what to expect for the third.

          I tried searching through the documentation [4], but I was unable to find any information that exactly defined expressions [5], and how they are grouped within the fraction when juxtaposed like in your examples.

          References
          1. Type: Anecdote. Published: 2026-03-19T07:20Z.
            • echo "#set page(width: auto, height: auto, margin: 0pt); $ 1/2(x + y) $" | typst compile - o.png
              
          2. Type: Anecdote. Published: 2026-03-19T07:20Z.
            • echo "#set page(width: auto, height: auto, margin: 0pt); $ 1/x(x + y) $" | typst compile - o.png
              
          3. Type: Anecdote. Published: 2026-03-19T07:20Z.
            • echo "#set page(width: auto, height: auto, margin: 0pt); $ 1/2^x(x + y) $" | typst compile - o.png
              
          4. Type: Webpage. Title: “typst Documentation”. Publisher: “Typst”. Accessed: 2026-03-19T07:25Z. URI: https://typst.app/docs/.
          5. Type: Text. Publisher: [Type: Webpage. Publisher: “Typst”. Title: “frac”. URI: https://typst.app/docs/reference/math/frac/.]. Accessed: 2026-03-19T07:26Z. Location: §“Syntax”.
            • […] Use a slash to turn neighbouring expressions into a fraction. […]

              • The quote mentions that the components within the fraction are called expressions.
          6. Type: Anecdote. Published: 2026-03-19T07:39Z.
            • echo "#set page(width: auto, height: auto, margin: 0pt); $ 1/x (x + y) $" | typst compile - o.png
              
        • Oinks@lemmy.blahaj.zone
          link
          fedilink
          arrow-up
          0
          ·
          3 months ago

          The infix syntax is not great, but you can at least write frac(n (n + 1), 2) and it renders the way you would expect.

          Edit:

          This is not even an option in typst, which uses the space as an escape character.

          Technically LaTeX does this too with omitted curly braces:

          \sum_{n=1}^9   % works
          \sum_{n=1}^10  % doesn't work
          

          Everyone just quickly learns to not do that.

      • pastermil@sh.itjust.works
        link
        fedilink
        arrow-up
        0
        ·
        3 months ago

        The ability to load custom fonts comes to mind. I remember when I was converting my document from TeX to Typst was that I wasn’t able to just specify my .ttf file path.

        • illusionist@lemmy.zip
          link
          fedilink
          arrow-up
          0
          ·
          3 months ago

          It depends on what you need more often. If you need high quality pdf papers with fancy stuff, using typst directly isn’t too bad.

          If you write everything else in markdown, use computer languagss in addition to that and want to connect typesetting and programming, then markdown with a solid typst template is the way to go for me.