Teknologi

Typst 0.15: Font Variabel, MathML, dan Bundle Satu Sumber

Typst 0.15: Font Variabel, MathML, dan Bundle Satu Sumber

Typst adalah sistem penyusunan dokumen (typesetting) yang menghasilkan PDF, SVG, PNG, dan dalam tahap pengembangan juga HTML. Ia dirancang untuk materi teknis, dan banyak orang menganggapnya sebagai calon pengganti LaTeX. Versi 0.15 dirilis Juni 2026 dengan daftar fitur baru yang cukup panjang, dan LWN membahasnya dalam artikel kontribusi Lee Phillips pada 9 September 2026.

Yang membuat rilis ini layak dibahas bukan sekadar tambahan fitur. Dua di antaranya, yaitu dukungan font variabel dan keluaran MathML, mengubah hal yang bisa dilakukan Typst, bukan cuma mempercepat hal yang sudah bisa.

Konteks: apa itu Typst

Typst adalah perangkat lunak bebas dengan lisensi Apache-2.0, ditulis dengan Rust. Ia menargetkan beberapa format keluaran: PDF, SVG, PNG, dan HTML yang masih eksperimental. Fokus utamanya adalah materi teknis, sehingga formula matematika, referensi silang, dan bibliografi adalah hal yang ditangani sejak awal, bukan tambahan belakangan.

LWN sendiri pernah membahas Typst setahun sebelumnya, saat versinya masih 0.13. Lompatan dari 0.13 ke 0.15 itu yang jadi bahan artikel kali ini.

Proyeknya juga cukup hidup. Typst dikembangkan di GitHub dengan 460 kontributor, dan ekosistem paketnya sudah melewati 1500 paket. Dokumentasinya diperbarui untuk mencakup versi baru dan tersedia sebagai PDF berukuran 26 MB.

Font variabel

Font pada umumnya didistribusikan sebagai sekumpulan file, masing-masing memuat glif dalam bobot dan varian berbeda: reguler, italic, bold, dan seterusnya. Font variabel mengubah itu. Seluruh variasi ditampung dalam satu file, sehingga hemat ruang dan memberi keleluasaan lebih besar pada penulis atau desainer.

Cara memilih fitur dan variasi font adalah dengan menyetel nilai sebuah sumbu (axis). Setiap sumbu mengubah satu aspek dari glif yang dirender. Umumnya ada beberapa sumbu yang bisa bernilai diskret, untuk menyalakan atau mematikan fitur, atau bernilai kontinu di antara dua batas. Sumbu kontinu inilah yang memungkinkan memilih bobot font secara berkesinambungan.

Untuk menguji fitur baru ini, Lee Phillips mengunduh dua font variabel open source. Yang pertama Roboto Flex, font serbaguna dengan 13 sumbu. Yang kedua Zycon, font yang tidak memuat huruf sama sekali, melainkan 17 gambar dekoratif kecil. Enam sumbu kontinu milik Zycon mengubah berbagai aspek gambar tersebut secara mulus, dan itu membuat font ini berguna untuk animasi.

Contoh dokumen Typst yang memakai keduanya sekaligus:

#set text(font:"Roboto Flex")
#for n in (-305, -200, -98) {
  set text(variations:("YTDE": n))
  [A penguin jumped quietly.
  ]
}
#set text(font:"Zycon")
#for n in array.range(0, 10, inclusive:true) {
  set text(variations:("M1 ": n/10))
  str.from-unicode(127773)
}

Ada dua konsep Typst yang muncul di situ. Karakter pagar menempatkan dokumen dalam mode kode, di mana sisa baris atau blok diperlakukan sebagai kode dalam bahasa bawaan Typst. Di dalam mode kode, materi yang diapit tanda kurung siku diperlakukan sebagai mode teks, yaitu teks yang akan disusun.

Kode di atas memuat dua perintah untuk menyetel font berdasarkan nama, memakai salah satu opsi dari fungsi text(). Setelah itu ada perulangan for yang bekerja seperti perulangan pada umumnya. Di dalam perulangan, fungsi text() dipanggil untuk menyetel variabel variations. Teks untuk Roboto Flex ditulis langsung, sedangkan keluaran untuk Zycon adalah satu karakter yang ditentukan lewat str.from-unicode(). Karakter itu sebenarnya bisa ditulis langsung, tapi tidak semua pembaca bisa melihatnya tergantung cakupan font di peramban mereka.

Sumbu yang dimanipulasi di Roboto Flex bernama YTDE. Sumbu ini menentukan panjang descender font, yaitu bagian huruf yang turun ke bawah garis dasar, sementara karakteristik lain dibiarkan tetap. Ini berguna saat menyusun tabel, misalnya untuk menghindari tabrakan antara descender dan batas sel tabel.

Salah satu dari enam sumbu Zycon bernama M1 dengan dua spasi di belakangnya sebagai bagian dari nama, karena semua nama sumbu panjangnya empat karakter. Efeknya berbeda untuk tiap karakter. Untuk glif bulan, sumbu ini mengubah fase bulan.

Dokumen di atas dikompilasi dengan perintah typst compile vfont.typ, yang menghasilkan PDF bernama vfont.pdf.

MathML dan keluaran HTML

Ekspor HTML masih fitur eksperimental di Typst, tapi rilis ini menunjukkan kemajuan yang signifikan. Fitur HTML utama yang baru adalah penerjemahan matematika ke MathML.

Contohnya menarik karena perbandingannya langsung. Markup Typst untuk sebuah integral tertentu, saat dirender ke PDF, menghasilkan tampilan yang sudah dibahas di artikel sebelumnya. Kode Typst yang sama, saat dirender ke HTML, menghasilkan rangkaian markup MathML panjang yang bisa diinterpretasikan hampir semua peramban modern.

Artinya, Typst bisa menghasilkan matematika berkualitas TeX langsung di peramban, tanpa perlu pustaka JavaScript seperti MathJax, dan tanpa harus menyiasatinya dengan gambar. Untuk komunikasi ilmiah, ini keuntungan yang nyata.

Untuk mengaktifkan keluaran HTML eksperimental, Typst menuntut flag khusus:

typst c --features html integral.typ integral.html

Fitur bundle: satu sumber, banyak berkas

Kasus pakai umum perangkat lunak seperti Typst adalah membuat berkas tunggal, biasanya makalah atau buku dalam bentuk PDF. Fitur bundle yang baru memungkinkan penulis menentukan kumpulan berkas keluaran, dalam format apa pun yang didukung Typst, dari satu berkas sumber. Berkas-berkas itu bisa berbagi data dan memuat tautan antar dokumen maupun di dalam dokumen.

Fitur ini ideal untuk membuat situs web, yang memang terdiri dari jaringan berkas HTML yang saling bertaut. Ia juga menarik untuk akademisi yang ingin menghasilkan slide presentasi konferensi sekaligus preprint-nya dari satu berkas sumber.

Contoh sederhananya adalah berkas Typst yang membuat tiga dokumen saling bertaut: dua halaman HTML dan satu PDF, yang berbagi satu fragmen teks. Tiap dokumen didefinisikan lewat fungsi document() dengan nama berkas dan judul, lalu diikuti label dalam tanda kurung siku yang dipakai sebagai target tautan. Tautan antar berkas dibuat dengan fungsi link() yang menunjuk ke label tersebut.

Perintah untuk memprosesnya, kalau kode disimpan di berkas bernama bundle.typ:

typst c --features html,bundle --format bundle bundle.typ

Perintah itu membuat direktori baru bernama bundle yang berisi tiga berkas yang didefinisikan di fungsi document(). Semuanya memuat dua baris awal puisi yang disimpan di variabel teks, dengan tautan antar halaman HTML, dari salah satu halaman ke PDF, dan dari PDF kembali ke situs dua halaman itu.

Dalam pengujian Lee Phillips, fitur bundle bekerja sesuai klaim. Karena fitur ini bersama keluaran HTML masih dianggap dalam pengerjaan, kompilator menuntut flag --features.

Bibliografi ganda

Typst sekarang mengizinkan lebih dari satu bibliografi dalam satu dokumen. Ini fitur yang sudah lama ditunggu, dengan penerapan kanonik pada buku yang butuh bagian referensi terpisah untuk tiap bab.

Polanya seperti ini. Di awal dokumen, tampilan bibliografi disetel, misalnya ukuran font yang lebih kecil dari teks utama. Di dalam teks, awalan karakter at membuat sitasi dengan gaya nomor dalam tanda kurung sebagai bawaan. Di akhir tiap bab, fungsi bibliography() dipanggil dengan argumen pertama berupa basis data bibliografi yang dipakai. Setiap bagian bibliografi boleh memakai basis data berbeda, atau kumpulan basis data yang berbeda.

Argumen group mengendalikan cara sitasi dinomori. Nilai none membuat penomoran dimulai dari satu di setiap bagian. Penomoran juga bisa dibuat kontinu untuk seluruh karya, atau dikelompokkan secara bebas.

Beberapa standar PDF sekaligus

Bagian ini terdengar teknis, tapi konsekuensinya praktis. PDF bukan sekadar PDF. Ada berbagai versi PDF dan, di atasnya, puluhan standar formal terkait kearsipan dan aksesibilitas. Standar kearsipan memastikan dokumen benar-benar bekerja di berbagai perangkat lunak pembaca dan tetap begitu di masa depan. Standar aksesibilitas berkaitan dengan kegunaan PDF bagi penyandang disabilitas.

Typst sudah punya kemampuan menargetkan berbagai versi dan standar PDF. Fitur baru di 0.15 adalah opsi menargetkan lebih dari satu standar sekaligus saat mengompilasi. Ini berguna karena seseorang mungkin ingin menghasilkan PDF yang punya atribut kearsipan sekaligus aksesibilitas.

Implementasinya membantu penulis menavigasi rimba standar PDF dengan mengeluarkan peringatan atau galat pada kombinasi yang tidak kompatibel atau pelanggaran praktik terbaik standar yang ditargetkan. Contohnya, permintaan untuk memakai PDF versi 1.7 sekaligus standar arsip A-1b akan ditolak, karena PDF/A-1b mensyaratkan versi PDF 1.4. Versi 1.7 kompatibel dengan A-2b, jadi kombinasi itu diterima.

Kalau standar aksesibilitas UA-1 ditambahkan, kompilator kembali menolak karena dokumen belum punya judul, dan pesan galatnya langsung menyebutkan cara memperbaikinya, yaitu menyetel judul lewat fungsi dokumen. Biasanya kompilator Typst tidak menuntut apa pun di luar sintaksis yang benar, tapi begitu standar aksesibilitas tertentu ditentukan, dokumen harus memenuhi standar itu.

Ini bukan hal yang bisa diabaikan penulis teknis. Selain membantu pengguna disabilitas, menghasilkan PDF yang aksesibel adalah kewajiban hukum yang berlaku untuk pemerintah negara bagian dan federal di Amerika Serikat serta banyak negara lain. Untuk konteks seperti itu, penanganan standar PDF berlapis milik Typst membuatnya berguna.

Yang perlu dipertimbangkan sebelum berpindah

Ada dua catatan penting. Pertama, dari sisi tata kelola: pembuat Typst terbuka soal fakta bahwa Typst adalah perusahaan sekaligus proyek open source, dan keputusan soal arah proyek maupun kelayakan kontribusi akan mempertimbangkan kebutuhan perusahaan. Mereka juga menulis panduan kontributor yang menyatakan bahwa kode atau deskripsi yang dihasilkan LLM akan ditolak. Bagi calon kontributor dan pengguna, ini faktor yang perlu diperhitungkan.

Kedua, hambatan yang lebih keras datang dari efek jaringan di dunia penerbitan. Meskipun pengguna sudah menyusun templat untuk menyesuaikan diri dengan spesifikasi berbagai jurnal, jurnal yang mensyaratkan pengiriman sumber, bukan sekadar PDF, masih menuntut LaTeX, Word, atau format lain. Sangat sedikit yang menerima manuskrip bermarkup Typst. Kondisi ini kemungkinan tidak berubah selama Typst masih pra-1.0 dan masih berisiko menuntut perubahan besar yang bisa merusak dokumen.

Meski begitu, Typst tetap alat yang sangat berguna hari ini. Salah satu contoh yang disebut di artikelnya: saat harus membuat logo SVG, menulis deskripsi tekstual memakai perintah grafis bawaan Typst terasa lebih cepat dan lebih mudah daripada membuka program menggambar.

Apakah Typst akan benar-benar menjadi pengganti LaTeX, itu belum bisa dipastikan. Kalau pengembangannya berlanjut dengan kecepatan sekarang, kemungkinan itu nyata, tapi bisa memakan satu atau dua dekade untuk terwujud.

Sumber

Catatan: seluruh rincian fitur, perintah, dan hasil pengujian dalam artikel ini bersumber dari artikel LWN tersebut dan dokumentasi resmi Typst, belum diverifikasi lewat pengujian independen. Keluaran HTML dan fitur bundle masih berstatus eksperimental dan butuh flag khusus saat kompilasi.

Rekomendasi Tools & Layanan

Beberapa layanan yang dipake di panduan ini: free trial Alibaba Cloud (coba gratis, sesuaikan kebutuhan), dan halaman promo terbaru buat cek diskon yang lagi jalan bulan ini.

💬 Komentar (0)

Belum ada komentar. Jadilah yang pertama! 💬

Komentar akan muncul setelah moderasi.