Pages
  • life with BSD
  • 2025-07-31 Fixing jujutsu and leaky ascii escape sequences on FreeBSD
  • 2025-07-31 Swift now available as a package for FreeBSD
  • 2025-07-28 The FreeBSD project clarifies its stance on gen-ai powered contributions
  • 2025-07-28 The rustup question
  • 2025-07-08 Goodbye old friend, a tale
  • 2025-06-30 Configuring FreeBSD to network with a postmarketos phone over usb
  • 2025-06-25 swift (re)lands in the FreeBSD ports tree
  • 2025-06-24 typst a rust powered typesetting tool aiming at latex
  • 2025-06-19 Open Source Two Worlds thoughts
  • 2025-06-14 Taking a look at repolocli
  • 2025-06-09 Zig master builds now with FreeBSD support
  • 2025-06-07 Finding rust dependencies in Makefile.crates
  • 2025-06-05 Ripgrep or ripgrep-all
  • 2025-06-02 Ripgrep a nice Rust utility for ports spelunking
  • 2025-05-31 Get started with gpui on FreeBSD
  • 2025-05-29 Query freshports with Deno
  • 2025-05-27 Trying out Defuddle an npm tool via Deno
  • 2025-05-25 Deno for FreeBSD
  • 2025-05-23 A new beginning
life with BSD
  • life with BSD
  • 2025-07-31 Fixing jujutsu and leaky ascii escape sequences on FreeBSD
  • 2025-07-31 Swift now available as a package for FreeBSD
  • 2025-07-28 The FreeBSD project clarifies its stance on gen-ai powered contributions
  • 2025-07-28 The rustup question
  • 2025-07-08 Goodbye old friend, a tale
  • 2025-06-30 Configuring FreeBSD to network with a postmarketos phone over usb
  • 2025-06-25 swift (re)lands in the FreeBSD ports tree
  • 2025-06-24 typst a rust powered typesetting tool aiming at latex
  • 2025-06-19 Open Source Two Worlds thoughts
  • 2025-06-14 Taking a look at repolocli
  • 2025-06-09 Zig master builds now with FreeBSD support
  • 2025-06-07 Finding rust dependencies in Makefile.crates
  • 2025-06-05 Ripgrep or ripgrep-all
  • 2025-06-02 Ripgrep a nice Rust utility for ports spelunking
  • 2025-05-31 Get started with gpui on FreeBSD
  • 2025-05-29 Query freshports with Deno
  • 2025-05-27 Trying out Defuddle an npm tool via Deno
  • 2025-05-25 Deno for FreeBSD
  • 2025-05-23 A new beginning

2025-06-24 typst a rust powered typesetting tool aiming at latex

If you need to use a typesetting program to do the following:

  • write an academic paper

  • write a book

  • write something that aims to be printed

  • generate a pdf

Most non-technical people probably reach for Word, endure the experience and get on with their lives. In the more techie-oriented world (eliding markdown) the more classic solution that is presented is LaTeX. There are also countless other systems that have cropped up. A more recent entry that has captured my interest is a project called typst and I was reminded about it after reading I wrote my PhD thesis in Typst. After trying out typst for some small documents, I have been impressed.

The language takes a lot of ergonomics from markdown so if you are familiar with markdown then I feel that the markup is similar enough. Typst also has built-in functionality for handling:

  • embedded graphics / pictures

  • bibliographies

  • math formulas

  • add-ons (aka packages in typst parlance)

There is also a growing ecosystem at Typst Universe where you can search for packages that add functionality such as drawing diagrams and charts to templates for writing a CV (I had found building such in typst a useful exercise in learning typst). The tooling helps resolve pulling down packages automatically which is very handy. There is also a great documentation site with a helpful tutorial to get you started.

Note that typst is already available in FreeBSD ports and packages so installation of typst on FreeBSD should be straightforward using either pkg or ports approach. An example of that is below:

pkg installation

$ pkg install typst

ports installation

cd /usr/ports/textproc/typst
make && doas make install

Once installed, working through the tutorial should be straightforward. Just choose your favorite $EDITOR to work with. There is even an online editor that the project offers if you prefer to use a mainstream web browser as your only tool for editing.

One other thing as alluded to in the title is that typst is written in rust. And from what I can tell (so far) it is a pure rust application which means no need to pull in anything else except the rust toolchain to build typst itself which from a developer mindset is convenient (assuming you don't hate rust). If you have ever tried to sit down and build LaTeX from source the first daunting task is dealing with all the dependencies that LaTeX will require (plus any extra add-on functionality you might desire). Compared to the only rust dependency for typst, this makes the choice easier if your target platform supports rust (which FreeBSD does!).

In typst's current form (version 0.13.1 as of this writing) it already is a pretty decent alternative to using LaTeX for typesetting things. Typst in its current form can output pdf (and svg) documents with ease. Even saying that, the typst project is not sitting on its laurels and has been adding more interesting features such as HTML export (ongoing) which makes it a potential website builder in the future.

PREVRANDOMNEXT