本系列教學文章是為參加 2025 iThome 鐵人賽所撰寫,目標是帶領大家從零開始認識並活用 Typst 排版系統中的繪圖套件——CeTZ。如果你是一位工程師、學生,或是對數理排版與演算法視覺化有興趣的開發者,這份指南將會介紹如何利用 CeTZ 將抽象的演算法與離散結構圖像化,並整合進你的技術文章、簡報或論文中。即使你從未接觸過 Typst,也不用擔心,我會從基礎語法一步一步帶你上手,一起用最簡潔的語言畫出最精緻的圖。
上面這段是請 ChatGPT 幫我潤飾的。我只是想要分享好玩的 Typst 和 CeTZ 推薦給大家。
前言 Disclaimer:筆者使用 Typst 製作投影片、簡易製圖只有一年多的經驗,還請大家多包涵與指教。 個人覺得以簡易型文件、或是繪製演算法示意圖來說,...
很多前端版面設計都已經採用了網格模式 (grid)。在 Typst 裡面的表格設計也是如此,table 其實只是包裝得比較好的 grid。 範例一:九九乘法表...
在 Typst 腳本撰寫方面,有一些好用的語法糖。其中最常見的語法莫屬 show 這個指令了。其中最簡單的形式,就是符合關鍵字出現時,可以自動地改成想要的格式。...
如同基本的函數式程式設計一般,Typst 內的所有函數都必須以純函數 (pure function) 的方式實作。唯一的例外是一些原生型別的操作,例如陣列的 &...
利用 Typst 超快的 preview 功能,可以進行簡易互動。 範例:走迷宮 例如,我們可以將其中一段文字設計成迷宮: 11111111111111 100...
如果你希望能夠在腳本中加入與當前排版位置相關的一些環境數值(例如文字樣式、頁面編號、章節編號)等資訊,那麼就可以使用 #context 進行存取。 範例一:文字...
如果想要在你的文件中引入程式語言,但是又不想要讓大量的程式碼複製兩份放進想要排版的文件當中,那麼此時使用 #read 讀檔就再方便也不過了! 筆者覺得這個方法...
前幾天有提到過,在沒有 #context 的情況下,Typst 定義的函數都需要是純函數。這是因為快取的效率考量,如果沒有任何的 side-effect,那麼傳...
Typst 對內容排版時,總是會把每一個內容區塊變成一個一個的方塊。若我們有許多方塊要使用「對齊功能」的時候,可以利用 #stack 輕鬆調整不同區塊之間的高度...
Typst 目前的版本不支援圖片遮罩的功能,但我們可以利用 #box 以及 #curve 的效果,繪製 SVG 圖案從而達到遮罩的效果。 範例一:圖片位移 原本...