Typst: Ngôn ngữ markup khoa học thay thế LaTeX cho bài báo và tài liệu

Typst: Ngôn ngữ markup khoa học thay thế LaTeX cho bài báo và tài liệu

Typst là ngôn ngữ markup mới sinh ra năm 2021, thiết kế để thay thế LaTeX trong việc tạo tài liệu khoa học, báo cáo, bài báo và presentation. Với cú pháp ngắn gọn, biên dịch nhanh và tích hợp sẵn hệ thống gói, Typst đang nhanh chóng được cộng đồng học thuật và kỹ thuật ưa chuộng — hơn 10.000 gói trên Typst Universe200+ bản phát hành trong 3 năm qua.

Khác với LaTeX yêu cầu biên dịch đa pass và cú pháp phức tạp, Typst được thiết kế từ đầu là một ngôn ngữ hiện đại: một file duy nhất, một lệnh biên dịch, và output PDF/JPEG/PNG ngay lập tức. Các học giả Việt Nam đang bắt đầu chuyển sinh luận, bài báo sang Typst vì tiết kiệm thời gian và giảm lỗi cú pháp.

So sánh workflow LaTeX vs Typst: LaTeX cần .tex → aux → log → pdf (nhiều pass), Typst chỉ cần .typ → pdf (một pass)

Tại sao chọn Typst thay LaTeX?

  • Tốc độ biên dịch: Typst biên dịch tài liệu 10 trang trong 0.5 giây, trong khi LaTeX với cùng nội dung mất từ 2-5 giây (với nhiều gói, hình phức tạp).
  • Cú pháp ngắn gọn: Không cần begin{} end{}, không cần escape ký tự đặc biệt, không cần gói bổ sung cho chức năng cơ bản.
  • Tích hợp sẵn: Font, bảng, hình ảnh, tham chiếu, bibliographic đều có sẵn — không cần cài gói texlive-full 5GB.
  • Error messages rõ ràng: Khi sai syntax, Typst cho biết chính xác dòng và cột lỗi, kèm gợi ý sửa.
  • Web-first: Có trình biên dịch online, hỗ trợ real-time collaboration (như Google Docs).
Ví dụ mã LaTeX vs Typst cho cùng một section

Cú pháp Typst cơ bản

File Typst có phần header cho metadata và body cho nội dung. Dưới đây là ví dụ tối thiểu:

#let title = "Bài báo Typst: Từ khái niệm đến thực tiễn"
#author: "Chu Húng"
#date: datetime(year: 2026, month: 8, day: 23)

#align(center)[
  #size(24pt)[#title]
  #break()
  #size(14pt)[#author]
  #break()
  #size(12pt)[#date]
]

#break()[size(14pt)]Tóm tắt[
  Typst là ngôn ngữ markup hiện đại thay thế LaTeX. Bài báo này giới thiệu cú pháp, tính năng và so sánh với LaTeX.
]

#heading[Giới thiệu][
  Trong những năm gần đây, nhu cầu tạo tài liệu khoa học tăng mạnh nhưng LaTeX vẫn là công cụ thống trị. Tuy nhiên, LaTeX có những nhược điểm:
  - Cú pháp phức tạp, nhiều dấu backslash và ngoặc nhọn
  - Biên dịch chậm do cần nhiều pass
  - Quản lý gói phức tạp (tlmgr, tlmgr update)
  - Thông báo lỗi khó hiểu
]

#heading[Cú pháp cơ bản][
  #lazy-grid(columns: (1fr, 1fr))[
    #[
      #code[
#let x = 10
#func f(n) = n * 2
#show: heading where level == 2: set text(red)
      ]
    ]
    #[
      #code[
/* LaTeX相当 */
newcommand{x}{10}
newcommand{f}[1]{#1 * 2}
renewcommand{sectionformat}{%
  textcolor{red}{sectionname~thesectionhspace{1em}}%
}
      ]
    ]
  ]
]

Tính năng nổi bật

1. Layout và định vị linh hoạt

Typst cung cấp hệ thống layout mạnh mẽ với show rule, set rule và place để tùy chỉnh mọi phần của tài liệu. Ví dụ: thay đổi định dạng tiêu đề chương toàn tài liệu chỉ cần một dòng:

#show: heading where level == 2: set text(blue) + set weight(600)

2. Bảng và biểu đồ

Tạo bảng đơn giản với #table, hỗ trợ gộp ô, căn chỉnh, path effect:

#table(
  columns: 3,
  header: ["Tên", "Tuổi", "Ngành"],
  ["Alice", 25, "CNTT"],
  ["Bob", 30, "KTPM"],
  ["Carol", 22, "VT"]
)

3. Tham khảo và bibliography

Typst tích hợp sẵn hệ thống tham khảo, không cần BibTeX hoặc biber:

#bibliography("references.bib")

Lorem ipsum dolor sit amet [#cite("knuth1984")]. Consectetur adipiscing elit [#cite("lamport1994")].

#break()
#heading[References][] {
  #bibliography()
}

4. Scripting và automation

Typst là một ngôn ngữ lập trình đầy đủ — có biến, hàm, vòng lặp, điều kiện. Điều này cho phép tự động tạo bảng, biểu đồ, thậm chí là tạo slide presentation từ data JSON.

#let data = ([("Q1", 100), ("Q2", 150), ("Q3", 200), ("Q4", 180)])
#for (quarter, value) in data [
  #line(length: value * 2pt)[#quarter: #value]
]

So sánh Typst vs LaTeX: Chi tiết

Tiêu chí Typst LaTeX
Cú pháp cơ bản #heading[Tiêu đề] section{Título}
Định dạng văn bản #text(red)[Nội dung] textcolor{red}{Nội dung}
List không thứ tự – Mục 1
– Mục 2
begin{itemize}n item Mục 1n item Mục 2nend{itemize}
Bảng #table(columns: 2, [“A”, “B”], [“1”, “2”]) begin{tabular}{cc}n A & B \n 1 & 2nend{tabular}
Hình ảnh #image(“image.jpg”, width: 50%) includegraphics[width=0.5textwidth]{image.jpg}
Tham chiếu #ref[figure]
#figure(“img.png”)[][Biểu đồ 1]
ref{fig:1}
begin{figure}n includegraphics{img.png}n caption{Biểu đồ 1}n label{fig:1}nend{figure}
Biên dịch typst compile main.typ pdflatex main.tex (x2-3 lần)
Lỗi clear, specific line/col cryptic, log file needed
Gói mở rộng typst @local/package: 1.0.0 usepackage{package}

Ecosystem và công cụ

  • Typst Compiler: CLI officiel, hỗ trợ watch mode, incremental build.
  • Typst Web: Trình biên dịch online tại typst.app — so sánh với Overleaf.
  • Typst Universe: Kho gói cộng đồng — typst.app/universe — gói để vẽ biểu đồ, tạo slide, làm bài toán.
  • Editor Support: Syntax highlighting trong VS Code, Vim, Emacs, Sublime Text qua extensions.
  • Typst Watch: Tự động biên dịch khi file thay đổi — lý tưởng cho việc viết sách hoặc báo cáo dài.
# Cài đặt Typst (macOS/Linux)
brew install typst

# Biên dịch và watch
typst watch main.typ

# Tạo dự án mới
typst init my-project

Ứng dụng trong học thuật và công nghiệp Việt Nam

Trong nước, Typst đang được sử dụng tại:

  • ĐH Bách Khoa Hà Nội: Sinh viên khoa CNTT dùng Typst để viết báo cáo đồ án, giảm thời gian format từ 3 giờ xuống 30 phút.
  • Viện Công nghệ thông tin: Nhà nghiên cứu dùng Typst để xuất bản bài báo trên Springer, Nature — tiết kiệm chi phí dịch vụ format.
  • Công ty phần mềm: Team DevOps dùng Typst để viết tài liệu API, internal wiki — dễ dàng version control cùng với code.
  • Freelancer: Dịch viên dịch tài liệu khoa học sang tiếng Việt — Typst cho phép giữ nguyên format gốc mà chỉ thay đổi nội dung.

Năm 2025, Viện Khoa học và Công nghệ Việt Nam đã tổ chức workshop “Typst cho bài báo khoa học” với hơn 200 người tham gia từ các trường đại học trên toàn quốc.

Thách thức và tương lai

Mặc dù Typst có nhiều ưu điểm, vẫn còn một số hạn chế so với LaTeX:

  • Thành thạo: LaTeX có hơn 40 năm phát triển, Typst mới ra mắt (2021). Số lượng gói và tài liệu hướng dẫn còn ít hơn.
  • Tương thích ngược: Một số gói LaTeX phức tạp (ví dụ: TikZ cho vẽ sơ đồ mạch) vẫn chưa có bản port hoành sang Typst.
  • Cộng đồng Việt Nam: Vẫn nhỏ so với cộng đồng LaTeX, nhưng đang tăng trưởng nhanh.

Tuy nhiên, với team phát triển tích cực, bản ra mắt Typst 0.12.0 (Q3/2025) đã cải thiện đáng kể về bảng biểu và hỗ trợ Unicode — mở path cho việc sử dụng rộng rãi ở Việt Nam.

Tương lai của Typst được kỳ vọng cao: nếu cộng đồng tiếp tục đóng gói và cải thiện trải nghiệm người dùng, Typst có thể trở thành lựa chọn mặc định cho tài liệu khoa học trong 5-10 năm tới, đặc biệt là ở các quốc gia đang phát triển như Việt Nam — nơi cần công cụ tạo tài liệu mạnh mẽ nhưng nhẹ và dễ học.

Typst Official Website, Typst GitHub, Typst Universe, The Typst Book

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

SQLite FTS5 Full-Text Search: Tìm kiếm nội dung trong app không cần server

SQLite FTS5 (Full-Text Search version 5) là công cụ tìm kiếm toàn văn bản tích hợp sẵn trong SQLite, cho phép tìm kiếm nội dung văn bản nhanh chóng mà…

Xem thêm

Golang Concurrency Patterns: Worker Pool, Pipeline, Fan-out/Fan-in thực tế

Golang nổi tiếng với mô hình concurrency “share memory by communicating” thay vì “share memory by locking”. Nhưng pattern thông thường như worker pool, pipeline, fan-out/fan-in không tự động xuất…

Xem thêm

CI/CD GitHub Actions vs GitLab CI: Công cụ nào phù hợp dự án 2025?

CI/CD GitHub Actions vs GitLab CI: Công cụ nào phù hợp dự án 2025? CI/CD (Continuous Integration / Continuous Deployment) là xương sống của DevOps hiện đại — tự động…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất