Skip to main content
Background Image
  1. Teches/

Typst: An Alternative to LaTex, Yet Easier

··1443 words·7 mins· ·
Wildan
Author
Wildan
An Ordinary Human Being
Table of Contents

Typst?
#

Pernah dengar typst? Saya akan berbagi sedikit tentang typst di artikel ini, mulai dari apa itu typst hingga ke cara menggunakannya.

What is it?
#

Source: https://typst.app/

Secara sederhana, typst adalah “typesetting system” yang berbasis “markup”.1 Typesetting, yang kalau diterjemahkan bebas ke bahasa Indonesia artinya “penataan huruf”, merupakan proses pengaturan huruf, angka, dan karakter dalam suatu naskah atau dokumen.2 Markup (atau bahasa markup) sendiri merupakan “sistem anotasi” pada dokumen digital yang memungkinkan komputer memahami struktur dokumen tersebut.3

Beberapa contoh bahasa markup antara lain:4

  1. HTML (Hypertext Markup Language): Digunakan untuk mengatur tampilan teks (judul, ketebalan, tautan, dst) pada web.

ss1
html file

  1. XML (Extensible Markup Language): Digunakan untuk menyimpan dan memindahkan data.

ss2
xml file

  1. SVG (Scalable Vector Graphics): Digunakan untuk mendeskripsikan gambar vector (gambar yang dibuat dari persamaan matematis).

ss3
svg file

  1. Markdown: Digunakan untuk memformat teks di plain-text editor menggunakan simbol-simbol tertentu.

ss4
markdown file

  1. LaTex: Digunakan untuk menulis paper ilmiah, artikel penelitian, dan konten matematis (biasanya dalam format PDF).

ss5
tex file

Nah, typst adalah salah satu dari contoh-contoh program berbahasa markup tersebut, tapi lebih ditujukan untuk dokumen sehingga kalau dibandingkan dengan keempat contoh di atas, typst lebih mirip dengan LaTex.

Boleh dibilang, typst adalah “adik” dari LaTex. Sebab, LaTex sudah lebih dahulu ada sejak kira-kira 42 tahun yang lalu (1984),5 sementara typst baru saja muncul sekitar 3 tahunan yang lalu (2023).

Markup Language vs Programming Language

Meskipun sama-sama merupakan bahasa komputer yang digunakan untuk men-strukturisasi, menampilkan, dan memanipulasi konten atau data, markup language dan programming language tidaklah sama.

Programming language memberikan logic yang dapat dieksekusi oleh komputer. Artinya, membuat program dengan bahasa pemrograman memungkinkan adanya “input”, “kalkulasi”, dan “penyelesaian masalah”. Sementara itu, markup language hanya membuat struktur elemen dan tampilan suatu dokumen ketika dibuka.

Typst adalah program berbasis open-source. Berikut adalah tautan repository Github-nya, berikut dengan websitenya.

Website: https://typst.app/

Its Capabilities
#

Typst merupakan program yang dapat digunakan untuk:

  1. Menulis Buku.
  2. Menyusun CV (Curriculum Vitae).
  3. Menulis Surat.
  4. Membuat Invoice.
  5. Menulis Proposal.
  6. Membuat Website (in preview).
  7. Menyusun Standardisasi.
  8. Membuat Laporan.
  9. Menyusun Tesis.
  10. Membuat Presenrasi.
  11. Menulis Paper.
  12. Catatan Perkuliahan.
  13. Dokumen Transaksi.

Oleh karena dapat digunakan untuk tujuan yang sangat beragam, typst juga memiliki banyak kemampuan. Berikut adalah kemampuan-kemampuan typst:

  1. Membuat Visualisasi.
  2. Menulis Rumus Matematika.
  3. Menggambar Grafik dan Diagram.
  4. Membuat Table.
  5. Menulis Kode.
  6. Membuat Bibliografi.
  7. Membuat Slides.

Selain itu, kita juga dapat berpindah (re: mengedit) dari dokumen-dokumen seperti Word dan Google Docs, LaTex, dan Markdown ke Typst!

Keren, bukan?

Typst vs LaTex
#

Berikut adalah beberapa perbedaan LaTex dan Typst:6

Sengaja dalam bahasa Inggris karena 2 alasan: (1) biar sambil belajar bahasa Inggris, (2) biar lebih ringkas jumlah katanya

FeatureTypstLaTex
First Release20231984
Compilation SpeedNear Instant (<1s for changes)Slow (10-90s for large docs)
Syntax ComplexityMuch simpler, Rust-inspiredSteep learning curve
Error MessageClear and actionableOften cryptic
Package EcosystemGrowing (100+ packages)Massive (thousands of packages)
Journal AcceptanceLimited (PDF ok, .tex required)Universal
CollaborationBuilt-in on typst.appVia Overleaf
Math NotationGood with shortcutsComprehensive
AI Tool SupportLimited third-party supportExtensive (Underleaf, Writefull, etc)
Citation StylesCSL (80+ built-in styles)BibTeX (thousands of styles)
CostFree (open source)Free (open source)

Sebagai contoh, berikut adalah perbandingan syntax di Typst dan LaTeX:7

ss6
LaTeX vs Typst syntax. Source: https://typst.app/docs/guides/for-latex-users/

Jadi, mana yang lebih baik?
Jawabannya akan selalu seperti ini:

Software yang terbaik adalah yang fitur-fiturnya memenuhi keperluan dan kebutuhan kalian.
Artinya, kalian memang harus tahu kebutuhan kalian terlebih dahulu, kemudian disesuaikan dengan fitur-fitur yang ada di masing-masing program tersebut. Setelah itu, barulah kalian bisa menyimpulkan mana yang terbaik.

How to?
#

Berikutnya, kita akan mempelajari teknis penggunaan typst, mulai dari melakukan instalasi hingga menggunakan template.

Installing Typst
#

Berikut adalah cara meng-install typst di beberapa sistem operasi Linux:

DistroCommand
Arch Linuxsudo pacman -Sy typst
Opensusesudo zypper install typst
Tip

Untuk distro Debian/Ubuntu dapat meng-install typst melalui snap. Sementara untuk Fedora, bisa langsung ambil binary-nya langsung atau compile sendiri dari source code typst di Github.

NixOS:
Masukkan baris berikut di file konfigurasi (/etc/nixos/configuration.nix):

  environment.systemPackages = [
    pkgs.typst
  ];

Atau jika menggunakan nix-shell:

nix-shell -p typst

Writing in Typst
#

Menulis dengan typst berarti kita perlu mengetahui syntax-syntax yang terdapat di typst terlebih dahulu. Beruntungnya, typst sendiri sudah menyediakan daftar syntax yang tersedia di websitenya.

Typst syntax cheatsheet: https://typst.app/docs/reference/syntax/

Ketika sudah meng-install typst, kita dapat memulai membuat dokumen typst dengan perintah:

touch file.typ
typst compile file.typ

Setelah itu, akan muncul file file.pdf di direktori yang sama. Kita dapat mulai meng-edit file file.typ kemudian melihat hasilnya di file file.pdf. Kita juga dapat melihat perubahan secara realtime dengan menjalankan perintah:

typst watch file.typ

sambil membuka file pdf-nya. Nanti, begitu kita menyimpan perubahan yang ada di file file.typ, maka perubahan tersebut juga akan muncul langsung di file file.pdf yang sedang terbuka.

Berikut sebagai ilustrasi:

Realtime typst file editing

Sebagai pemula, cara paling mudah udah mempelajari hal baru adalah dengan melihat contoh yang sudah ada. Nah, sekarang, perhatikan konten file file.typ saya ini, dan lihat hasilnya di file.pdf yang akan saya lampirkan berikutnya. Dengan demikian, baris-baris sytanx yang ada di file typst tersebut akan terlihat masuk akal dan mudah untuk dipahami.

#set heading(numbering: "1.")

#show link: set text(fill: blue, weight: 700)
#show link: underline


= Typst Introduction

*Website* _typst_: https://typst.app

Cara instalasi _typst_ di Archlinux:
+ `sudo pacman -Sy typst`
+ `typst compile file.typ`
+ mulai tulis dengan syntax typst

Tujuan penggunaan _typst_:
- Menulis paper
- Membuat CV
- Menyusun presentasi

= Typst Advanced

== Package

Cara meng-_import_ package:

`#import "@preview/example:0.1.0": add
#add(2, 7)`

Outputnya:

#import "@preview/example:0.1.0": add
#add(2, 7)

== Math
{ let x = 1; x + 2 }

$#rect(width: 1cm)$ $arrow.r.long$ $#rect(width: 1cm)$ 

-------------\

*Glossary*

/ typst: markup typesetting system
/ template: created document for 'spesific purpose'

// Ini komentar.

Berikut adalah file pdf-nya:

Atau, jika kalian ingin yang lebih praktis, typst juga menyediakan “playground” unttuk mencoba typst juga.

Berikut tautannya: https://typst.app/play/

Selain itu, typst juga menyediakan tutorial penggunaan typst:

  1. Menulis di typst: Cara menulis teks, menambahkan gambar, persamaan, dan komponen lainnya.
  2. Membuat format: Cara menyesuaikan format dokumen: ukuran font, heading, dan lainnya.
  3. Membuat layout: Cara membuat layout halaman yang lebih kompleks untuk keperluan paper ilmiah.
  4. Membuat template: Cara membuat template yang dapat digunakan kembali untuk keperluan yang sama.

Berikut tautannya: https://typst.app/docs/tutorial/

Playing with packages & templates
#

Packages adalah kumpulan file typst yang dapat di-import sebagai unit terpisah untuk menambahkan fungsionalitas, gaya, dan juga otomatisasi di dokumen kita.8 Templates adalah bagian dari packages yang dibuat untuk tujuan template dokumen, artinya kita dapat menggunakan struktur dan layout dokumen yang sudah dibuat untuk keperluan tertentu, seperti template laporan, template paper, template CV, dan yang lainnya.

Kita akan lihat perbedaan implementasi penggunaan package dan template berikut ini.

How to use package
#

Daftar package yang tersedia dapat dilihat di:

https://typst.app/universe/search/?kind=packages

Ada banyak package yang dapat kita gunakan. Kita tidak perlu menggunakan atau meng-import semua package. Gunakanlah package-package yang relevan dan memang kita perlukan untuk membuuat dokumen yang kita ingin buat.

Saya akan mendemonstrasikan cara meng-import salah satu package, dan package pilihan saya jatuh kepada gentle-clues.

gentlecus
Gentle Clues - Typst package. Source: https://typst.app/universe/package/gentle-clues

Cara meng-import-nya:

  1. Buka dokumen typst.
  2. Tambahkan baris berisi perintah import package di bagian awal dokumen.
  3. Tambahkan elemen dari package di dalam dokumen.

ss7
importing gentle clues, success!

Berikut adalah parameter dalam menggunakan package ini:

#example[Your text here...]

Nanti, akan di-render menjadi:

ss8
default gentle clues usage

Tapi, kita juga dapat mengganti beberapa parameter seperti “heading” & “title"-nya:

#experiment[Percobaan _package_ gentle clues.]
#quote(title: "Quotes")[Doubt kills more dreams than failure ever will.]

Output-nya:

ss9
modified gentle clues usage

How to use template
#

Daftar package yang tersedia dapat dilihat di:

https://typst.app/universe/search/?kind=templates

Seperti juga package, ada banyak template yang dapat kita gunakan. Kita tidak perlu menggunakan atau meng-import semua template. Gunakanlah template yang relevan dan memang kita perlukan untuk membuuat dokumen yang kita ingin buat.

Saya akan mendemonstrasikan cara menggunakan salah satu template, dan template pilihan saya jatuh kepada brillian-cv.

brilliancv
Brillian CV - Typst template. Source: https://typst.app/universe/package/brilliant-cv

Cara menggunakannya:

  1. Inisialisasi dan unduh templatenya.
  2. Edit file metadata.toml untuk men-setting persoal detail kita.
  3. Compile file .typ ke .pdf.

ss10
importing brilliant cv, success!

Notes:

  1. Beberapa template mungkin saja menggunakan font yang tidak ter-install di komputer kita. Oleh karena itu, kita perlu mengunduhnya terlebih dahulu agar tampila font-nya tampak lebih sesuai.
  2. Untuk template brilliant-cv ini, file konfigurasi utamanya adalah metadata.toml, sebab, di sanalah kita menuliskan konten cv tersebut. Akan tetapi, beberapa pengaturan juga perlu dilakukan di file yang lain, seperti cv.typ. Contohnya, kita perlu meng-edit file cv.typ untuk mengganti foto profil.

Demikian tutorial singkat mengenai typst kali ini!
Semoga bermanfaat!

Related

File Signature: How Computer Identifies Your File Type
··772 words·4 mins
File signature is one of the most common concept when it comes to identifying types of files in your opeating system.
GRUB: Theme, Timeout, and OS-Prober
··489 words·3 mins
A brief note regarding grub configuration.
Rubik's Cube 3x3 (Beginner's Guidance)
·2523 words·12 mins
Rubik’s cube 3x3 is known as the most famous and basic kind of cube’s types. So, this article would pretty much explain a step by step towards solving it.